From a9d98895bb92fb35a43600ebed7a82c8d87caa04 Mon Sep 17 00:00:00 2001 From: nico Date: Tue, 9 Sep 2025 17:14:28 +0800 Subject: [PATCH] Fix Admin Menu SDGs Desa & APBdes Desa, Fix UI IMage Layanan Landing Page & Layanan Desa --- .gitignore | 2 + .../[id]/edit/page.tsx | 4 +- .../pelayanan_surat_keterangan/[id]/page.tsx | 4 +- .../create/page.tsx | 8 +- .../landing-page/apbdes/[id]/edit/page.tsx | 2 +- .../landing-page/apbdes/[id]/page.tsx | 4 +- .../landing-page/apbdes/create/page.tsx | 2 +- .../(dashboard)/landing-page/apbdes/page.tsx | 4 +- .../list-desa-anti-korupsi/[id]/edit/page.tsx | 5 + .../{sdgs-desa => sdgs}/[id]/edit/page.tsx | 2 +- .../{sdgs-desa => sdgs}/[id]/page.tsx | 4 +- .../{sdgs-desa => sdgs}/create/page.tsx | 2 +- .../landing-page/{sdgs-desa => sdgs}/page.tsx | 6 +- src/app/admin/_com/list_PageAdmin.tsx | 4 +- .../pelayanan_surat_keterangan/find-many.ts | 4 + src/app/api/[[...slugs]]/route.ts | 229 +++++++++--------- .../desa-anti-korupsi/detail/page.tsx | 4 +- .../_com/main-page/layanan/index.tsx | 2 +- src/con/colors.ts | 2 +- 19 files changed, 153 insertions(+), 141 deletions(-) rename src/app/admin/(dashboard)/landing-page/{sdgs-desa => sdgs}/[id]/edit/page.tsx (99%) rename src/app/admin/(dashboard)/landing-page/{sdgs-desa => sdgs}/[id]/page.tsx (97%) rename src/app/admin/(dashboard)/landing-page/{sdgs-desa => sdgs}/create/page.tsx (99%) rename src/app/admin/(dashboard)/landing-page/{sdgs-desa => sdgs}/page.tsx (97%) diff --git a/.gitignore b/.gitignore index 680bfa07..fb70e68f 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,5 @@ next-env.d.ts .env.* +*.tar.gz + diff --git a/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/edit/page.tsx b/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/edit/page.tsx index 0a95e7d1..070acbc2 100644 --- a/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/edit/page.tsx @@ -140,7 +140,7 @@ function EditSuratKeterangan() { {/* Upload Gambar 1 */} - Gambar 1 + Gambar Konten Pelayanan { @@ -196,7 +196,7 @@ function EditSuratKeterangan() { {/* Upload Gambar 2 */} - Gambar 2 + Gambar Alur Pelayanan Surat { diff --git a/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/page.tsx b/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/page.tsx index 0caa6304..bb25a987 100644 --- a/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/page.tsx +++ b/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/page.tsx @@ -100,7 +100,7 @@ function DetailSuratKeterangan() { - Gambar + Gambar Konten Pelayanan {data?.image?.link ? ( - Gambar 2 + Gambar Alur Pelayanan Surat {data?.image2?.link ? ( - {/* Gambar Utama */} + {/* Gambar Konten Pelayanan */} - Gambar Utama + Gambar Konten Pelayanan { @@ -175,10 +175,10 @@ function CreateSuratKeterangan() { )} - {/* Gambar Tambahan */} + {/* Gambar Alur Pelayanan Surat */} - Gambar Tambahan (Opsional) + Gambar Alur Pelayanan Surat { diff --git a/src/app/admin/(dashboard)/landing-page/apbdes/[id]/edit/page.tsx b/src/app/admin/(dashboard)/landing-page/apbdes/[id]/edit/page.tsx index 4d4c74f9..1dc2b7de 100644 --- a/src/app/admin/(dashboard)/landing-page/apbdes/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/apbdes/[id]/edit/page.tsx @@ -107,7 +107,7 @@ function EditAPBDes() { await apbdesState.edit.update(); toast.success('APBDes berhasil diperbarui!'); - router.push('/admin/landing-page/APBDes'); + router.push('/admin/landing-page/apbdes'); } catch (error) { console.error('Error updating APBDes:', error); toast.error('Terjadi kesalahan saat memperbarui APBDes'); diff --git a/src/app/admin/(dashboard)/landing-page/apbdes/[id]/page.tsx b/src/app/admin/(dashboard)/landing-page/apbdes/[id]/page.tsx index c04d6e61..f9f0ecd9 100644 --- a/src/app/admin/(dashboard)/landing-page/apbdes/[id]/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/apbdes/[id]/page.tsx @@ -28,7 +28,7 @@ function DetailAPBDes() { apbdesState.delete.byId(selectedId) setModalHapus(false) setSelectedId(null) - router.push("/admin/landing-page/APBDes") + router.push("/admin/landing-page/apbdes") } } @@ -135,7 +135,7 @@ function DetailAPBDes() { @@ -110,7 +110,7 @@ function ListAPBDes({ search }: { search: string }) { @@ -103,7 +103,7 @@ function ListSdgsDesa({ search }: { search: string }) { leftSection={} color={colors['blue-button']} variant="light" - onClick={() => router.push('/admin/landing-page/SDGs-Desa/create')} + onClick={() => router.push('/admin/landing-page/sdgs/create')} > Tambah Baru @@ -137,7 +137,7 @@ function ListSdgsDesa({ search }: { search: string }) { variant="light" color="blue" size="sm" - onClick={() => router.push(`/admin/landing-page/SDGs-Desa/${item.id}`)} + onClick={() => router.push(`/admin/landing-page/sdgs/${item.id}`)} > diff --git a/src/app/admin/_com/list_PageAdmin.tsx b/src/app/admin/_com/list_PageAdmin.tsx index 24d01be7..08a286c6 100644 --- a/src/app/admin/_com/list_PageAdmin.tsx +++ b/src/app/admin/_com/list_PageAdmin.tsx @@ -22,12 +22,12 @@ export const navBar = [ { id: "Landing_Page_4", name: "SDGs Desa", - path: "/admin/landing-page/SDGs-Desa" + path: "/admin/landing-page/sdgs" }, { id: "Landing_Page_5", name: "APBDes", - path: "/admin/landing-page/APBDes" + path: "/admin/landing-page/apbdes" }, { id: "Landing_Page_6", diff --git a/src/app/api/[[...slugs]]/_lib/desa/layanan/pelayanan_surat_keterangan/find-many.ts b/src/app/api/[[...slugs]]/_lib/desa/layanan/pelayanan_surat_keterangan/find-many.ts index 3a6d5e4f..9c75987e 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/layanan/pelayanan_surat_keterangan/find-many.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/layanan/pelayanan_surat_keterangan/find-many.ts @@ -26,6 +26,10 @@ export default async function pelayananSuratKeteranganFindMany(context: Context) skip, take: limit, orderBy: { createdAt: 'desc' }, + include: { + image: true, + image2: true, + }, }), prisma.pelayananSuratKeterangan.count({ where }), ]); diff --git a/src/app/api/[[...slugs]]/route.ts b/src/app/api/[[...slugs]]/route.ts index a9b391b5..0ccdc5bd 100644 --- a/src/app/api/[[...slugs]]/route.ts +++ b/src/app/api/[[...slugs]]/route.ts @@ -26,8 +26,6 @@ import Pendidikan from "./_lib/pendidikan"; import User from "./_lib/user"; import Role from "./_lib/user/role"; - - const ROOT = process.cwd(); if (!process.env.WIBU_UPLOAD_DIR) @@ -72,11 +70,14 @@ const Utils = new Elysia({ return { version }; }); +if (!process.env.WIBU_UPLOAD_DIR) + throw new Error("WIBU_UPLOAD_DIR is not defined"); + const ApiServer = new Elysia() .use(swagger({ path: "/api/docs" })) .use( staticPlugin({ - assets: process.env.WIBU_UPLOAD_DIR || "./uploads", + assets: process.env.WIBU_UPLOAD_DIR, prefix: "/uploads", }) ) @@ -94,7 +95,7 @@ const ApiServer = new Elysia() .use(Pendidikan) .use(User) .use(Role) - + .onError(({ code }) => { if (code === "NOT_FOUND") { return { @@ -105,116 +106,116 @@ const ApiServer = new Elysia() }) .group("/api", (app) => app - .get("/layanan", layanan) - .get("/potensi", getPotensi) - .get( - "/img/:name", - ({ params, query }) => { - return img({ - name: params.name, - UPLOAD_DIR_IMAGE, - ROOT, - size: query.size, - }); - }, - { - params: t.Object({ - name: t.String(), - }), - query: t.Optional( - t.Object({ - size: t.Optional(t.Number()), - }) - ), - } - ) - .delete( - "/img/:name", - ({ params }) => { - return imgDel({ - name: params.name, - UPLOAD_DIR_IMAGE, - }); - }, - { - params: t.Object({ - name: t.String(), - }), - } - ) - .get( - "/imgs", - ({ query }) => { - return imgs({ - search: query.search, - page: query.page, - count: query.count, - UPLOAD_DIR_IMAGE, - }); - }, - { - query: t.Optional( - t.Object({ - page: t.Number({ default: 1 }), - count: t.Number({ default: 10 }), - search: t.String({ default: "" }), - }) - ), - } - ) - .post( - "/upl-img", - ({ body }) => { - console.log(body.title); - return uplImg({ files: body.files, UPLOAD_DIR_IMAGE }); - }, - { - body: t.Object({ - title: t.String(), - files: t.Files({ multiple: true }), - }), - } - ) - .post( - "/upl-img-single", - ({ body }) => { - return uplImgSingle({ - fileName: body.name, - file: body.file, - UPLOAD_DIR_IMAGE, - }); - }, - { - body: t.Object({ - name: t.String(), - file: t.File(), - }), - } - ) - .post( - "/upl-csv-single", - ({ body }) => { - return uplCsvSingle({ fileName: body.name, file: body.file }); - }, - { - body: t.Object({ - name: t.String(), - file: t.File(), - }), - } - ) - .post( - "/upl-csv", - ({ body }) => { - return uplCsv({ files: body.files }); - }, - { - body: t.Object({ - files: t.Files(), - }), - } - ) -); + .get("/layanan", layanan) + .get("/potensi", getPotensi) + .get( + "/img/:name", + ({ params, query }) => { + return img({ + name: params.name, + UPLOAD_DIR_IMAGE, + ROOT, + size: query.size, + }); + }, + { + params: t.Object({ + name: t.String(), + }), + query: t.Optional( + t.Object({ + size: t.Optional(t.Number()), + }) + ), + } + ) + .delete( + "/img/:name", + ({ params }) => { + return imgDel({ + name: params.name, + UPLOAD_DIR_IMAGE, + }); + }, + { + params: t.Object({ + name: t.String(), + }), + } + ) + .get( + "/imgs", + ({ query }) => { + return imgs({ + search: query.search, + page: query.page, + count: query.count, + UPLOAD_DIR_IMAGE, + }); + }, + { + query: t.Optional( + t.Object({ + page: t.Number({ default: 1 }), + count: t.Number({ default: 10 }), + search: t.String({ default: "" }), + }) + ), + } + ) + .post( + "/upl-img", + ({ body }) => { + console.log(body.title); + return uplImg({ files: body.files, UPLOAD_DIR_IMAGE }); + }, + { + body: t.Object({ + title: t.String(), + files: t.Files({ multiple: true }), + }), + } + ) + .post( + "/upl-img-single", + ({ body }) => { + return uplImgSingle({ + fileName: body.name, + file: body.file, + UPLOAD_DIR_IMAGE, + }); + }, + { + body: t.Object({ + name: t.String(), + file: t.File(), + }), + } + ) + .post( + "/upl-csv-single", + ({ body }) => { + return uplCsvSingle({ fileName: body.name, file: body.file }); + }, + { + body: t.Object({ + name: t.String(), + file: t.File(), + }), + } + ) + .post( + "/upl-csv", + ({ body }) => { + return uplCsv({ files: body.files }); + }, + { + body: t.Object({ + files: t.Files(), + }), + } + ) + ); export const GET = ApiServer.handle; export const POST = ApiServer.handle; diff --git a/src/app/darmasaba/(tambahan)/desa-anti-korupsi/detail/page.tsx b/src/app/darmasaba/(tambahan)/desa-anti-korupsi/detail/page.tsx index ca475190..b1e1dec6 100644 --- a/src/app/darmasaba/(tambahan)/desa-anti-korupsi/detail/page.tsx +++ b/src/app/darmasaba/(tambahan)/desa-anti-korupsi/detail/page.tsx @@ -91,7 +91,7 @@ function Lokal() { ) : ( - + {filteredData.map(item => { const handleDownload = (e: React.MouseEvent) => { e.stopPropagation(); @@ -116,7 +116,7 @@ function Lokal() { }} > - + {item.name} {item?.file && ( diff --git a/src/app/darmasaba/_com/main-page/layanan/index.tsx b/src/app/darmasaba/_com/main-page/layanan/index.tsx index f41bee2c..b682c2d8 100644 --- a/src/app/darmasaba/_com/main-page/layanan/index.tsx +++ b/src/app/darmasaba/_com/main-page/layanan/index.tsx @@ -83,7 +83,7 @@ function Slider() { const slides = data.map((item) => ( -