diff --git a/package.json b/package.json index 46263582..b0ac8d88 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@mantine/dropzone": "^7.1.3", "@mantine/hooks": "^6.0.17", "@mantine/next": "^6.0.17", + "@mantine/notifications": "^6.0.17", "@prisma/client": "^5.0.0", "@tabler/icons-react": "^2.38.0", "@types/lodash": "^4.14.199", diff --git a/prisma/schema.prisma b/prisma/schema.prisma index a4bbb8ac..8890f763 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -281,9 +281,10 @@ model Donasi { createdAt DateTime @default(now()) updatedAt DateTime @updatedAt publishTime DateTime? + catatan String? Author User? @relation(fields: [authorId], references: [id]) - authorId String? @unique + authorId String? imageDonasi Images? @relation(fields: [imagesId], references: [id]) imagesId String? @unique CeritaDonasi Donasi_Cerita? diff --git a/public/aset/global/no_img.png b/public/aset/global/no_img.png new file mode 100644 index 00000000..00953883 Binary files /dev/null and b/public/aset/global/no_img.png differ diff --git a/public/donasi/image/454e636f-9631-45cd-99ae-27efdb44be91.jpeg b/public/donasi/image/454e636f-9631-45cd-99ae-27efdb44be91.jpeg new file mode 100644 index 00000000..5652497a Binary files /dev/null and b/public/donasi/image/454e636f-9631-45cd-99ae-27efdb44be91.jpeg differ diff --git a/public/donasi/image/4e1a2302-5471-4a95-a79c-0fbe3c3f0677.jpeg b/public/donasi/image/4e1a2302-5471-4a95-a79c-0fbe3c3f0677.jpeg new file mode 100644 index 00000000..5652497a Binary files /dev/null and b/public/donasi/image/4e1a2302-5471-4a95-a79c-0fbe3c3f0677.jpeg differ diff --git a/public/donasi/image/84a72cf5-1b0e-47f8-bca9-763edef28c0b.jpeg b/public/donasi/image/84a72cf5-1b0e-47f8-bca9-763edef28c0b.jpeg new file mode 100644 index 00000000..6453d730 Binary files /dev/null and b/public/donasi/image/84a72cf5-1b0e-47f8-bca9-763edef28c0b.jpeg differ diff --git a/public/donasi/image/b9b270aa-f0db-42a6-822e-a35b6b28c883.jpeg b/public/donasi/image/b9b270aa-f0db-42a6-822e-a35b6b28c883.jpeg new file mode 100644 index 00000000..5652497a Binary files /dev/null and b/public/donasi/image/b9b270aa-f0db-42a6-822e-a35b6b28c883.jpeg differ diff --git a/public/donasi/image/bf8c9bae-e3c9-4d33-89ec-9a88c3740da8.jpeg b/public/donasi/image/bf8c9bae-e3c9-4d33-89ec-9a88c3740da8.jpeg new file mode 100644 index 00000000..289b1a56 Binary files /dev/null and b/public/donasi/image/bf8c9bae-e3c9-4d33-89ec-9a88c3740da8.jpeg differ diff --git a/public/donasi/image/c6b8d269-7e15-4711-81e0-35d1d2f757dc.jpeg b/public/donasi/image/c6b8d269-7e15-4711-81e0-35d1d2f757dc.jpeg new file mode 100644 index 00000000..289b1a56 Binary files /dev/null and b/public/donasi/image/c6b8d269-7e15-4711-81e0-35d1d2f757dc.jpeg differ diff --git a/public/donasi/image/c77f246e-d572-4acb-9b41-0b9e5d973e69.jpg b/public/donasi/image/c77f246e-d572-4acb-9b41-0b9e5d973e69.jpg new file mode 100644 index 00000000..b71d094e Binary files /dev/null and b/public/donasi/image/c77f246e-d572-4acb-9b41-0b9e5d973e69.jpg differ diff --git a/public/donasi/image_cerita/0d904f72-972b-4b04-959d-80ae0456f832.jpg b/public/donasi/image_cerita/0d904f72-972b-4b04-959d-80ae0456f832.jpg new file mode 100644 index 00000000..b71d094e Binary files /dev/null and b/public/donasi/image_cerita/0d904f72-972b-4b04-959d-80ae0456f832.jpg differ diff --git a/public/donasi/image_cerita/1f2f7595-15c3-4eb4-9cf7-256ce8871d77.jpeg b/public/donasi/image_cerita/1f2f7595-15c3-4eb4-9cf7-256ce8871d77.jpeg new file mode 100644 index 00000000..d3ea1214 Binary files /dev/null and b/public/donasi/image_cerita/1f2f7595-15c3-4eb4-9cf7-256ce8871d77.jpeg differ diff --git a/public/donasi/image_cerita/3f56e88a-141f-4370-bbe2-dbac623bcb67.jpeg b/public/donasi/image_cerita/3f56e88a-141f-4370-bbe2-dbac623bcb67.jpeg new file mode 100644 index 00000000..6302e96c Binary files /dev/null and b/public/donasi/image_cerita/3f56e88a-141f-4370-bbe2-dbac623bcb67.jpeg differ diff --git a/public/donasi/image_cerita/627f9ce6-466f-413c-a6fc-4416feb260a6.jpeg b/public/donasi/image_cerita/627f9ce6-466f-413c-a6fc-4416feb260a6.jpeg new file mode 100644 index 00000000..5652497a Binary files /dev/null and b/public/donasi/image_cerita/627f9ce6-466f-413c-a6fc-4416feb260a6.jpeg differ diff --git a/public/donasi/image_cerita/e1b466b9-0d77-46f5-ad16-50b81f4e36cb.jpeg b/public/donasi/image_cerita/e1b466b9-0d77-46f5-ad16-50b81f4e36cb.jpeg new file mode 100644 index 00000000..4f712802 Binary files /dev/null and b/public/donasi/image_cerita/e1b466b9-0d77-46f5-ad16-50b81f4e36cb.jpeg differ diff --git a/public/donasi/image_cerita/ffdb4c10-df64-404c-8b0a-cea952324119.jpeg b/public/donasi/image_cerita/ffdb4c10-df64-404c-8b0a-cea952324119.jpeg new file mode 100644 index 00000000..4f712802 Binary files /dev/null and b/public/donasi/image_cerita/ffdb4c10-df64-404c-8b0a-cea952324119.jpeg differ diff --git a/src/app/api/donasi/gambar/[id]/route.ts b/src/app/api/donasi/gambar/[id]/route.ts new file mode 100644 index 00000000..1bf25d16 --- /dev/null +++ b/src/app/api/donasi/gambar/[id]/route.ts @@ -0,0 +1,32 @@ +import prisma from "@/app/lib/prisma"; +import fs from "fs"; +import { NextRequest, NextResponse } from "next/server"; + +export async function GET( + req: NextRequest, + { params }: { params: { id: string } } +) { + const get = await prisma.images.findUnique({ + where: { + id: params.id, + }, + select: { + url: true, + }, + }); + + if (!fs.existsSync(`./public/donasi/image/${get?.url}`)) { + const notFile = fs.readFileSync("./public/aset/global/no_img.png"); + return new NextResponse(notFile, { + headers: { + "Content-Type": "image/png", + }, + }); + } + const file = fs.readFileSync(`./public/donasi/image/${get?.url}`); + return new NextResponse(file, { + headers: { + "Content-Type": "image/png", + }, + }); +} diff --git a/src/app/api/donasi/gambar_cerita/[id]/route.ts b/src/app/api/donasi/gambar_cerita/[id]/route.ts new file mode 100644 index 00000000..26728087 --- /dev/null +++ b/src/app/api/donasi/gambar_cerita/[id]/route.ts @@ -0,0 +1,34 @@ +import prisma from "@/app/lib/prisma"; +import fs from "fs"; +import { NextRequest, NextResponse } from "next/server"; + +export async function GET( + req: NextRequest, + { params }: { params: { id: string } } +) { + + const get = await prisma.images.findUnique({ + where: { + id: params.id, + }, + select: { + url: true, + }, + }); + + + if (!fs.existsSync(`./public/donasi/image_cerita/${get?.url}`)) { + const notFile = fs.readFileSync("./public/aset/global/no_img.png"); + return new NextResponse(notFile, { + headers: { + "Content-Type": "image/png", + }, + }); + } + const file = fs.readFileSync(`./public/donasi/image_cerita/${get?.url}`); + return new NextResponse(file, { + headers: { + "Content-Type": "image/png", + }, + }); +} diff --git a/src/app/api/donasi/image/[url]/route.ts b/src/app/api/donasi/image/[url]/route.ts new file mode 100644 index 00000000..b23bbf31 --- /dev/null +++ b/src/app/api/donasi/image/[url]/route.ts @@ -0,0 +1,23 @@ +import fs from "fs"; +import { NextRequest, NextResponse } from "next/server"; + +export async function GET( + req: NextRequest, + { params }: { params: { url: string } } +) { + if (!fs.existsSync(`./public/donasi/image/${params.url}`)) { + const notFile = fs.readFileSync("./public/aset/global/no_img.png"); + return new NextResponse(notFile, { + headers: { + "Content-Type": "image/png", + }, + }); + } + + const file = fs.readFileSync(`./public/donasi/image/${params.url}`); + return new NextResponse(file, { + headers: { + "Content-Type": "image/png", + }, + }); +} diff --git a/src/app/api/donasi/image_cerita/[url]/route.ts b/src/app/api/donasi/image_cerita/[url]/route.ts new file mode 100644 index 00000000..17635968 --- /dev/null +++ b/src/app/api/donasi/image_cerita/[url]/route.ts @@ -0,0 +1,25 @@ +import { NextRequest, NextResponse } from "next/server"; +import fs from "fs" + +export async function GET( + req: NextRequest, + { params }: { params: { url: string } } +) { + + if (!fs.existsSync(`./public/donasi/image_cerita/${params.url}`)) { + const notFile = fs.readFileSync("./public/aset/global/no_img.png"); + return new NextResponse(notFile, { + headers: { + "Content-Type": "image/png", + }, + }); + } + + const file = fs.readFileSync(`./public/donasi/image_cerita/${params.url}`); + return new NextResponse(file, { + headers: { + "Content-Type": "image/png", + }, + }); + +} diff --git a/src/app/api/donasi/index.md b/src/app/api/donasi/index.md new file mode 100644 index 00000000..21e60f83 --- /dev/null +++ b/src/app/api/donasi/index.md @@ -0,0 +1 @@ +# Test \ No newline at end of file diff --git a/src/app/dev/admin/donasi/detail/review/[id]/page.tsx b/src/app/dev/admin/donasi/detail/review/[id]/page.tsx new file mode 100644 index 00000000..8dbbc3ce --- /dev/null +++ b/src/app/dev/admin/donasi/detail/review/[id]/page.tsx @@ -0,0 +1,9 @@ +import { AdminDonasi_DetailReview } from "@/app_modules/admin/donasi"; +import { AdminDonasi_getById } from "@/app_modules/admin/donasi/fun/get/get_one_by_id"; + +export default async function Page({params}: {params: {id: string}}) { + // console.log(params.id) + const dataReview = await AdminDonasi_getById(params.id) + // console.log(dataReview) + return +} \ No newline at end of file diff --git a/src/app/dev/admin/donasi/main/page.tsx b/src/app/dev/admin/donasi/main/page.tsx index 82f3d694..63f2c0ce 100644 --- a/src/app/dev/admin/donasi/main/page.tsx +++ b/src/app/dev/admin/donasi/main/page.tsx @@ -1,10 +1,20 @@ import { AdminDonasi_Main } from "@/app_modules/admin/donasi"; - +import AdminDonasi_funCountByStatus from "@/app_modules/admin/donasi/fun/count/fun_count_donasi_by_status"; export default async function Page() { + const countPublish = await AdminDonasi_funCountByStatus("1"); + const countReview = await AdminDonasi_funCountByStatus("2"); + const countDraft = await AdminDonasi_funCountByStatus("3"); + const countReject = await AdminDonasi_funCountByStatus("4"); + return ( <> - + ); } diff --git a/src/app/dev/admin/donasi/table/publish/page.tsx b/src/app/dev/admin/donasi/table/publish/page.tsx index 749fe2c1..c1d70e82 100644 --- a/src/app/dev/admin/donasi/table/publish/page.tsx +++ b/src/app/dev/admin/donasi/table/publish/page.tsx @@ -1,7 +1,10 @@ import { AdminDonasi_TablePublish } from "@/app_modules/admin/donasi"; +import { AdminDonasi_getByStatus } from "@/app_modules/admin/donasi/fun/get/get_donasi_by_status"; export default async function Page() { + const listPublish = await AdminDonasi_getByStatus("1") + // console.log(listPublish) return<> - + } \ No newline at end of file diff --git a/src/app/dev/admin/donasi/table/reject/page.tsx b/src/app/dev/admin/donasi/table/reject/page.tsx index f3eb1c83..7a62da99 100644 --- a/src/app/dev/admin/donasi/table/reject/page.tsx +++ b/src/app/dev/admin/donasi/table/reject/page.tsx @@ -1,7 +1,10 @@ import { AdminDonasi_TableReject } from "@/app_modules/admin/donasi"; +import { AdminDonasi_getByStatus } from "@/app_modules/admin/donasi/fun/get/get_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/donasi/table/review/page.tsx b/src/app/dev/admin/donasi/table/review/page.tsx index d376fb70..8fa21952 100644 --- a/src/app/dev/admin/donasi/table/review/page.tsx +++ b/src/app/dev/admin/donasi/table/review/page.tsx @@ -1,5 +1,9 @@ import { AdminDonasi_TableReview } from "@/app_modules/admin/donasi"; +import { AdminDonasi_getByStatus } from "@/app_modules/admin/donasi/fun/get/get_donasi_by_status"; +import { getToken_UserId } from "@/app_modules/fun/get_user_token"; export default async function Page() { - return ; + const listReview = await AdminDonasi_getByStatus("2"); + // console.log(listReview); + return ; } diff --git a/src/app/dev/donasi/cerita_penggalang/[id]/layout.tsx b/src/app/dev/donasi/cerita_penggalang/[id]/layout.tsx new file mode 100644 index 00000000..ef779963 --- /dev/null +++ b/src/app/dev/donasi/cerita_penggalang/[id]/layout.tsx @@ -0,0 +1,21 @@ +import { LayoutCeritaPenggalangDonasi } from "@/app_modules/donasi"; +import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id"; +import React from "react"; + +export default async function Layout({ + children, + params, +}: { + children: React.ReactNode; + params: { id: string }; +}) { + const dataDonasi = await Donasi_getOneById(params.id); + const statusDonasiId = dataDonasi?.donasiMaster_StatusDonasiId; + return ( + <> + + {children} + + + ); +} diff --git a/src/app/dev/donasi/cerita_penggalang/[id]/page.tsx b/src/app/dev/donasi/cerita_penggalang/[id]/page.tsx new file mode 100644 index 00000000..b9518bed --- /dev/null +++ b/src/app/dev/donasi/cerita_penggalang/[id]/page.tsx @@ -0,0 +1,12 @@ +import { CeritaPenggalangDonasi } from "@/app_modules/donasi"; +import Donasi_getCeritaByDonasiId from "@/app_modules/donasi/fun/get/get_cerita_penggalang"; + +export default async function Page({ params }: { params: { id: string } }) { + const dataCerita = await Donasi_getCeritaByDonasiId(params.id); + // console.log(dataCerita) + return ( + <> + + + ); +} diff --git a/src/app/dev/donasi/cerita_penggalang/layout.tsx b/src/app/dev/donasi/cerita_penggalang/layout.tsx deleted file mode 100644 index 5e4d7ddb..00000000 --- a/src/app/dev/donasi/cerita_penggalang/layout.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { LayoutCeritaPenggalangDonasi } from "@/app_modules/donasi"; -import React from "react"; - -export default async function Layout({children}: {children: React.ReactNode}) { - return<> - {children} - -} \ No newline at end of file diff --git a/src/app/dev/donasi/cerita_penggalang/page.tsx b/src/app/dev/donasi/cerita_penggalang/page.tsx deleted file mode 100644 index 97f4c94f..00000000 --- a/src/app/dev/donasi/cerita_penggalang/page.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { CeritaPenggalangDonasi } from "@/app_modules/donasi"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/donasi/create/cerita_penggalang/[id]/page.tsx b/src/app/dev/donasi/create/cerita_penggalang/[id]/page.tsx index 41eb8fff..17038f30 100644 --- a/src/app/dev/donasi/create/cerita_penggalang/[id]/page.tsx +++ b/src/app/dev/donasi/create/cerita_penggalang/[id]/page.tsx @@ -1,13 +1,12 @@ import { CreateCeritaPenggalangDonasi } from "@/app_modules/donasi"; import { Donasi_getTemporaryCreate } from "@/app_modules/donasi/fun/get/get_temporary_create"; -import { funGetUserToken } from "@/app_modules/fun/fun_get_user_token"; +import { getToken_UserId } from "@/app_modules/fun/get_user_token"; export default async function Page({ params }: { params: { id: string } }) { const getTemporaryCreate = await Donasi_getTemporaryCreate(params.id); - const getToken = await funGetUserToken() - const userId = getToken.id + const userId = await getToken_UserId() return ( <> diff --git a/src/app/dev/donasi/create/page.tsx b/src/app/dev/donasi/create/page.tsx index 54c028cb..19d14d03 100644 --- a/src/app/dev/donasi/create/page.tsx +++ b/src/app/dev/donasi/create/page.tsx @@ -3,13 +3,11 @@ import { Donasi_getMasterDurasi, Donasi_getMasterKategori, } from "@/app_modules/donasi/fun"; -import { funGetUserToken } from "@/app_modules/fun/fun_get_user_token"; +import { getToken_UserId } from "@/app_modules/fun/get_user_token"; export default async function Page() { const masterKategori = await Donasi_getMasterKategori(); const masterDurasi = await Donasi_getMasterDurasi(); - const getToken = await funGetUserToken() - const userId = getToken.id return ( diff --git a/src/app/dev/donasi/detail/detail_draft/layout.tsx b/src/app/dev/donasi/detail/detail_draft/[id]/layout.tsx similarity index 63% rename from src/app/dev/donasi/detail/detail_draft/layout.tsx rename to src/app/dev/donasi/detail/detail_draft/[id]/layout.tsx index 23a74e6d..2877c7ed 100644 --- a/src/app/dev/donasi/detail/detail_draft/layout.tsx +++ b/src/app/dev/donasi/detail/detail_draft/[id]/layout.tsx @@ -3,12 +3,14 @@ import React from "react"; export default async function Layout({ children, + params }: { children: React.ReactNode; + params: {id: string} }) { return ( <> - {children} + {children} ); } diff --git a/src/app/dev/donasi/detail/detail_draft/[id]/page.tsx b/src/app/dev/donasi/detail/detail_draft/[id]/page.tsx new file mode 100644 index 00000000..4439b3ae --- /dev/null +++ b/src/app/dev/donasi/detail/detail_draft/[id]/page.tsx @@ -0,0 +1,12 @@ +import { DetailDraftDonasi } from "@/app_modules/donasi"; +import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id"; + +export default async function Page({ params }: { params: { id: string } }) { + const dataDonasi = await Donasi_getOneById(params.id); + + return ( + <> + + + ); +} diff --git a/src/app/dev/donasi/detail/detail_draft/page.tsx b/src/app/dev/donasi/detail/detail_draft/page.tsx deleted file mode 100644 index bfe452f3..00000000 --- a/src/app/dev/donasi/detail/detail_draft/page.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { DetailDraftDonasi } from "@/app_modules/donasi"; - -export default async function Paeg() { - return<> - - -} \ No newline at end of file diff --git a/src/app/dev/donasi/detail/detail_review/layout.tsx b/src/app/dev/donasi/detail/detail_review/[id]/layout.tsx similarity index 100% rename from src/app/dev/donasi/detail/detail_review/layout.tsx rename to src/app/dev/donasi/detail/detail_review/[id]/layout.tsx diff --git a/src/app/dev/donasi/detail/detail_review/[id]/page.tsx b/src/app/dev/donasi/detail/detail_review/[id]/page.tsx new file mode 100644 index 00000000..c7a4279b --- /dev/null +++ b/src/app/dev/donasi/detail/detail_review/[id]/page.tsx @@ -0,0 +1,12 @@ +import { DetailReviewDonasi } from "@/app_modules/donasi"; +import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id"; + +export default async function Page({ params }: { params: { id: string } }) { + const dataDonasi = await Donasi_getOneById(params.id); + + return ( + <> + + + ); +} diff --git a/src/app/dev/donasi/detail/detail_review/page.tsx b/src/app/dev/donasi/detail/detail_review/page.tsx deleted file mode 100644 index cfacbe8f..00000000 --- a/src/app/dev/donasi/detail/detail_review/page.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { DetailReviewDonasi } from "@/app_modules/donasi"; - -export default async function Page() { - return<> - - -} \ No newline at end of file diff --git a/src/app/dev/donasi/edit/edit_cerita/layout.tsx b/src/app/dev/donasi/edit/edit_cerita/[id]/layout.tsx similarity index 100% rename from src/app/dev/donasi/edit/edit_cerita/layout.tsx rename to src/app/dev/donasi/edit/edit_cerita/[id]/layout.tsx diff --git a/src/app/dev/donasi/edit/edit_cerita/[id]/page.tsx b/src/app/dev/donasi/edit/edit_cerita/[id]/page.tsx new file mode 100644 index 00000000..1467178d --- /dev/null +++ b/src/app/dev/donasi/edit/edit_cerita/[id]/page.tsx @@ -0,0 +1,12 @@ +import { EditCeritaPenggalangDonasi } from "@/app_modules/donasi"; +import Donasi_getCeritaByDonasiId from "@/app_modules/donasi/fun/get/get_cerita_penggalang"; + +export default async function Page({ params }: { params: { id: string } }) { + const dataCerita = await Donasi_getCeritaByDonasiId(params.id) + // console.log(dataCerita); + return ( + <> + + + ); +} diff --git a/src/app/dev/donasi/edit/edit_cerita/page.tsx b/src/app/dev/donasi/edit/edit_cerita/page.tsx deleted file mode 100644 index 4d7096ce..00000000 --- a/src/app/dev/donasi/edit/edit_cerita/page.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { EditCeritaPenggalangDonasi } from "@/app_modules/donasi"; - -export default async function Page() { - return<> - - -} \ No newline at end of file diff --git a/src/app/dev/donasi/edit/edit_donasi/layout.tsx b/src/app/dev/donasi/edit/edit_donasi/[id]/layout.tsx similarity index 100% rename from src/app/dev/donasi/edit/edit_donasi/layout.tsx rename to src/app/dev/donasi/edit/edit_donasi/[id]/layout.tsx diff --git a/src/app/dev/donasi/edit/edit_donasi/[id]/page.tsx b/src/app/dev/donasi/edit/edit_donasi/[id]/page.tsx new file mode 100644 index 00000000..cb62d88a --- /dev/null +++ b/src/app/dev/donasi/edit/edit_donasi/[id]/page.tsx @@ -0,0 +1,15 @@ +import { EditDonasi } from "@/app_modules/donasi"; +import { Donasi_getMasterDurasi, Donasi_getMasterKategori } from "@/app_modules/donasi/fun"; +import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id"; + +export default async function Page({params}: {params: {id: string}}) { + const dataDonasi = await Donasi_getOneById(params.id) + const masterKategori = await Donasi_getMasterKategori() + const masterDurasi = await Donasi_getMasterDurasi() + + return ( + <> + + + ); +} diff --git a/src/app/dev/donasi/edit/edit_donasi/page.tsx b/src/app/dev/donasi/edit/edit_donasi/page.tsx deleted file mode 100644 index b9b90e52..00000000 --- a/src/app/dev/donasi/edit/edit_donasi/page.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { EditDonasi } from "@/app_modules/donasi"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/donasi/main/galang_dana/page.tsx b/src/app/dev/donasi/main/galang_dana/page.tsx index b8a15beb..bd6092ba 100644 --- a/src/app/dev/donasi/main/galang_dana/page.tsx +++ b/src/app/dev/donasi/main/galang_dana/page.tsx @@ -1,7 +1,17 @@ import { PostingDonasi } from "@/app_modules/donasi"; +import Donasi_getByStatus from "@/app_modules/donasi/fun/get/get_donasi_by_status"; +import { getToken_UserId } from "@/app_modules/fun/get_user_token"; export default async function Page() { - return<> - + const authorId = await getToken_UserId(); + const listReview = await Donasi_getByStatus(authorId, "2"); + const listDraft = await Donasi_getByStatus(authorId, "3"); + +// console.log(listReview) + + return ( + <> + -} \ No newline at end of file + ); +} diff --git a/src/app/emotion.tsx b/src/app/emotion.tsx index 940464e2..cb3adb61 100644 --- a/src/app/emotion.tsx +++ b/src/app/emotion.tsx @@ -3,6 +3,7 @@ import AppNotif from "@/app_modules/notif"; // import './globals.css' import { CacheProvider } from "@emotion/react"; import { MantineProvider, useEmotionCache } from "@mantine/core"; +import { Notifications } from "@mantine/notifications"; import { useServerInsertedHTML } from "next/navigation"; import { ToastContainer, toast } from "react-toastify"; import "react-toastify/dist/ReactToastify.css"; @@ -29,9 +30,10 @@ export default function RootStyleRegistry({ + {children} - - + {/* + */} diff --git a/src/app/lib/router_hipmi/router_admin.ts b/src/app/lib/router_hipmi/router_admin.ts index 61d6bac1..53f1b257 100644 --- a/src/app/lib/router_hipmi/router_admin.ts +++ b/src/app/lib/router_hipmi/router_admin.ts @@ -24,6 +24,9 @@ export const RouterAdminDonasi = { // detail detail_publish: "/dev/admin/donasi/detail/publish", + detail_review: "/dev/admin/donasi/detail/review/", + + }; export const RouterAdminAward = { diff --git a/src/app/lib/router_hipmi/router_donasi.ts b/src/app/lib/router_hipmi/router_donasi.ts index 836864f8..77a4f91a 100644 --- a/src/app/lib/router_hipmi/router_donasi.ts +++ b/src/app/lib/router_hipmi/router_donasi.ts @@ -1,4 +1,10 @@ export const RouterDonasi = { + //api + api_gambar: "/api/donasi/gambar/", + api_gambar_cerita: "/api/donasi/gambar_cerita/", + api_image: "/api/donasi/image/", + api_image_cerita: "/api/donasi/image_cerita/", + //main main_beranda: "/dev/donasi/main/beranda", main_galang_dana: "/dev/donasi/main/galang_dana", @@ -10,9 +16,8 @@ export const RouterDonasi = { // edit update_kabar: "/dev/donasi/edit/update_kabar", - edit_donasi: "/dev/donasi/edit/edit_donasi", - edit_cerita_penggalang: "/dev/donasi/edit/edit_cerita", - + edit_donasi: "/dev/donasi/edit/edit_donasi/", + edit_cerita_penggalang: "/dev/donasi/edit/edit_cerita/", //pop up page_pop_up_create: "/dev/donasi/page_pop_up/create", @@ -21,8 +26,8 @@ export const RouterDonasi = { detail_main: "/dev/donasi/detail/detail_main", detail_kabar: "/dev/donasi/detail/detail_kabar", detail_publish: "/dev/donasi/detail/detail_publish", - detail_review: "/dev/donasi/detail/detail_review", - detail_draft: "/dev/donasi/detail/detail_draft", + detail_review: "/dev/donasi/detail/detail_review/", + detail_draft: "/dev/donasi/detail/detail_draft/", detail_reject: "/dev/donasi/detail/detail_reject", detail_donasi_saya: "/dev/donasi/detail/detail_donasi_saya", @@ -32,6 +37,6 @@ export const RouterDonasi = { kabar: "/dev/donasi/kabar", pencairan_dana: "/dev/donasi/pencairan_dana", penggalang_dana: "/dev/donasi/penggalang_dana", - cerita_penggalang: "/dev/donasi/cerita_penggalang", - list_kabar: "/dev/donasi/list_kabar" + cerita_penggalang: "/dev/donasi/cerita_penggalang/", + list_kabar: "/dev/donasi/list_kabar", }; diff --git a/src/app/zCoba/page.tsx b/src/app/zCoba/page.tsx new file mode 100644 index 00000000..5778dd02 --- /dev/null +++ b/src/app/zCoba/page.tsx @@ -0,0 +1,19 @@ +"use client"; + +import { NotifPeringatan } from "@/app_modules/donasi/component/notifikasi/notif_peringatan"; +import { Box, Button, Group } from "@mantine/core"; +import { notifications } from "@mantine/notifications"; + +export default function Coba() { + return ( + <> + + + + + + + ); +} diff --git a/src/app_modules/admin/donasi/detail_table/detail_review.tsx b/src/app_modules/admin/donasi/detail_table/detail_review.tsx index 1f85515c..d8ce9e63 100644 --- a/src/app_modules/admin/donasi/detail_table/detail_review.tsx +++ b/src/app_modules/admin/donasi/detail_table/detail_review.tsx @@ -1,17 +1,205 @@ "use client"; -import { Button, Stack, Text } from "@mantine/core"; +import { + AspectRatio, + Button, + Divider, + Group, + Image, + Modal, + Paper, + Progress, + SimpleGrid, + Stack, + Text, + TextInput, + Textarea, + Title, +} from "@mantine/core"; +import AdminDonasi_TombolKembali from "../component/tombol_kembali"; +import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi"; +import TampilanRupiahDonasi from "@/app_modules/donasi/component/tampilan_rupiah"; +import { + MODEL_CERITA_DONASI, + MODEL_DONASI, +} from "@/app_modules/donasi/model/interface"; +import { useState } from "react"; +import { useRouter } from "next/navigation"; +import { useDisclosure } from "@mantine/hooks"; +import { AdminDonasi_funUpdateStatusPublish } from "../fun/update/fun_status_publish"; +import { NotifBerhasil } from "@/app_modules/donasi/component/notifikasi/notif_berhasil"; +import { NotifPeringatan } from "@/app_modules/donasi/component/notifikasi/notif_peringatan"; +import toast from "react-simple-toasts"; +import { AdminDonasi_funUpdateStatusReject } from "../fun/update/fun_status_reject"; +import _ from "lodash"; +import { NotifGagal } from "@/app_modules/donasi/component/notifikasi/notif_gagal"; export default function AdminDonasi_DetailReview({ - closeModal, + dataReview, }: { - closeModal: any; + dataReview: MODEL_DONASI; }) { + const [donasi, setDonasi] = useState(dataReview); return ( <> - Cooming Soon - + + + + + + + + ); +} + +function ButtonOnHeader({ donasi }: { donasi: MODEL_DONASI }) { + const router = useRouter(); + const [opened, { open, close }] = useDisclosure(false); + const [catatan, setCatatan] = useState(""); + + async function onPulish() { + await AdminDonasi_funUpdateStatusPublish(donasi.id, "1").then((res) => { + if (res.status === 200) { + NotifBerhasil("Berhasil Mengubah Status Donasi"); + router.back(); + } else { + NotifPeringatan("Gagal Mengubah Status Donasi"); + } + }); + } + + async function onReject() { + if (catatan === "") return NotifPeringatan("Lengkapi Alasan Penolakan"); + + await AdminDonasi_funUpdateStatusReject(donasi.id, "4", catatan).then( + (res) => { + if (res.status === 200) { + NotifBerhasil(res.message); + router.back() + } else { + NotifGagal(res.message); + } + } + ); + } + + return ( + <> + + + + + + + + + + + +