From 4ab4a71961fbe03ec514870d0b1eb68ae9f80676 Mon Sep 17 00:00:00 2001 From: Bagasbanuna02 Date: Wed, 3 Apr 2024 10:26:40 +0800 Subject: [PATCH] # Project Collaboration ## feat - Tampilan beranda & detailnya - Tampilan status & detailnya - Tampilan partisipasi & detailnya - Tampilan grup diskusi & detailnya ### No issue --- package.json | 1 + .../logo.png} | Bin src/app/dev/admin/forum/main/page.tsx | 13 +- src/app/dev/colab/create/layout.tsx | 14 ++ src/app/dev/colab/create/page.tsx | 9 + src/app/dev/colab/detail/grup/[id]/layout.tsx | 14 ++ src/app/dev/colab/detail/grup/[id]/page.tsx | 7 + .../colab/detail/main_detail/[id]/layout.tsx | 14 ++ .../colab/detail/main_detail/[id]/loading.tsx | 9 + .../colab/detail/main_detail/[id]/page.tsx | 13 + .../detail/proyek/partisipasi/[id]/layout.tsx | 9 + .../detail/proyek/partisipasi/[id]/page.tsx | 9 + .../detail/status/publish/[id]/layout.tsx | 15 ++ .../detail/status/publish/[id]/loading.tsx | 9 + .../colab/detail/status/publish/[id]/page.tsx | 9 + .../detail/status/reject/[id]/layout.tsx | 16 ++ .../detail/status/reject/[id]/loading.tsx | 9 + .../colab/detail/status/reject/[id]/page.tsx | 9 + .../detail/status/review/[id]/layout.tsx | 16 ++ .../detail/status/review/[id]/loading.tsx | 9 + .../colab/detail/status/review/[id]/page.tsx | 9 + src/app/dev/colab/edit/[id]/layout.tsx | 14 ++ src/app/dev/colab/edit/[id]/page.tsx | 7 + src/app/dev/colab/main/beranda/loading.tsx | 9 + src/app/dev/colab/main/beranda/page.tsx | 7 + src/app/dev/colab/main/grup/loading.tsx | 9 + src/app/dev/colab/main/grup/page.tsx | 9 + src/app/dev/colab/main/layout.tsx | 14 ++ src/app/dev/colab/main/proyek/loading.tsx | 9 + src/app/dev/colab/main/proyek/page.tsx | 10 + src/app/dev/colab/main/status/loading.tsx | 9 + src/app/dev/colab/main/status/page.tsx | 9 + src/app/dev/colab/splash/page.tsx | 9 + src/app/dev/forum/main/page.tsx | 6 +- src/app/dev/forum/proyek/layout.tsx | 19 ++ src/app/dev/forum/proyek/page.tsx | 9 + src/app/layout.tsx | 5 +- src/app/lib/router_hipmi/router_colab.ts | 24 ++ src/app/makuro/gs_coba.ts | 3 + src/app/makuro/page.tsx | 58 ++++- .../fun/count/fun_count_laporan_komentar.ts | 13 + .../fun/count/fun_count_laporan_posting.ts | 13 + .../forum/fun/count/fun_count_publish.ts | 13 + src/app_modules/admin/forum/main/index.tsx | 32 ++- src/app_modules/admin/list_page.tsx | 20 +- .../component/card_view/card_section_data.tsx | 82 ++++++ .../card_section_header_author_name.tsx | 76 ++++++ .../component/card_view/jumlah_partisipan.tsx | 28 +++ .../component/detail/button_partisipasi.tsx | 23 ++ .../colab/component/detail/detail_data.tsx | 72 ++++++ .../detail/list_partisipasi_user.tsx | 29 +++ .../colab/component/header_author_name.tsx | 72 ++++++ .../colab/component/header_tamplate.tsx | 82 ++++++ src/app_modules/colab/component/noted_box.tsx | 22 ++ src/app_modules/colab/create/index.tsx | 75 ++++++ src/app_modules/colab/create/layout.tsx | 21 ++ src/app_modules/colab/detail/grup/index.tsx | 65 +++++ src/app_modules/colab/detail/grup/layout.tsx | 65 +++++ .../colab/detail/main_detail/index.tsx | 32 +++ .../colab/detail/main_detail/layout.tsx | 21 ++ .../colab/detail/proyek/partisipasi/index.tsx | 18 ++ .../detail/proyek/partisipasi/layout.tsx | 16 ++ .../colab/detail/status/publish/index.tsx | 165 ++++++++++++ .../colab/detail/status/publish/layout.tsx | 26 ++ .../colab/detail/status/reject/index.tsx | 85 +++++++ .../colab/detail/status/reject/layout.tsx | 29 +++ .../colab/detail/status/review/index.tsx | 39 +++ .../colab/detail/status/review/layout.tsx | 21 ++ src/app_modules/colab/edit/index.tsx | 74 ++++++ src/app_modules/colab/edit/layout.tsx | 19 ++ src/app_modules/colab/global_state/index.tsx | 18 ++ src/app_modules/colab/index.ts | 47 ++++ src/app_modules/colab/main/beranda.tsx | 68 +++++ src/app_modules/colab/main/grup/index.tsx | 41 +++ src/app_modules/colab/main/layout.tsx | 114 +++++++++ src/app_modules/colab/main/proyek/index.tsx | 58 +++++ .../colab/main/proyek/partisipasi.tsx | 34 +++ src/app_modules/colab/main/proyek/saya.tsx | 34 +++ src/app_modules/colab/main/status/index.tsx | 78 ++++++ src/app_modules/colab/main/status/publish.tsx | 37 +++ src/app_modules/colab/main/status/reject.tsx | 31 +++ src/app_modules/colab/main/status/review.tsx | 27 ++ src/app_modules/colab/splash/index.tsx | 31 +++ src/app_modules/home/view.tsx | 3 +- src/util/mqtt_client.ts | 10 + src/util/mqtt_loader.tsx | 22 ++ yarn.lock | 237 +++++++++++++++++- 87 files changed, 2656 insertions(+), 34 deletions(-) rename public/aset/{Hipmi Project Collaboration.png => colab/logo.png} (100%) create mode 100644 src/app/dev/colab/create/layout.tsx create mode 100644 src/app/dev/colab/create/page.tsx create mode 100644 src/app/dev/colab/detail/grup/[id]/layout.tsx create mode 100644 src/app/dev/colab/detail/grup/[id]/page.tsx create mode 100644 src/app/dev/colab/detail/main_detail/[id]/layout.tsx create mode 100644 src/app/dev/colab/detail/main_detail/[id]/loading.tsx create mode 100644 src/app/dev/colab/detail/main_detail/[id]/page.tsx create mode 100644 src/app/dev/colab/detail/proyek/partisipasi/[id]/layout.tsx create mode 100644 src/app/dev/colab/detail/proyek/partisipasi/[id]/page.tsx create mode 100644 src/app/dev/colab/detail/status/publish/[id]/layout.tsx create mode 100644 src/app/dev/colab/detail/status/publish/[id]/loading.tsx create mode 100644 src/app/dev/colab/detail/status/publish/[id]/page.tsx create mode 100644 src/app/dev/colab/detail/status/reject/[id]/layout.tsx create mode 100644 src/app/dev/colab/detail/status/reject/[id]/loading.tsx create mode 100644 src/app/dev/colab/detail/status/reject/[id]/page.tsx create mode 100644 src/app/dev/colab/detail/status/review/[id]/layout.tsx create mode 100644 src/app/dev/colab/detail/status/review/[id]/loading.tsx create mode 100644 src/app/dev/colab/detail/status/review/[id]/page.tsx create mode 100644 src/app/dev/colab/edit/[id]/layout.tsx create mode 100644 src/app/dev/colab/edit/[id]/page.tsx create mode 100644 src/app/dev/colab/main/beranda/loading.tsx create mode 100644 src/app/dev/colab/main/beranda/page.tsx create mode 100644 src/app/dev/colab/main/grup/loading.tsx create mode 100644 src/app/dev/colab/main/grup/page.tsx create mode 100644 src/app/dev/colab/main/layout.tsx create mode 100644 src/app/dev/colab/main/proyek/loading.tsx create mode 100644 src/app/dev/colab/main/proyek/page.tsx create mode 100644 src/app/dev/colab/main/status/loading.tsx create mode 100644 src/app/dev/colab/main/status/page.tsx create mode 100644 src/app/dev/colab/splash/page.tsx create mode 100644 src/app/dev/forum/proyek/layout.tsx create mode 100644 src/app/dev/forum/proyek/page.tsx create mode 100644 src/app/lib/router_hipmi/router_colab.ts create mode 100644 src/app/makuro/gs_coba.ts create mode 100644 src/app_modules/admin/forum/fun/count/fun_count_laporan_komentar.ts create mode 100644 src/app_modules/admin/forum/fun/count/fun_count_laporan_posting.ts create mode 100644 src/app_modules/admin/forum/fun/count/fun_count_publish.ts create mode 100644 src/app_modules/colab/component/card_view/card_section_data.tsx create mode 100644 src/app_modules/colab/component/card_view/card_section_header_author_name.tsx create mode 100644 src/app_modules/colab/component/card_view/jumlah_partisipan.tsx create mode 100644 src/app_modules/colab/component/detail/button_partisipasi.tsx create mode 100644 src/app_modules/colab/component/detail/detail_data.tsx create mode 100644 src/app_modules/colab/component/detail/list_partisipasi_user.tsx create mode 100644 src/app_modules/colab/component/header_author_name.tsx create mode 100644 src/app_modules/colab/component/header_tamplate.tsx create mode 100644 src/app_modules/colab/component/noted_box.tsx create mode 100644 src/app_modules/colab/create/index.tsx create mode 100644 src/app_modules/colab/create/layout.tsx create mode 100644 src/app_modules/colab/detail/grup/index.tsx create mode 100644 src/app_modules/colab/detail/grup/layout.tsx create mode 100644 src/app_modules/colab/detail/main_detail/index.tsx create mode 100644 src/app_modules/colab/detail/main_detail/layout.tsx create mode 100644 src/app_modules/colab/detail/proyek/partisipasi/index.tsx create mode 100644 src/app_modules/colab/detail/proyek/partisipasi/layout.tsx create mode 100644 src/app_modules/colab/detail/status/publish/index.tsx create mode 100644 src/app_modules/colab/detail/status/publish/layout.tsx create mode 100644 src/app_modules/colab/detail/status/reject/index.tsx create mode 100644 src/app_modules/colab/detail/status/reject/layout.tsx create mode 100644 src/app_modules/colab/detail/status/review/index.tsx create mode 100644 src/app_modules/colab/detail/status/review/layout.tsx create mode 100644 src/app_modules/colab/edit/index.tsx create mode 100644 src/app_modules/colab/edit/layout.tsx create mode 100644 src/app_modules/colab/global_state/index.tsx create mode 100644 src/app_modules/colab/index.ts create mode 100644 src/app_modules/colab/main/beranda.tsx create mode 100644 src/app_modules/colab/main/grup/index.tsx create mode 100644 src/app_modules/colab/main/layout.tsx create mode 100644 src/app_modules/colab/main/proyek/index.tsx create mode 100644 src/app_modules/colab/main/proyek/partisipasi.tsx create mode 100644 src/app_modules/colab/main/proyek/saya.tsx create mode 100644 src/app_modules/colab/main/status/index.tsx create mode 100644 src/app_modules/colab/main/status/publish.tsx create mode 100644 src/app_modules/colab/main/status/reject.tsx create mode 100644 src/app_modules/colab/main/status/review.tsx create mode 100644 src/app_modules/colab/splash/index.tsx create mode 100644 src/util/mqtt_client.ts create mode 100644 src/util/mqtt_loader.tsx diff --git a/package.json b/package.json index 079d0f9c..af974765 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "lodash": "^4.17.21", "midtrans-client": "^1.3.1", "moment": "^2.29.4", + "mqtt": "^5.5.0", "next": "^13.5.4-canary.8", "postcss": "8.4.27", "react": "18.2.0", diff --git a/public/aset/Hipmi Project Collaboration.png b/public/aset/colab/logo.png similarity index 100% rename from public/aset/Hipmi Project Collaboration.png rename to public/aset/colab/logo.png diff --git a/src/app/dev/admin/forum/main/page.tsx b/src/app/dev/admin/forum/main/page.tsx index 82f34264..9be61059 100644 --- a/src/app/dev/admin/forum/main/page.tsx +++ b/src/app/dev/admin/forum/main/page.tsx @@ -1,12 +1,23 @@ import { AdminForum_Main } from "@/app_modules/admin/forum"; +import { adminForum_countLaporanKomentar } from "@/app_modules/admin/forum/fun/count/fun_count_laporan_komentar"; +import { adminForum_countLaporanPosting } from "@/app_modules/admin/forum/fun/count/fun_count_laporan_posting"; +import { adminForum_countPublish } from "@/app_modules/admin/forum/fun/count/fun_count_publish"; export default async function Page() { // await new Promise((a, b) => { // setTimeout(a, 4000); // }); + const countPublish = await adminForum_countPublish(); + const countLaporanPosting = await adminForum_countLaporanPosting() + const countLaporanKomentar = await adminForum_countLaporanKomentar(); + return ( <> - + ); } diff --git a/src/app/dev/colab/create/layout.tsx b/src/app/dev/colab/create/layout.tsx new file mode 100644 index 00000000..eb26692d --- /dev/null +++ b/src/app/dev/colab/create/layout.tsx @@ -0,0 +1,14 @@ +import { LayoutColab_Create } from "@/app_modules/colab"; +import React from "react"; + +export default async function Layout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + {children} + + ); +} diff --git a/src/app/dev/colab/create/page.tsx b/src/app/dev/colab/create/page.tsx new file mode 100644 index 00000000..6a530d6f --- /dev/null +++ b/src/app/dev/colab/create/page.tsx @@ -0,0 +1,9 @@ +import { Colab_Create } from "@/app_modules/colab"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/detail/grup/[id]/layout.tsx b/src/app/dev/colab/detail/grup/[id]/layout.tsx new file mode 100644 index 00000000..77f28576 --- /dev/null +++ b/src/app/dev/colab/detail/grup/[id]/layout.tsx @@ -0,0 +1,14 @@ +import { LayoutColab_DetailGrupDiskusi } from "@/app_modules/colab"; +import React from "react"; + +export default async function Layout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + {children} + + ); +} diff --git a/src/app/dev/colab/detail/grup/[id]/page.tsx b/src/app/dev/colab/detail/grup/[id]/page.tsx new file mode 100644 index 00000000..24b9c782 --- /dev/null +++ b/src/app/dev/colab/detail/grup/[id]/page.tsx @@ -0,0 +1,7 @@ +import { Colab_DetailGrupDiskusi } from "@/app_modules/colab"; + +export default async function Page() { + return<> + + +} \ No newline at end of file diff --git a/src/app/dev/colab/detail/main_detail/[id]/layout.tsx b/src/app/dev/colab/detail/main_detail/[id]/layout.tsx new file mode 100644 index 00000000..433eb587 --- /dev/null +++ b/src/app/dev/colab/detail/main_detail/[id]/layout.tsx @@ -0,0 +1,14 @@ +import { LayoutColab_MainDetail } from "@/app_modules/colab"; +import React from "react"; + +export default async function Layout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + {children} + + ); +} diff --git a/src/app/dev/colab/detail/main_detail/[id]/loading.tsx b/src/app/dev/colab/detail/main_detail/[id]/loading.tsx new file mode 100644 index 00000000..b1f8b62f --- /dev/null +++ b/src/app/dev/colab/detail/main_detail/[id]/loading.tsx @@ -0,0 +1,9 @@ +import ComponentGlobal_V2_LoadingPage from "@/app_modules/component_global/loading_page_v2"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/detail/main_detail/[id]/page.tsx b/src/app/dev/colab/detail/main_detail/[id]/page.tsx new file mode 100644 index 00000000..88b5c9b4 --- /dev/null +++ b/src/app/dev/colab/detail/main_detail/[id]/page.tsx @@ -0,0 +1,13 @@ +import { Colab_MainDetail } from "@/app_modules/colab"; +import { User_getUserId } from "@/app_modules/fun_global/get_user_token"; + +export default async function Page({ params }: { params: { id: string } }) { + let colabId = params.id + const userLoginId = await User_getUserId() + + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/detail/proyek/partisipasi/[id]/layout.tsx b/src/app/dev/colab/detail/proyek/partisipasi/[id]/layout.tsx new file mode 100644 index 00000000..2d9fef0e --- /dev/null +++ b/src/app/dev/colab/detail/proyek/partisipasi/[id]/layout.tsx @@ -0,0 +1,9 @@ +import { LayoutColab_DetailPartisipasiProyek } from "@/app_modules/colab"; + +export default async function Layout({ children }: { children: any }) { + return ( + <> + {children} + + ); +} diff --git a/src/app/dev/colab/detail/proyek/partisipasi/[id]/page.tsx b/src/app/dev/colab/detail/proyek/partisipasi/[id]/page.tsx new file mode 100644 index 00000000..323e5439 --- /dev/null +++ b/src/app/dev/colab/detail/proyek/partisipasi/[id]/page.tsx @@ -0,0 +1,9 @@ +import { Colab_DetailPartisipasiProyek } from "@/app_modules/colab"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/detail/status/publish/[id]/layout.tsx b/src/app/dev/colab/detail/status/publish/[id]/layout.tsx new file mode 100644 index 00000000..87398d2d --- /dev/null +++ b/src/app/dev/colab/detail/status/publish/[id]/layout.tsx @@ -0,0 +1,15 @@ + +import { LayoutColab_DetailStatusPublish } from "@/app_modules/colab"; +import React from "react"; + +export default async function Layout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + {children} + + ); +} diff --git a/src/app/dev/colab/detail/status/publish/[id]/loading.tsx b/src/app/dev/colab/detail/status/publish/[id]/loading.tsx new file mode 100644 index 00000000..b1f8b62f --- /dev/null +++ b/src/app/dev/colab/detail/status/publish/[id]/loading.tsx @@ -0,0 +1,9 @@ +import ComponentGlobal_V2_LoadingPage from "@/app_modules/component_global/loading_page_v2"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/detail/status/publish/[id]/page.tsx b/src/app/dev/colab/detail/status/publish/[id]/page.tsx new file mode 100644 index 00000000..96e91ea3 --- /dev/null +++ b/src/app/dev/colab/detail/status/publish/[id]/page.tsx @@ -0,0 +1,9 @@ +import { Colab_DetailStatusPublish } from "@/app_modules/colab"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/detail/status/reject/[id]/layout.tsx b/src/app/dev/colab/detail/status/reject/[id]/layout.tsx new file mode 100644 index 00000000..778d5d48 --- /dev/null +++ b/src/app/dev/colab/detail/status/reject/[id]/layout.tsx @@ -0,0 +1,16 @@ +import { LayoutColab_DetailStatusReject } from "@/app_modules/colab"; +import React from "react"; + +export default async function Layout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + + {children} + + + ); +} diff --git a/src/app/dev/colab/detail/status/reject/[id]/loading.tsx b/src/app/dev/colab/detail/status/reject/[id]/loading.tsx new file mode 100644 index 00000000..b1f8b62f --- /dev/null +++ b/src/app/dev/colab/detail/status/reject/[id]/loading.tsx @@ -0,0 +1,9 @@ +import ComponentGlobal_V2_LoadingPage from "@/app_modules/component_global/loading_page_v2"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/detail/status/reject/[id]/page.tsx b/src/app/dev/colab/detail/status/reject/[id]/page.tsx new file mode 100644 index 00000000..0962f23f --- /dev/null +++ b/src/app/dev/colab/detail/status/reject/[id]/page.tsx @@ -0,0 +1,9 @@ +import { Colab_DetailStatusReject } from "@/app_modules/colab"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/detail/status/review/[id]/layout.tsx b/src/app/dev/colab/detail/status/review/[id]/layout.tsx new file mode 100644 index 00000000..c2972b6a --- /dev/null +++ b/src/app/dev/colab/detail/status/review/[id]/layout.tsx @@ -0,0 +1,16 @@ +import { LayoutColab_DetailStatusReview } from "@/app_modules/colab"; +import React from "react"; + +export default async function Layout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + + {children} + + + ); +} diff --git a/src/app/dev/colab/detail/status/review/[id]/loading.tsx b/src/app/dev/colab/detail/status/review/[id]/loading.tsx new file mode 100644 index 00000000..b1f8b62f --- /dev/null +++ b/src/app/dev/colab/detail/status/review/[id]/loading.tsx @@ -0,0 +1,9 @@ +import ComponentGlobal_V2_LoadingPage from "@/app_modules/component_global/loading_page_v2"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/detail/status/review/[id]/page.tsx b/src/app/dev/colab/detail/status/review/[id]/page.tsx new file mode 100644 index 00000000..f6b5ea3f --- /dev/null +++ b/src/app/dev/colab/detail/status/review/[id]/page.tsx @@ -0,0 +1,9 @@ +import { Colab_DetailStatusReview } from "@/app_modules/colab"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/edit/[id]/layout.tsx b/src/app/dev/colab/edit/[id]/layout.tsx new file mode 100644 index 00000000..719b077d --- /dev/null +++ b/src/app/dev/colab/edit/[id]/layout.tsx @@ -0,0 +1,14 @@ +import { LayoutColab_Edit } from "@/app_modules/colab"; +import React from "react"; + +export default async function Layout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + {children} + + ); +} diff --git a/src/app/dev/colab/edit/[id]/page.tsx b/src/app/dev/colab/edit/[id]/page.tsx new file mode 100644 index 00000000..2295a415 --- /dev/null +++ b/src/app/dev/colab/edit/[id]/page.tsx @@ -0,0 +1,7 @@ +import { Colab_Edit } from "@/app_modules/colab"; + +export default async function Page(){ + return<> + + +} \ No newline at end of file diff --git a/src/app/dev/colab/main/beranda/loading.tsx b/src/app/dev/colab/main/beranda/loading.tsx new file mode 100644 index 00000000..b1f8b62f --- /dev/null +++ b/src/app/dev/colab/main/beranda/loading.tsx @@ -0,0 +1,9 @@ +import ComponentGlobal_V2_LoadingPage from "@/app_modules/component_global/loading_page_v2"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/main/beranda/page.tsx b/src/app/dev/colab/main/beranda/page.tsx new file mode 100644 index 00000000..62cde404 --- /dev/null +++ b/src/app/dev/colab/main/beranda/page.tsx @@ -0,0 +1,7 @@ +import { Colab_Beranda } from "@/app_modules/colab"; + +export default async function Page() { + return<> + + +} \ No newline at end of file diff --git a/src/app/dev/colab/main/grup/loading.tsx b/src/app/dev/colab/main/grup/loading.tsx new file mode 100644 index 00000000..b1f8b62f --- /dev/null +++ b/src/app/dev/colab/main/grup/loading.tsx @@ -0,0 +1,9 @@ +import ComponentGlobal_V2_LoadingPage from "@/app_modules/component_global/loading_page_v2"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/main/grup/page.tsx b/src/app/dev/colab/main/grup/page.tsx new file mode 100644 index 00000000..2a719aec --- /dev/null +++ b/src/app/dev/colab/main/grup/page.tsx @@ -0,0 +1,9 @@ +import Colab_GrupDiskus from "@/app_modules/colab/main/grup"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/main/layout.tsx b/src/app/dev/colab/main/layout.tsx new file mode 100644 index 00000000..0d4bcdcc --- /dev/null +++ b/src/app/dev/colab/main/layout.tsx @@ -0,0 +1,14 @@ +import { LayoutColab_Main } from "@/app_modules/colab"; +import React from "react"; + +export default async function Layout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + {children} + + ); +} diff --git a/src/app/dev/colab/main/proyek/loading.tsx b/src/app/dev/colab/main/proyek/loading.tsx new file mode 100644 index 00000000..b1f8b62f --- /dev/null +++ b/src/app/dev/colab/main/proyek/loading.tsx @@ -0,0 +1,9 @@ +import ComponentGlobal_V2_LoadingPage from "@/app_modules/component_global/loading_page_v2"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/main/proyek/page.tsx b/src/app/dev/colab/main/proyek/page.tsx new file mode 100644 index 00000000..6675c0cd --- /dev/null +++ b/src/app/dev/colab/main/proyek/page.tsx @@ -0,0 +1,10 @@ +import { Colab_Proyek } from "@/app_modules/colab"; + + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/main/status/loading.tsx b/src/app/dev/colab/main/status/loading.tsx new file mode 100644 index 00000000..b1f8b62f --- /dev/null +++ b/src/app/dev/colab/main/status/loading.tsx @@ -0,0 +1,9 @@ +import ComponentGlobal_V2_LoadingPage from "@/app_modules/component_global/loading_page_v2"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/main/status/page.tsx b/src/app/dev/colab/main/status/page.tsx new file mode 100644 index 00000000..c16629e3 --- /dev/null +++ b/src/app/dev/colab/main/status/page.tsx @@ -0,0 +1,9 @@ +import { Colab_Status } from "@/app_modules/colab"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/colab/splash/page.tsx b/src/app/dev/colab/splash/page.tsx new file mode 100644 index 00000000..3f860c4c --- /dev/null +++ b/src/app/dev/colab/splash/page.tsx @@ -0,0 +1,9 @@ +import { Colab_Splash } from "@/app_modules/colab"; + +export default function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/forum/main/page.tsx b/src/app/dev/forum/main/page.tsx index a3e042d7..7ae55dae 100644 --- a/src/app/dev/forum/main/page.tsx +++ b/src/app/dev/forum/main/page.tsx @@ -1,3 +1,4 @@ + import { Forum_Beranda } from "@/app_modules/forum"; import { forum_getListAllPosting } from "@/app_modules/forum/fun/get/get_list_all_posting"; import { User_getUserId } from "@/app_modules/fun_global/get_user_token"; @@ -7,7 +8,10 @@ export default async function Page() { const userLoginId = await User_getUserId(); return ( <> - + ); } diff --git a/src/app/dev/forum/proyek/layout.tsx b/src/app/dev/forum/proyek/layout.tsx new file mode 100644 index 00000000..3a5cd8e4 --- /dev/null +++ b/src/app/dev/forum/proyek/layout.tsx @@ -0,0 +1,19 @@ +import ComponentColab_HeaderTamplate from "@/app_modules/colab/component/header_tamplate"; +import { AppShell } from "@mantine/core"; +import React from "react"; + +export default async function Layout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + } + > + {children} + + + ); +} diff --git a/src/app/dev/forum/proyek/page.tsx b/src/app/dev/forum/proyek/page.tsx new file mode 100644 index 00000000..5c08e75c --- /dev/null +++ b/src/app/dev/forum/proyek/page.tsx @@ -0,0 +1,9 @@ +import { Colab_PartisipasiProyek } from "@/app_modules/colab"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 2de3b93c..619c23f5 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,8 +1,11 @@ +import MqttLoader from '@/util/mqtt_loader'; import RootStyleRegistry from './emotion'; export default function RootLayout({ children }: { children: React.ReactNode }) { return ( - {children} + + + {children} ); } diff --git a/src/app/lib/router_hipmi/router_colab.ts b/src/app/lib/router_hipmi/router_colab.ts new file mode 100644 index 00000000..f68374c0 --- /dev/null +++ b/src/app/lib/router_hipmi/router_colab.ts @@ -0,0 +1,24 @@ +export const RouterColab = { + //splash + splash: "/dev/colab/splash", + + //main + beranda: "/dev/colab/main/beranda", + status: "/dev/colab/main/status", + proyek: "/dev/colab/main/proyek", + grup_diskusi: "/dev/colab/main/grup", + + // create + create: "/dev/colab/create", + edit: "/dev/colab/edit/", + + //detail + main_detail: "/dev/colab/detail/main_detail/", + status_review: "/dev/colab/detail/status/review/", + status_reject: "/dev/colab/detail/status/reject/", + status_publish: "/dev/colab/detail/status/publish/", + partisipasi_proyek: "/dev/colab/detail/proyek/partisipasi/", + detail_grup: "/dev/colab/detail/grup/", + + // proyek +}; diff --git a/src/app/makuro/gs_coba.ts b/src/app/makuro/gs_coba.ts new file mode 100644 index 00000000..b63754c4 --- /dev/null +++ b/src/app/makuro/gs_coba.ts @@ -0,0 +1,3 @@ +import { atomWithStorage } from "jotai/utils"; + +export const gs_coba_chat = atomWithStorage("gs_coba_chat", []); \ No newline at end of file diff --git a/src/app/makuro/page.tsx b/src/app/makuro/page.tsx index 07482089..b75f7da5 100644 --- a/src/app/makuro/page.tsx +++ b/src/app/makuro/page.tsx @@ -1,8 +1,58 @@ -import { Text } from "@mantine/core"; +"use client"; + +import { Box, Paper, SimpleGrid, Stack, Text, TextInput } from "@mantine/core"; import ViewMakuro from "./_server/makuro_view"; +import mqtt_client from "@/util/mqtt_client"; +import { useState } from "react"; +import { useAtom } from "jotai"; +import { gs_coba_chat } from "./gs_coba"; export default function Page() { - return <> - + const [data1, setData1] = useState(""); + const [data2, setData2] = useState(""); + + const [msg, setMsg] = useAtom(gs_coba_chat); + + return ( + <> + + + setData1(val.currentTarget.value)} + /> + + + + setData2(val.currentTarget.value)} + /> + + + + + + {msg} + + + {/* */} -} \ No newline at end of file + ); +} diff --git a/src/app_modules/admin/forum/fun/count/fun_count_laporan_komentar.ts b/src/app_modules/admin/forum/fun/count/fun_count_laporan_komentar.ts new file mode 100644 index 00000000..9402b709 --- /dev/null +++ b/src/app_modules/admin/forum/fun/count/fun_count_laporan_komentar.ts @@ -0,0 +1,13 @@ +"use server"; + +import prisma from "@/app/lib/prisma"; + +export async function adminForum_countLaporanKomentar() { + const count = await prisma.forum_ReportKomentar.count({ + where: { + isActive: true, + }, + }); + + return count; +} diff --git a/src/app_modules/admin/forum/fun/count/fun_count_laporan_posting.ts b/src/app_modules/admin/forum/fun/count/fun_count_laporan_posting.ts new file mode 100644 index 00000000..fa673c48 --- /dev/null +++ b/src/app_modules/admin/forum/fun/count/fun_count_laporan_posting.ts @@ -0,0 +1,13 @@ +"use server"; + +import prisma from "@/app/lib/prisma"; + +export async function adminForum_countLaporanPosting() { + const count = await prisma.forum_ReportPosting.count({ + where: { + isActive: true, + }, + }); + + return count; +} diff --git a/src/app_modules/admin/forum/fun/count/fun_count_publish.ts b/src/app_modules/admin/forum/fun/count/fun_count_publish.ts new file mode 100644 index 00000000..c5fde5de --- /dev/null +++ b/src/app_modules/admin/forum/fun/count/fun_count_publish.ts @@ -0,0 +1,13 @@ +"use server"; + +import prisma from "@/app/lib/prisma"; + +export async function adminForum_countPublish() { + const count = await prisma.forum_Posting.count({ + where: { + isActive: true, + }, + }); + + return count; +} diff --git a/src/app_modules/admin/forum/main/index.tsx b/src/app_modules/admin/forum/main/index.tsx index be4f6a71..9ab092f7 100644 --- a/src/app_modules/admin/forum/main/index.tsx +++ b/src/app_modules/admin/forum/main/index.tsx @@ -4,36 +4,56 @@ import { Group, Paper, SimpleGrid, Stack, Text, Title } from "@mantine/core"; import ComponentAdminGlobal_HeaderTamplate from "../../component/header_tamplate"; import ComponentAdminGlobal_LoadingPage from "../../component/loading_admin_page"; -export default function AdminForum_Main() { +export default function AdminForum_Main({ + countPublish, + countLaporanPosting, + countLaporanKomentar, +}: { + countPublish: number; + countLaporanPosting: number; + countLaporanKomentar: number; +}) { return ( <> - + {/* */} ); } -function ForumMain() { +function ForumMain({ + countPublish, + countLaporanPosting, + countLaporanKomentar, +}: { + countPublish: number; + countLaporanPosting: number; + countLaporanKomentar: number; +}) { const listBox = [ { id: 1, name: "Publish", - jumlah: 0, + jumlah: countPublish, color: "green", }, { id: 2, name: "Laporan Posting", - jumlah: 0, + jumlah: countLaporanPosting, color: "orange", }, { id: 3, name: "Laporan Komentar", - jumlah: 0, + jumlah: countLaporanKomentar, color: "red", }, ]; diff --git a/src/app_modules/admin/list_page.tsx b/src/app_modules/admin/list_page.tsx index 411fa1f9..8a72b837 100644 --- a/src/app_modules/admin/list_page.tsx +++ b/src/app_modules/admin/list_page.tsx @@ -159,16 +159,16 @@ export const listAdminPage = [ name: "Table Posting", path: RouterAdminForum.publish, }, - { - id: 73, - name: "Laporan Posting", - path: RouterAdminForum.report_posting, - }, - { - id: 74, - name: "Laporan Komentar", - path: RouterAdminForum.report_komentar, - }, + // { + // id: 73, + // name: "Laporan Posting", + // path: RouterAdminForum.report_posting, + // }, + // { + // id: 74, + // name: "Laporan Komentar", + // path: RouterAdminForum.report_komentar, + // }, ], }, ]; diff --git a/src/app_modules/colab/component/card_view/card_section_data.tsx b/src/app_modules/colab/component/card_view/card_section_data.tsx new file mode 100644 index 00000000..911d5ecc --- /dev/null +++ b/src/app_modules/colab/component/card_view/card_section_data.tsx @@ -0,0 +1,82 @@ +"use client"; + +import { RouterColab } from "@/app/lib/router_hipmi/router_colab"; +import ComponentGlobal_V2_LoadingPage from "@/app_modules/component_global/loading_page_v2"; +import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/component_global/notif_global/notifikasi_peringatan"; +import { Card, Center, Title, Stack, Grid, Text } from "@mantine/core"; +import { useRouter } from "next/navigation"; +import { useState } from "react"; + +export default function ComponentColab_CardSectionData({ + colabId, + path, +}: { + colabId?: any; + path?: any; +}) { + const router = useRouter(); + + return ( + <> + { + if (path) { + router.push(path + colabId); + } else { + ComponentGlobal_NotifikasiPeringatan("Path tidak ditemukan"); + } + }} + > +
+ + Judul Proyek{" "} + +
+ + + + + Industri + + + + : + + + Industri + + + + + + + Lokasi + + + + : + + + + Lokasi dari proyek{" "} + + + + + + + Tujuan proyek + + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam + repudiandae nostrum temporibus velit possimus, voluptate inventore + recusandae hic ipsa praesentium deserunt, fuga asperiores + doloremque amet incidunt explicabo ea eius earum. + + + +
+ + ); +} diff --git a/src/app_modules/colab/component/card_view/card_section_header_author_name.tsx b/src/app_modules/colab/component/card_view/card_section_header_author_name.tsx new file mode 100644 index 00000000..7e7b1e58 --- /dev/null +++ b/src/app_modules/colab/component/card_view/card_section_header_author_name.tsx @@ -0,0 +1,76 @@ +"use client"; + +import ComponentGlobal_AuthorNameOnHeader from "@/app_modules/component_global/author_name_on_header"; +import { Avatar, Card, Divider, Grid, Stack, Text } from "@mantine/core"; +import ComponentColab_AuthorNameOnHeader from "../header_author_name"; +import { RouterProfile } from "@/app/lib/router_hipmi/router_katalog"; +import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/component_global/notif_global/notifikasi_peringatan"; +import { useRouter } from "next/navigation"; + +export default function ComponentColab_CardSectionHeaderAuthorName({ + profileId, + imagesId, + authorName, + tglPublish, + isPembatas, + jumlah_partisipan, +}: { + profileId?: string; + imagesId?: string; + authorName?: string; + tglPublish?: Date; + isPembatas?: boolean; + jumlah_partisipan?: number; +}) { + const router = useRouter(); + + return ( + <> + + + + { + if (profileId) { + router.push(RouterProfile.katalog + profileId); + } else { + ComponentGlobal_NotifikasiPeringatan("Id tidak ditemukan"); + } + }} + > + + + + + + {authorName ? authorName : "Nama author"} + + + + + + + {jumlah_partisipan + ? jumlah_partisipan + " " + "partisipan" + : 0 + " " + "partisipan"} + + + + + {isPembatas ? : ""} + + + + ); +} diff --git a/src/app_modules/colab/component/card_view/jumlah_partisipan.tsx b/src/app_modules/colab/component/card_view/jumlah_partisipan.tsx new file mode 100644 index 00000000..aea8f9a9 --- /dev/null +++ b/src/app_modules/colab/component/card_view/jumlah_partisipan.tsx @@ -0,0 +1,28 @@ +"use client"; + +import { Stack, Divider, Center, Text, Grid } from "@mantine/core"; +import { IconUsersGroup } from "@tabler/icons-react"; + +export default function ComponentColab_JumlahPartisipan() { + return ( + <> + + +
+ + + + 12 + + + + + Partisipan + + + +
+
+ + ); +} diff --git a/src/app_modules/colab/component/detail/button_partisipasi.tsx b/src/app_modules/colab/component/detail/button_partisipasi.tsx new file mode 100644 index 00000000..b6bee43b --- /dev/null +++ b/src/app_modules/colab/component/detail/button_partisipasi.tsx @@ -0,0 +1,23 @@ +"use client"; + +import { Center, Button } from "@mantine/core"; +import { useState } from "react"; + +export default function ComponentColab_ButtonPartisipasi() { + const [apply, setApply] = useState(false); + return ( + <> +
+ +
+ + ); +} diff --git a/src/app_modules/colab/component/detail/detail_data.tsx b/src/app_modules/colab/component/detail/detail_data.tsx new file mode 100644 index 00000000..d99f556e --- /dev/null +++ b/src/app_modules/colab/component/detail/detail_data.tsx @@ -0,0 +1,72 @@ +"use client" + +import { Stack, Box, Center, Title, Grid, Text } from "@mantine/core"; +import ComponentColab_AuthorNameOnHeader from "../header_author_name"; + +export default function ComponentColab_DetailData() { + return ( + <> + + +
+ Judul Proyek +
+ + + + + Industri + + + + : + + + Industri + + + + + + + Lokasi + + + + : + + + + Lokasi dari proyek{" "} + + + + + + + Tujuan proyek + + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam + repudiandae nostrum temporibus velit possimus, voluptate + inventore recusandae hic ipsa praesentium deserunt, fuga + asperiores doloremque amet incidunt explicabo ea eius earum. + + + + + Keutungan + + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam + repudiandae nostrum temporibus velit possimus, voluptate + inventore recusandae hic ipsa praesentium deserunt, fuga + asperiores doloremque amet incidunt explicabo ea eius earum. + + + +
+
+ + ); +} \ No newline at end of file diff --git a/src/app_modules/colab/component/detail/list_partisipasi_user.tsx b/src/app_modules/colab/component/detail/list_partisipasi_user.tsx new file mode 100644 index 00000000..490df2ef --- /dev/null +++ b/src/app_modules/colab/component/detail/list_partisipasi_user.tsx @@ -0,0 +1,29 @@ +"use client" + +import { Paper, Center, Title, ScrollArea, Box, Stack } from "@mantine/core"; +import ComponentColab_AuthorNameOnHeader from "../header_author_name"; + +export default function ComponentColab_DetailListPartisipasiUser() { + return ( + <> + +
+ Partispasi User (12) +
{" "} + + + + {Array(10) + .fill(0) + .map((e, i) => ( + + + + ))} + + + +
+ + ); +} \ No newline at end of file diff --git a/src/app_modules/colab/component/header_author_name.tsx b/src/app_modules/colab/component/header_author_name.tsx new file mode 100644 index 00000000..91e115dc --- /dev/null +++ b/src/app_modules/colab/component/header_author_name.tsx @@ -0,0 +1,72 @@ +"use client"; + +import { RouterProfile } from "@/app/lib/router_hipmi/router_katalog"; +import { Stack, Grid, Avatar, Divider, Text, Group } from "@mantine/core"; +import { useRouter } from "next/navigation"; +import moment from "moment"; +import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/component_global/notif_global/notifikasi_peringatan"; + +export default function ComponentColab_AuthorNameOnHeader({ + profileId, + imagesId, + authorName, + tglPublish, + isPembatas, +}: { + profileId?: string; + imagesId?: string; + authorName?: string; + tglPublish?: Date; + isPembatas?: boolean; +}) { + const router = useRouter(); + return ( + <> + + + { + if (profileId) { + router.push(RouterProfile.katalog + profileId); + } else { + ComponentGlobal_NotifikasiPeringatan("Id tidak ditemukan"); + } + }} + > + + + + + + {authorName ? authorName : "Nama author"} + + + + + + {tglPublish ? ( + + {new Intl.DateTimeFormat("id-ID").format(tglPublish)} + + ) : ( + "" + )} + + + + {isPembatas ? : ""} + + + ); +} diff --git a/src/app_modules/colab/component/header_tamplate.tsx b/src/app_modules/colab/component/header_tamplate.tsx new file mode 100644 index 00000000..774acd2e --- /dev/null +++ b/src/app_modules/colab/component/header_tamplate.tsx @@ -0,0 +1,82 @@ +"use client"; + +import ComponentGlobal_V2_LoadingPage from "@/app_modules/component_global/loading_page_v2"; +import { + Header, + Group, + ActionIcon, + Text, + Title, + Center, + Loader, +} from "@mantine/core"; +import { IconArrowLeft, IconChevronLeft } from "@tabler/icons-react"; +import { useRouter } from "next/navigation"; +import { useState } from "react"; + +export default function ComponentColab_HeaderTamplate({ + hideBack, + changeIconBack, + route, + route2, + title, + icon, + bg, +}: { + hideBack?: boolean; + changeIconBack?: any; + route?: any; + route2?: any; + title: string; + icon?: any; + bg?: any; +}) { + const router = useRouter(); + const [loading, setLoading] = useState(false); + if (loading) return ; + + return ( + <> +
+ + {hideBack ? ( + + ) : ( + { + setLoading(true); + if (route === null || route === undefined) { + return router.back(); + } else { + return router.push(route); + } + }} + > + {changeIconBack ? changeIconBack : } + + )} + {title} + {(() => { + if (route2 === null || route2 === undefined) { + return ; + } else { + return ( + router.push(route2)} + > + {icon} + + ); + } + })()} + +
+ + ); +} diff --git a/src/app_modules/colab/component/noted_box.tsx b/src/app_modules/colab/component/noted_box.tsx new file mode 100644 index 00000000..f63ae161 --- /dev/null +++ b/src/app_modules/colab/component/noted_box.tsx @@ -0,0 +1,22 @@ +import { Center, Grid, Group, Paper, Text, Title } from "@mantine/core"; + +export default function ComponentColab_NotedBox({ + informasi, +}: { + informasi: string; +}) { + return ( + <> + + + + + *{" "} + + {informasi} + + + + + ); +} diff --git a/src/app_modules/colab/create/index.tsx b/src/app_modules/colab/create/index.tsx new file mode 100644 index 00000000..5d86c700 --- /dev/null +++ b/src/app_modules/colab/create/index.tsx @@ -0,0 +1,75 @@ +"use client"; + +import { RouterColab } from "@/app/lib/router_hipmi/router_colab"; +import { Button, Select, Stack, TextInput, Textarea } from "@mantine/core"; +import { useRouter } from "next/navigation"; +import { useState } from "react"; + +export default function Colab_Create() { + return ( + <> + + + + + +