diff --git a/prisma/schema.prisma b/prisma/schema.prisma index afef70f1..02c09f15 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -838,3 +838,11 @@ model ProjectCollaboration_Notifikasi { User User @relation("UserNotifProjectToUser", fields: [userId], references: [id], map: "UserNotifProjectUser") userId String } + +model NomorAdmin { + id String @id @default(cuid()) + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + nomor String +} diff --git a/public/donasi/image/502a25ff-c27a-4b70-a267-1ad5c986df66.jpeg b/public/donasi/image/502a25ff-c27a-4b70-a267-1ad5c986df66.jpeg new file mode 100644 index 00000000..6453d730 Binary files /dev/null and b/public/donasi/image/502a25ff-c27a-4b70-a267-1ad5c986df66.jpeg differ diff --git a/public/donasi/image/87bc7622-092e-4f51-aa73-62f0027fb0c2.jpeg b/public/donasi/image/87bc7622-092e-4f51-aa73-62f0027fb0c2.jpeg new file mode 100644 index 00000000..d3ea1214 Binary files /dev/null and b/public/donasi/image/87bc7622-092e-4f51-aa73-62f0027fb0c2.jpeg differ diff --git a/public/donasi/image/93440447-b6af-49d9-91be-d0b5ab12d4c0.jpeg b/public/donasi/image/93440447-b6af-49d9-91be-d0b5ab12d4c0.jpeg new file mode 100644 index 00000000..d040a767 Binary files /dev/null and b/public/donasi/image/93440447-b6af-49d9-91be-d0b5ab12d4c0.jpeg differ diff --git a/public/donasi/image/b7441f61-56eb-43b6-929d-087de8ca29a7.jpeg b/public/donasi/image/b7441f61-56eb-43b6-929d-087de8ca29a7.jpeg new file mode 100644 index 00000000..d040a767 Binary files /dev/null and b/public/donasi/image/b7441f61-56eb-43b6-929d-087de8ca29a7.jpeg differ diff --git a/public/donasi/image/c26bcc5f-15fc-4d43-aa6a-fa4d69801ca8.jpeg b/public/donasi/image/c26bcc5f-15fc-4d43-aa6a-fa4d69801ca8.jpeg new file mode 100644 index 00000000..5652497a Binary files /dev/null and b/public/donasi/image/c26bcc5f-15fc-4d43-aa6a-fa4d69801ca8.jpeg differ diff --git a/public/donasi/image_cerita/81623671-442f-48fd-892c-04997c540261.jpg b/public/donasi/image_cerita/81623671-442f-48fd-892c-04997c540261.jpg new file mode 100644 index 00000000..b71d094e Binary files /dev/null and b/public/donasi/image_cerita/81623671-442f-48fd-892c-04997c540261.jpg differ diff --git a/public/donasi/image_cerita/8e40e59f-7cbd-4ed5-b89f-a54e1b330657.jpeg b/public/donasi/image_cerita/8e40e59f-7cbd-4ed5-b89f-a54e1b330657.jpeg new file mode 100644 index 00000000..d3ea1214 Binary files /dev/null and b/public/donasi/image_cerita/8e40e59f-7cbd-4ed5-b89f-a54e1b330657.jpeg differ diff --git a/public/donasi/image_cerita/c7f0706c-5573-40e1-9bb3-0f024425a266.jpeg b/public/donasi/image_cerita/c7f0706c-5573-40e1-9bb3-0f024425a266.jpeg new file mode 100644 index 00000000..22cb9a6e Binary files /dev/null and b/public/donasi/image_cerita/c7f0706c-5573-40e1-9bb3-0f024425a266.jpeg differ diff --git a/public/donasi/image_cerita/e6236e2c-84c1-40ec-a6e1-0b1134595c81.jpeg b/public/donasi/image_cerita/e6236e2c-84c1-40ec-a6e1-0b1134595c81.jpeg new file mode 100644 index 00000000..6453d730 Binary files /dev/null and b/public/donasi/image_cerita/e6236e2c-84c1-40ec-a6e1-0b1134595c81.jpeg differ diff --git a/public/donasi/invoice/0b61d934-f5f6-419c-b897-a27ca9b73c81.jpg b/public/donasi/invoice/0b61d934-f5f6-419c-b897-a27ca9b73c81.jpg new file mode 100644 index 00000000..ea83eb05 Binary files /dev/null and b/public/donasi/invoice/0b61d934-f5f6-419c-b897-a27ca9b73c81.jpg differ diff --git a/public/donasi/invoice/192d0ce2-7106-4276-83c6-e65f5a4b7534.jpg b/public/donasi/invoice/192d0ce2-7106-4276-83c6-e65f5a4b7534.jpg new file mode 100644 index 00000000..ea83eb05 Binary files /dev/null and b/public/donasi/invoice/192d0ce2-7106-4276-83c6-e65f5a4b7534.jpg differ diff --git a/public/donasi/invoice/1b2c6f27-f4da-4188-a3f7-f3969a84ee6f.jpg b/public/donasi/invoice/1b2c6f27-f4da-4188-a3f7-f3969a84ee6f.jpg new file mode 100644 index 00000000..7d8e71ab Binary files /dev/null and b/public/donasi/invoice/1b2c6f27-f4da-4188-a3f7-f3969a84ee6f.jpg differ diff --git a/public/donasi/invoice/636a9e95-ea4e-43f5-8958-1b9c6f7014e5.jpg b/public/donasi/invoice/636a9e95-ea4e-43f5-8958-1b9c6f7014e5.jpg new file mode 100644 index 00000000..ea83eb05 Binary files /dev/null and b/public/donasi/invoice/636a9e95-ea4e-43f5-8958-1b9c6f7014e5.jpg differ diff --git a/public/donasi/invoice/661edfa5-61e6-44e9-b8c2-67bc79811822.png b/public/donasi/invoice/661edfa5-61e6-44e9-b8c2-67bc79811822.png new file mode 100644 index 00000000..6f356546 Binary files /dev/null and b/public/donasi/invoice/661edfa5-61e6-44e9-b8c2-67bc79811822.png differ diff --git a/public/donasi/invoice/b0bdcb6a-b884-4878-9bcc-d33360ace33b.jpg b/public/donasi/invoice/b0bdcb6a-b884-4878-9bcc-d33360ace33b.jpg new file mode 100644 index 00000000..7d8e71ab Binary files /dev/null and b/public/donasi/invoice/b0bdcb6a-b884-4878-9bcc-d33360ace33b.jpg differ diff --git a/public/donasi/invoice/c3acfd53-b383-42f1-a800-3f3c433d8bd5.png b/public/donasi/invoice/c3acfd53-b383-42f1-a800-3f3c433d8bd5.png new file mode 100644 index 00000000..6f356546 Binary files /dev/null and b/public/donasi/invoice/c3acfd53-b383-42f1-a800-3f3c433d8bd5.png differ diff --git a/public/donasi/invoice/e6c8f3d0-b7ac-45f4-ab00-67383439feea.jpg b/public/donasi/invoice/e6c8f3d0-b7ac-45f4-ab00-67383439feea.jpg new file mode 100644 index 00000000..ea83eb05 Binary files /dev/null and b/public/donasi/invoice/e6c8f3d0-b7ac-45f4-ab00-67383439feea.jpg differ diff --git a/public/donasi/invoice/e88dfb69-d708-4543-9d6d-d3a07cfe66e3.png b/public/donasi/invoice/e88dfb69-d708-4543-9d6d-d3a07cfe66e3.png new file mode 100644 index 00000000..827976fd Binary files /dev/null and b/public/donasi/invoice/e88dfb69-d708-4543-9d6d-d3a07cfe66e3.png differ diff --git a/public/donasi/invoice/f6f73b86-92e7-47d7-afd8-c87f731002cc.jpg b/public/donasi/invoice/f6f73b86-92e7-47d7-afd8-c87f731002cc.jpg new file mode 100644 index 00000000..ea83eb05 Binary files /dev/null and b/public/donasi/invoice/f6f73b86-92e7-47d7-afd8-c87f731002cc.jpg differ diff --git a/public/donasi/invoice/f9a95f41-0cb7-4fb8-b582-0e7d331bc21a.png b/public/donasi/invoice/f9a95f41-0cb7-4fb8-b582-0e7d331bc21a.png new file mode 100644 index 00000000..827976fd Binary files /dev/null and b/public/donasi/invoice/f9a95f41-0cb7-4fb8-b582-0e7d331bc21a.png differ diff --git a/public/donasi/invoice/fd0780a8-ffa4-4db7-b834-0b5c97ad4de7.jpg b/public/donasi/invoice/fd0780a8-ffa4-4db7-b834-0b5c97ad4de7.jpg new file mode 100644 index 00000000..7d8e71ab Binary files /dev/null and b/public/donasi/invoice/fd0780a8-ffa4-4db7-b834-0b5c97ad4de7.jpg differ diff --git a/public/donasi/invoice/fd95563a-04af-4e77-bf76-2ef51777e705.jpg b/public/donasi/invoice/fd95563a-04af-4e77-bf76-2ef51777e705.jpg new file mode 100644 index 00000000..ea83eb05 Binary files /dev/null and b/public/donasi/invoice/fd95563a-04af-4e77-bf76-2ef51777e705.jpg differ diff --git a/public/file/1e56f93e-df1a-4062-9d67-7fda5302bef2.jpeg b/public/file/1e56f93e-df1a-4062-9d67-7fda5302bef2.jpeg new file mode 100644 index 00000000..25a18f99 Binary files /dev/null and b/public/file/1e56f93e-df1a-4062-9d67-7fda5302bef2.jpeg differ diff --git a/public/file/516c7e01-3fb2-47e3-be42-fe7a28e011ee.jpg b/public/file/516c7e01-3fb2-47e3-be42-fe7a28e011ee.jpg new file mode 100644 index 00000000..cbfea1c7 Binary files /dev/null and b/public/file/516c7e01-3fb2-47e3-be42-fe7a28e011ee.jpg differ diff --git a/public/investasi/1d0bb6c1-ea62-4b2d-bdb7-d66630aa2719.jpg b/public/investasi/1d0bb6c1-ea62-4b2d-bdb7-d66630aa2719.jpg new file mode 100644 index 00000000..fe8a42f6 Binary files /dev/null and b/public/investasi/1d0bb6c1-ea62-4b2d-bdb7-d66630aa2719.jpg differ diff --git a/public/investasi/1d19b0b3-614c-4354-8799-baf1f1303901.jpg b/public/investasi/1d19b0b3-614c-4354-8799-baf1f1303901.jpg new file mode 100644 index 00000000..cbfea1c7 Binary files /dev/null and b/public/investasi/1d19b0b3-614c-4354-8799-baf1f1303901.jpg differ diff --git a/public/investasi/9bedc4ca-3557-4378-83fb-6d5854442a11.jpeg b/public/investasi/9bedc4ca-3557-4378-83fb-6d5854442a11.jpeg new file mode 100644 index 00000000..25a18f99 Binary files /dev/null and b/public/investasi/9bedc4ca-3557-4378-83fb-6d5854442a11.jpeg differ diff --git a/public/investasi/ed92f5af-98eb-4d13-9c01-50b778f3b9e3.jpg b/public/investasi/ed92f5af-98eb-4d13-9c01-50b778f3b9e3.jpg new file mode 100644 index 00000000..fe8a42f6 Binary files /dev/null and b/public/investasi/ed92f5af-98eb-4d13-9c01-50b778f3b9e3.jpg differ diff --git a/public/job/75b1d1ae-acba-4a4a-b904-dd5aeaaa3d65.jpg b/public/job/75b1d1ae-acba-4a4a-b904-dd5aeaaa3d65.jpg new file mode 100644 index 00000000..4204a23e Binary files /dev/null and b/public/job/75b1d1ae-acba-4a4a-b904-dd5aeaaa3d65.jpg differ diff --git a/src/app/api/seeder/route.ts b/src/app/api/seeder/route.ts index c3ebab50..cb0dffd5 100644 --- a/src/app/api/seeder/route.ts +++ b/src/app/api/seeder/route.ts @@ -24,7 +24,7 @@ import forum_status_posting from "../../../bin/seeder/forum/master_status.json"; import collaboration_industri from "../../../bin/seeder/colab/master_industri.json"; import collaboration_status from "../../../bin/seeder/colab/master_status.json"; import collaboration_jumlah_minimal_room from "../../../bin/seeder/colab/jumlah_minimal_room.json"; -import { randomId } from "@mantine/hooks"; +import nomor_admin from "../../../bin/seeder/nomor_admin.json"; export async function GET(req: Request) { const dev = new URL(req.url).searchParams.get("dev"); @@ -392,6 +392,22 @@ export async function GET(req: Request) { }); } + for (let a of nomor_admin) { + await prisma.nomorAdmin.upsert({ + where: { + id: a.id, + }, + create: { + id: a.id, + nomor: a.nomor, + }, + update: { + id: a.id, + nomor: a.nomor, + }, + }); + } + return NextResponse.json({ success: true }); } diff --git a/src/app/dev/admin/app-information/main/page.tsx b/src/app/dev/admin/app-information/main/page.tsx new file mode 100644 index 00000000..7d556b51 --- /dev/null +++ b/src/app/dev/admin/app-information/main/page.tsx @@ -0,0 +1,9 @@ +import { AdminAppInformation_MainView } from "@/app_modules/admin/app-info"; + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/admin/developer/page.tsx b/src/app/dev/admin/developer/page.tsx index c69ae063..609d4b10 100644 --- a/src/app/dev/admin/developer/page.tsx +++ b/src/app/dev/admin/developer/page.tsx @@ -4,12 +4,12 @@ import adminDeveloper_funGetListAllUser from "@/app_modules/admin/developer/fun/ import _ from "lodash"; export default async function Page() { - const listUser = await adminDeveloper_funGetListAllUser(); - const listAdmin = await adminDeveloper_funGetListAllAdmin(); + const listUser = await adminDeveloper_funGetListAllUser({ page: 1 }); + const listAdmin = await adminDeveloper_funGetListAllAdmin({ page: 1 }); return ( <> - + ); } diff --git a/src/app/dev/admin/donasi/detail/publish/[id]/page.tsx b/src/app/dev/admin/donasi/detail/publish/[id]/page.tsx index dd094a1b..d3294a62 100644 --- a/src/app/dev/admin/donasi/detail/publish/[id]/page.tsx +++ b/src/app/dev/admin/donasi/detail/publish/[id]/page.tsx @@ -1,23 +1,29 @@ import { AdminDonasi_DetailPublish } from "@/app_modules/admin/donasi"; import { AdminDonasi_funCountDonatur } from "@/app_modules/admin/donasi/fun/count/fun_count_donatur"; -import { AdminDonasi_getListDonatur } from "@/app_modules/admin/donasi/fun/get/get_list_donatur_by_id"; +import { adminDonasi_getListDonatur } from "@/app_modules/admin/donasi/fun/get/get_list_donatur_by_id"; import { AdminDonasi_getListPencairanDana } from "@/app_modules/admin/donasi/fun/get/get_list_pencairan_dana_by_id"; import { AdminDonasi_getOneById } from "@/app_modules/admin/donasi/fun/get/get_one_by_id"; +import adminDonasi_getMasterStatus from "@/app_modules/admin/donasi/fun/master/get_status_id"; export default async function Page({ params }: { params: { id: string } }) { + let donasiId = params.id; const dataPublish = await AdminDonasi_getOneById(params.id); - const listDonatur = await AdminDonasi_getListDonatur(params.id); + const listDonatur = await adminDonasi_getListDonatur({ + donasiId: donasiId, + page: 1, + }); const countDonatur = await AdminDonasi_funCountDonatur(params.id); const listPencairan = await AdminDonasi_getListPencairanDana(params.id); - // console.log(listDonatur) + const listMasterStatus = await adminDonasi_getMasterStatus(); return ( <> ); diff --git a/src/app/dev/admin/donasi/sub-detail/transfer-invoice/[id]/page.tsx b/src/app/dev/admin/donasi/sub-detail/transfer-invoice/[id]/page.tsx new file mode 100644 index 00000000..a6b4146a --- /dev/null +++ b/src/app/dev/admin/donasi/sub-detail/transfer-invoice/[id]/page.tsx @@ -0,0 +1,10 @@ +import { AdminDonasi_BuktiTransfer } from "@/app_modules/admin/donasi"; + +export default async function Page({ params }: { params: { id: string } }) { + let imageId = params.id; + return ( + <> + + + ); +} diff --git a/src/app/dev/admin/donasi/sub-menu/informasi/page.tsx b/src/app/dev/admin/donasi/sub-menu/informasi/page.tsx new file mode 100644 index 00000000..592c6d7e --- /dev/null +++ b/src/app/dev/admin/donasi/sub-menu/informasi/page.tsx @@ -0,0 +1,9 @@ + + +export default async function Page() { + return ( + <> + + + ); +} diff --git a/src/app/dev/admin/donasi/sub-menu/kategori/page.tsx b/src/app/dev/admin/donasi/sub-menu/kategori/page.tsx new file mode 100644 index 00000000..86c84d44 --- /dev/null +++ b/src/app/dev/admin/donasi/sub-menu/kategori/page.tsx @@ -0,0 +1,12 @@ +import { AdminDonasi_TableKategori } from "@/app_modules/admin/donasi"; +import adminDonasi_getMasterKategori from "@/app_modules/admin/donasi/fun/master/get_list_kategori"; + +export default async function Page() { + const listKategori = await adminDonasi_getMasterKategori(); + + return ( + <> + + + ); +} diff --git a/src/app/dev/admin/donasi/table/publish/page.tsx b/src/app/dev/admin/donasi/sub-menu/publish/page.tsx similarity index 56% rename from src/app/dev/admin/donasi/table/publish/page.tsx rename to src/app/dev/admin/donasi/sub-menu/publish/page.tsx index 30945ac0..a0171588 100644 --- a/src/app/dev/admin/donasi/table/publish/page.tsx +++ b/src/app/dev/admin/donasi/sub-menu/publish/page.tsx @@ -1,8 +1,10 @@ import { AdminDonasi_TablePublish } from "@/app_modules/admin/donasi"; -import { AdminDonasi_getByStatus } from "@/app_modules/admin/donasi/fun/get/get_list_donasi_by_status"; +import adminDonasi_getListPublish from "@/app_modules/admin/donasi/fun/get/get_list_publish"; export default async function Page() { - const listPublish = await AdminDonasi_getByStatus("1") + const listPublish = await adminDonasi_getListPublish({ + page: 1, + }); // console.log(listPublish) return<> diff --git a/src/app/dev/admin/donasi/sub-menu/reject/page.tsx b/src/app/dev/admin/donasi/sub-menu/reject/page.tsx new file mode 100644 index 00000000..76c38ec8 --- /dev/null +++ b/src/app/dev/admin/donasi/sub-menu/reject/page.tsx @@ -0,0 +1,12 @@ +import { AdminDonasi_TableReject } from "@/app_modules/admin/donasi"; +import adminDonasi_getListReject from "@/app_modules/admin/donasi/fun/get/get_list_reject"; + +export default async function Page() { + const dataReject = await adminDonasi_getListReject({ page: 1 }); + // console.log(dataReject) + return ( + <> + + + ); +} diff --git a/src/app/dev/admin/donasi/table/review/page.tsx b/src/app/dev/admin/donasi/sub-menu/review/page.tsx similarity index 64% rename from src/app/dev/admin/donasi/table/review/page.tsx rename to src/app/dev/admin/donasi/sub-menu/review/page.tsx index 8aabc0cb..45e018cf 100644 --- a/src/app/dev/admin/donasi/table/review/page.tsx +++ b/src/app/dev/admin/donasi/sub-menu/review/page.tsx @@ -1,9 +1,9 @@ import { AdminDonasi_TableReview } from "@/app_modules/admin/donasi"; -import { AdminDonasi_getByStatus } from "@/app_modules/admin/donasi/fun/get/get_list_donasi_by_status"; +import adminDonasi_getListReview from "@/app_modules/admin/donasi/fun/get/get_list_review"; import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; export default async function Page() { - const listReview = await AdminDonasi_getByStatus("2"); + const listReview = await adminDonasi_getListReview({page: 1}); // console.log(listReview); return ; } diff --git a/src/app/dev/admin/donasi/table/reject/page.tsx b/src/app/dev/admin/donasi/table/reject/page.tsx deleted file mode 100644 index 96a1cfe7..00000000 --- a/src/app/dev/admin/donasi/table/reject/page.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { AdminDonasi_TableReject } from "@/app_modules/admin/donasi"; -import { AdminDonasi_getByStatus } from "@/app_modules/admin/donasi/fun/get/get_list_donasi_by_status"; - -export default async function Page() { - const dataReject = await AdminDonasi_getByStatus("4") - // console.log(dataReject) - return<> - - -} \ No newline at end of file diff --git a/src/app/dev/admin/investasi/sub-menu/publish/page.tsx b/src/app/dev/admin/investasi/sub-menu/publish/page.tsx new file mode 100644 index 00000000..0d5e4609 --- /dev/null +++ b/src/app/dev/admin/investasi/sub-menu/publish/page.tsx @@ -0,0 +1,12 @@ +import { Admin_TablePublishInvestasi } from "@/app_modules/admin/investasi"; +import Admin_funGetAllInvestasi from "@/app_modules/admin/investasi/fun/get_all_investasi"; + +export default async function Page() { + const listInvestasi = await Admin_funGetAllInvestasi(); + + return ( + <> + + + ); +} diff --git a/src/app/dev/admin/investasi/sub-menu/reject/page.tsx b/src/app/dev/admin/investasi/sub-menu/reject/page.tsx new file mode 100644 index 00000000..55092f60 --- /dev/null +++ b/src/app/dev/admin/investasi/sub-menu/reject/page.tsx @@ -0,0 +1,10 @@ +import { Admin_TableRejectInvestasi } from "@/app_modules/admin/investasi"; +import Admin_funGetAllInvestasi from "@/app_modules/admin/investasi/fun/get_all_investasi"; + +export default async function Page() { + const dataInvestsi = await Admin_funGetAllInvestasi() + return <> + + + +} \ No newline at end of file diff --git a/src/app/dev/admin/investasi/sub-menu/review/page.tsx b/src/app/dev/admin/investasi/sub-menu/review/page.tsx new file mode 100644 index 00000000..350245f7 --- /dev/null +++ b/src/app/dev/admin/investasi/sub-menu/review/page.tsx @@ -0,0 +1,9 @@ +import { Admin_TableReviewInvestasi } from "@/app_modules/admin/investasi"; +import Admin_funGetAllInvestasi from "@/app_modules/admin/investasi/fun/get_all_investasi"; + +export default async function Page() { + const dataInvestsi = await Admin_funGetAllInvestasi() + return <> + + +} \ No newline at end of file diff --git a/src/app/dev/admin/user-access/page.tsx b/src/app/dev/admin/user-access/page.tsx index c4d4491f..ed337fdd 100644 --- a/src/app/dev/admin/user-access/page.tsx +++ b/src/app/dev/admin/user-access/page.tsx @@ -2,11 +2,11 @@ import { AdminUserAccess_View } from "@/app_modules/admin/user-access"; import adminUserAccess_getListUser from "@/app_modules/admin/user-access/fun/get/get_list_all_user"; export default async function Page() { - const listUser = await adminUserAccess_getListUser() + const listUser = await adminUserAccess_getListUser({ page: 1 }); - return ( - <> - - - ); -} \ No newline at end of file + return ( + <> + + + ); +} diff --git a/src/app/dev/donasi/detail/detail_donasi_saya/[id]/page.tsx b/src/app/dev/donasi/detail/detail_donasi_saya/[id]/page.tsx index 8388822f..270ca0ca 100644 --- a/src/app/dev/donasi/detail/detail_donasi_saya/[id]/page.tsx +++ b/src/app/dev/donasi/detail/detail_donasi_saya/[id]/page.tsx @@ -7,7 +7,6 @@ export default async function Page({ params }: { params: { id: string } }) { let invoiceId = params.id; const dataDonasi = await Donasi_getOneInvoiceById(invoiceId); const countDonatur= await Donasi_getCountDonatur(dataDonasi?.donasiId as any) - console.log(dataDonasi?.Donasi?.progres) return ( diff --git a/src/app/dev/donasi/proses_donasi/masukan_donasi/[id]/page.tsx b/src/app/dev/donasi/proses_donasi/masukan_donasi/[id]/page.tsx index f8892ca8..5db9e5f8 100644 --- a/src/app/dev/donasi/proses_donasi/masukan_donasi/[id]/page.tsx +++ b/src/app/dev/donasi/proses_donasi/masukan_donasi/[id]/page.tsx @@ -1,6 +1,6 @@ import { MasukanDonasi } from "@/app_modules/donasi"; -export default async function Page({params}: {params : {id: string}}) { -let donasiId = params.id - return -} \ No newline at end of file +export default async function Page({ params }: { params: { id: string } }) { + let donasiId = params.id; + return ; +} diff --git a/src/app/dev/event/main/status_page/page.tsx b/src/app/dev/event/main/status_page/page.tsx index 1aade7b4..792bfdbc 100644 --- a/src/app/dev/event/main/status_page/page.tsx +++ b/src/app/dev/event/main/status_page/page.tsx @@ -1,13 +1,13 @@ import { Event_StatusPage } from "@/app_modules/event"; -import { Event_getByStatusId } from "@/app_modules/event/fun/get/get_event_by_status_id"; +import { Event_getListByStatusId } from "@/app_modules/event/fun/get/get_list_event_by_status_id"; import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; export default async function Page() { const authorId = await user_getOneUserId(); - const listPublish = await Event_getByStatusId("1", authorId); - const listReview = await Event_getByStatusId("2", authorId); - const listDraft = await Event_getByStatusId("3", authorId); - const listReject = await Event_getByStatusId("4", authorId); + const listPublish = await Event_getListByStatusId("1", authorId); + const listReview = await Event_getListByStatusId("2", authorId); + const listDraft = await Event_getListByStatusId("3", authorId); + const listReject = await Event_getListByStatusId("4", authorId); return ( + + + + + + ); +} + +function InformasiWhatApps() { + return ( + <> + + + Informasi WhatsApp + {/* } + radius={"xl"} + placeholder="Masukan username" + onChange={(val) => { + onSearch(val.currentTarget.value); + }} + /> */} + + + + + + + + ); +} diff --git a/src/app_modules/admin/component/admin_notifikasi/notifikasi_berhasil.tsx b/src/app_modules/admin/component/admin_notifikasi/notifikasi_berhasil.tsx new file mode 100644 index 00000000..51ae73d3 --- /dev/null +++ b/src/app_modules/admin/component/admin_notifikasi/notifikasi_berhasil.tsx @@ -0,0 +1,40 @@ +import { Center, Text } from "@mantine/core"; +import { notifications } from "@mantine/notifications"; +import { + IconAlertTriangle, + IconChecklist, + IconCircleCheck, +} from "@tabler/icons-react"; + +/** + * + * @param text | masukan text untuk peringatan + * @type string + * @param durasi | durasi autoClose + * @type number + * @returns notifikasi berhasil warna hijau + */ +export async function ComponentGlobalAdmin_NotifikasiBerhasil( + text: string, + durasi?: number +) { + return notifications.show({ + message: ( +
+ {text} +
+ ), + color: "green", + radius: "md", + autoClose: durasi ? durasi : 2000, + icon: , + withCloseButton: false, + + styles: (theme) => ({ + description: { color: theme.white }, + root: { + backgroundColor: theme.colors.green[7], + }, + }), + }); +} diff --git a/src/app_modules/admin/component/admin_notifikasi/notifikasi_gagal.tsx b/src/app_modules/admin/component/admin_notifikasi/notifikasi_gagal.tsx new file mode 100644 index 00000000..c9f103f8 --- /dev/null +++ b/src/app_modules/admin/component/admin_notifikasi/notifikasi_gagal.tsx @@ -0,0 +1,31 @@ +import { Center, Text } from "@mantine/core"; +import { notifications } from "@mantine/notifications"; +import { IconAlertTriangle } from "@tabler/icons-react"; + +/** + * + * @param text | masukan text untuk peringatan + * @type string + * @returns notifikasi peringatan + */ +export async function ComponentGlobalAdmin_NotifikasiGagal(text: string) { + return notifications.show({ + message: ( +
+ {text} +
+ ), + color: "red", + radius: "md", + autoClose: 2000, + icon: , + withCloseButton: false, + + styles: (theme) => ({ + description: { color: theme.white }, + root: { + backgroundColor: theme.colors.red[7], + }, + }), + }); +} diff --git a/src/app_modules/admin/component/admin_notifikasi/notifikasi_peringatan.tsx b/src/app_modules/admin/component/admin_notifikasi/notifikasi_peringatan.tsx new file mode 100644 index 00000000..399a671c --- /dev/null +++ b/src/app_modules/admin/component/admin_notifikasi/notifikasi_peringatan.tsx @@ -0,0 +1,49 @@ +import { ActionIcon, Avatar, Center, Text } from "@mantine/core"; +import { notifications } from "@mantine/notifications"; +import { IconAlertTriangle } from "@tabler/icons-react"; + +/** + * + * @param text | masukan text untuk peringatan + * @type string + * @returns notifikasi peringatan + */ +export async function ComponentGlobalAdmin_NotifikasiPeringatan( + text: string, + durasi?: number +) { + return notifications.show({ + message: ( +
+ {text} +
+ ), + color: "yellow.1", + radius: "md", + autoClose: durasi ? durasi : 2000, + style: { + borderWidth: "0.5px", + borderStyle: "solid", + borderColor: "red" + + + }, + + icon: ( + + + + ), + withCloseButton: false, + + styles: (theme) => ({ + description: { color: theme.white }, + root: { + backgroundColor: theme.colors.orange[5], + }, + }), + }); +} diff --git a/src/app_modules/admin/component/back_button.tsx b/src/app_modules/admin/component/back_button.tsx new file mode 100644 index 00000000..eca11135 --- /dev/null +++ b/src/app_modules/admin/component/back_button.tsx @@ -0,0 +1,34 @@ +"use client"; + +import { Group, Button, Loader } from "@mantine/core"; +import { IconChevronLeft } from "@tabler/icons-react"; +import { useRouter } from "next/navigation"; +import { useState } from "react"; + +export default function ComponentGlobalAdmin_BackButton() { + const router = useRouter(); + const [isLoading, setLoading] = useState(false); + + return ( + <> + + + + + ); +} diff --git a/src/app_modules/admin/component/header_tamplate.tsx b/src/app_modules/admin/component/header_tamplate.tsx index 5516a311..54d2ffd1 100644 --- a/src/app_modules/admin/component/header_tamplate.tsx +++ b/src/app_modules/admin/component/header_tamplate.tsx @@ -5,7 +5,7 @@ import { Box, Title, Divider, Stack } from "@mantine/core"; export default function ComponentAdminGlobal_HeaderTamplate({name}: {name: string}) { return ( <> - + {name ? name : null} diff --git a/src/app_modules/admin/developer/fun/get/fun_get_list_all_admin.ts b/src/app_modules/admin/developer/fun/get/fun_get_list_all_admin.ts index 7cf6d885..14ba2777 100644 --- a/src/app_modules/admin/developer/fun/get/fun_get_list_all_admin.ts +++ b/src/app_modules/admin/developer/fun/get/fun_get_list_all_admin.ts @@ -1,15 +1,45 @@ -"use server" +"use server"; -import prisma from "@/app/lib/prisma" +import prisma from "@/app/lib/prisma"; +import _, { ceil } from "lodash"; -export default async function adminDeveloper_funGetListAllAdmin() { - const data = await prisma.user.findMany({ - orderBy: { - updatedAt: "asc", +export default async function adminDeveloper_funGetListAllAdmin({ + search, + page, +}: { + search?: any; + page: any; +}) { + const dataSkip = _.toNumber(page) * 9 - 9; + const data = await prisma.user.findMany({ + skip: dataSkip, + take: 9, + orderBy: { + updatedAt: "asc", + }, + where: { + masterUserRoleId: "2", + username: { + contains: search, + mode: "insensitive", }, - where: { - masterUserRoleId: "2", + }, + }); + + const nCount = await prisma.user.count({ + where: { + masterUserRoleId: "2", + username: { + contains: search, + mode: "insensitive", }, - }); - return data; -} \ No newline at end of file + }, + }); + + const allData = { + data: data, + nPage: ceil(nCount / 9), + }; + + return allData; +} diff --git a/src/app_modules/admin/developer/fun/get/fun_get_list_all_user.ts b/src/app_modules/admin/developer/fun/get/fun_get_list_all_user.ts index 3de50a19..12b0445f 100644 --- a/src/app_modules/admin/developer/fun/get/fun_get_list_all_user.ts +++ b/src/app_modules/admin/developer/fun/get/fun_get_list_all_user.ts @@ -1,15 +1,45 @@ "use server"; - import prisma from "@/app/lib/prisma"; +import _, { ceil } from "lodash"; + +export default async function adminDeveloper_funGetListAllUser({ + search, + page, +}: { + search?: any; + page: any; +}) { + const dataSkip = _.toNumber(page) * 9 - 9; -export default async function adminDeveloper_funGetListAllUser() { const data = await prisma.user.findMany({ + skip: dataSkip, + take: 9, orderBy: { updatedAt: "asc", }, where: { masterUserRoleId: "1", + username: { + contains: search, + mode: "insensitive", + }, }, }); - return data; + + const nCount = await prisma.user.count({ + where: { + masterUserRoleId: "1", + username: { + contains: search, + mode: "insensitive", + }, + }, + }); + + const allData = { + data: data, + nPage: ceil(nCount / 9), + }; + + return allData; } diff --git a/src/app_modules/admin/developer/index.tsx b/src/app_modules/admin/developer/index.tsx index c2d49ac5..c8183381 100644 --- a/src/app_modules/admin/developer/index.tsx +++ b/src/app_modules/admin/developer/index.tsx @@ -5,6 +5,7 @@ import { Button, Center, Group, + Pagination, Paper, ScrollArea, SimpleGrid, @@ -17,7 +18,7 @@ import ComponentAdminGlobal_HeaderTamplate from "../component/header_tamplate"; import { MODEL_USER } from "@/app_modules/home/model/interface"; import _ from "lodash"; import { IconSearch } from "@tabler/icons-react"; -import { useState } from "react"; +import { useEffect, useState } from "react"; import adminDeveloper_funEditUserAksesById from "./fun/edit/fun_edit_user_akses_by_id"; import adminDeveloper_funGetListAllAdmin from "./fun/get/fun_get_list_all_admin"; import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/component_global/notif_global/notifikasi_berhasil"; @@ -27,27 +28,49 @@ import adminDeveloper_funGetListAllUser from "./fun/get/fun_get_list_all_user"; export default function AdminDeveloper({ listUser, listAdmin, + pUser, + pAdmin, }: { listUser: MODEL_USER[]; listAdmin: MODEL_USER[]; + pUser: any; + pAdmin: any; }) { const [dataUser, setDataUser] = useState(listUser); const [dataAdmin, setDataAdmin] = useState(listAdmin); + const [pageUser, setPageUser] = useState(pUser); + const [pageAdmin, setPageAdmin] = useState(pAdmin); return ( <> - - */} + {/* */} + { + setDataUser(val.data); + setPageUser(val.nPage); + }} + /> + { + setDataAdmin(val.data); + setPageAdmin(val.nPage); + }} /> @@ -55,6 +78,280 @@ export default function AdminDeveloper({ ); } +function NewTableUser({ + data, + nPage, + onUpdated, +}: { + data: any; + nPage: any; + onUpdated: (val: any) => void; +}) { + const [isChoosePage, setChoosePage] = useState(1); + const [dataUser, setDataUser] = useState(data); + const [isNPage, setNPage] = useState(nPage); + const [isSearch, setSearch] = useState(""); + + async function onPageClick(p: any) { + setChoosePage(p); + const loadData = await adminDeveloper_funGetListAllUser({ + search: isSearch, + page: p, + }); + setDataUser(loadData.data); + setNPage(loadData.nPage); + } + + async function onSearch(s: any) { + setSearch(s); + setChoosePage(1); + const loadData = await adminDeveloper_funGetListAllUser({ + search: s, + page: 1, + }); + setDataUser(loadData.data); + setNPage(loadData.nPage); + } + + async function onAccess(id: string) { + const upd = await adminDeveloper_funEditUserAksesById(id, "2"); + if (upd.status == 200) { + const loadData = await adminDeveloper_funGetListAllUser({ + search: isSearch, + page: isChoosePage, + }); + setDataUser(loadData.data); + setNPage(loadData.nPage); + const loadDataAdmin = await adminDeveloper_funGetListAllAdmin({ + page: 1, + }); + onUpdated(loadDataAdmin); + ComponentGlobal_NotifikasiBerhasil(upd.message); + } else { + ComponentGlobal_NotifikasiGagal(upd.message); + } + } + + useEffect(() => { + setDataUser(data); + setNPage(nPage); + setSearch(""); + setChoosePage(1); + }, [data, nPage]); + + return ( + <> + + + Table User NEW + } + radius={"xl"} + placeholder="Masukan username" + onChange={(val) => { + onSearch(val.currentTarget.value); + }} + /> + + + + + + + + + + + + {dataUser.map((v: any, i: any) => ( + + + + + + ))} + +
+
Username
+
+
Nomor
+
+
Aksi
+
+
{v.username}
+
+
{v.nomor}
+
+
+ +
+
+ + { + onPageClick(val); + }} + total={isNPage} + /> + +
+
+ + ); +} + +function NewTableAdmin({ + data, + nPage, + onUpdated, +}: { + data: any; + nPage: any; + onUpdated: (val: any) => void; +}) { + const [isChoosePage, setChoosePage] = useState(1); + const [dataAdmin, setDataAdmin] = useState(data); + const [isNPage, setNPage] = useState(nPage); + const [isSearch, setSearch] = useState(""); + + async function onPageClick(p: any) { + setChoosePage(p); + const loadData = await adminDeveloper_funGetListAllAdmin({ + search: isSearch, + page: p, + }); + setDataAdmin(loadData.data); + setNPage(loadData.nPage); + } + + async function onSearch(s: any) { + setSearch(s); + setChoosePage(1); + const loadData = await adminDeveloper_funGetListAllAdmin({ + search: s, + page: 1, + }); + setDataAdmin(loadData.data); + setNPage(loadData.nPage); + } + + async function onAccess(id: string) { + const upd = await adminDeveloper_funEditUserAksesById(id, "1"); + if (upd.status == 200) { + const loadData = await adminDeveloper_funGetListAllAdmin({ + search: isSearch, + page: isChoosePage, + }); + setDataAdmin(loadData.data); + setNPage(loadData.nPage); + const loadDataUser = await adminDeveloper_funGetListAllUser({ page: 1 }); + onUpdated(loadDataUser); + ComponentGlobal_NotifikasiBerhasil(upd.message); + } else { + ComponentGlobal_NotifikasiGagal(upd.message); + } + } + + useEffect(() => { + setDataAdmin(data); + setNPage(nPage); + setSearch(""); + setChoosePage(1); + }, [data, nPage]); + + return ( + <> + + + Table Admin + } + radius={"xl"} + placeholder="Masukan username" + onChange={(val) => { + onSearch(val.currentTarget.value); + }} + /> + + + + + + + + + + + + {dataAdmin.map((v: any, i: any) => ( + + + + + + ))} + +
+
Username
+
+
Nomor
+
+
Aksi
+
+
{v.username}
+
+
{v.nomor}
+
+
+ +
+
+ + { + onPageClick(val); + }} + total={isNPage} + /> + +
+
+ + ); +} + function TableAdmin({ dataAdmin, setDataAdmin, @@ -67,10 +364,10 @@ function TableAdmin({ async function onAccess(id: string) { await adminDeveloper_funEditUserAksesById(id, "1").then(async (res) => { if (res.status === 200) { - await adminDeveloper_funGetListAllUser().then((val) => { + await adminDeveloper_funGetListAllUser({ page: 1 }).then((val) => { setDataUser(val); }); - await adminDeveloper_funGetListAllAdmin().then((val) => { + await adminDeveloper_funGetListAllAdmin({ page: 1 }).then((val) => { setDataAdmin(val); }); ComponentGlobal_NotifikasiBerhasil(res.message); @@ -155,10 +452,10 @@ function TableUser({ async function onAccess(id: string) { await adminDeveloper_funEditUserAksesById(id, "2").then(async (res) => { if (res.status === 200) { - await adminDeveloper_funGetListAllUser().then((val) => { - setDataUser(val); + await adminDeveloper_funGetListAllUser({ page: 1 }).then((val) => { + setDataUser(val.data); }); - await adminDeveloper_funGetListAllAdmin().then((val) => { + await adminDeveloper_funGetListAllAdmin({ page: 1 }).then((val) => { setDataAdmin(val); }); ComponentGlobal_NotifikasiBerhasil(res.message); diff --git a/src/app_modules/admin/donasi/detail_table/detail_reject.tsx b/src/app_modules/admin/donasi/detail/detail_reject.tsx similarity index 80% rename from src/app_modules/admin/donasi/detail_table/detail_reject.tsx rename to src/app_modules/admin/donasi/detail/detail_reject.tsx index a90cfe7a..50a9e098 100644 --- a/src/app_modules/admin/donasi/detail_table/detail_reject.tsx +++ b/src/app_modules/admin/donasi/detail/detail_reject.tsx @@ -24,6 +24,7 @@ import { AdminDonasi_funUpdateCatatanReject } from "../fun/update/fun_update_cat import { NotifBerhasil } from "@/app_modules/donasi/component/notifikasi/notif_berhasil"; import { NotifGagal } from "@/app_modules/donasi/component/notifikasi/notif_gagal"; import { AdminDonasi_getOneById } from "../fun/get/get_one_by_id"; +import ComponentGlobal_InputCountDown from "@/app_modules/component_global/input_countdown"; export default function AdminDonasi_DetailReject({ dataReject, @@ -66,11 +67,11 @@ function ButtonOnHeader({ donasiId: string; setDonasi: any; }) { - const [catat, setCatat] = useState(catatan); + const [report, setReport] = useState(catatan); const [opened, { open, close }] = useDisclosure(false); async function onUpdate() { - await AdminDonasi_funUpdateCatatanReject(donasiId, catat).then( + await AdminDonasi_funUpdateCatatanReject(donasiId, report).then( async (res) => { if (res.status === 200) { NotifBerhasil(res.message); @@ -94,19 +95,45 @@ function ButtonOnHeader({
+