diff --git a/.env b/.env index 24829e2..512b20e 100644 --- a/.env +++ b/.env @@ -4,4 +4,5 @@ # Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. # See the documentation for all the connection string options: https://pris.ly/d/connection-strings -DATABASE_URL="postgresql://bip:Production_123d@localhost:5433/sistem_desa_mandiri?schema=public" \ No newline at end of file +DATABASE_URL="postgresql://bip:Production_123d@localhost:5433/sistem_desa_mandiri?schema=public" +URL="http://localhost:3000" \ No newline at end of file diff --git a/src/app/(application)/(fitur-division)/calender/create/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/calender/create/page.tsx similarity index 100% rename from src/app/(application)/(fitur-division)/calender/create/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/calender/create/page.tsx diff --git a/src/app/(application)/(fitur-division)/calender/history/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/calender/history/page.tsx similarity index 100% rename from src/app/(application)/(fitur-division)/calender/history/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/calender/history/page.tsx diff --git a/src/app/(application)/(fitur-division)/calender/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/calender/page.tsx similarity index 100% rename from src/app/(application)/(fitur-division)/calender/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/calender/page.tsx diff --git a/src/app/(application)/(fitur-division)/calender/update/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/calender/update/page.tsx similarity index 100% rename from src/app/(application)/(fitur-division)/calender/update/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/calender/update/page.tsx diff --git a/src/app/(application)/(fitur-division)/discussion/[id]/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/page.tsx similarity index 100% rename from src/app/(application)/(fitur-division)/discussion/[id]/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/page.tsx diff --git a/src/app/(application)/(fitur-division)/discussion/create/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/discussion/create/page.tsx similarity index 100% rename from src/app/(application)/(fitur-division)/discussion/create/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/discussion/create/page.tsx diff --git a/src/app/(application)/(fitur-division)/discussion/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/discussion/page.tsx similarity index 100% rename from src/app/(application)/(fitur-division)/discussion/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/discussion/page.tsx diff --git a/src/app/(application)/(fitur-division)/discussion/edit/[id]/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/discussion/update/[detail]/page.tsx similarity index 100% rename from src/app/(application)/(fitur-division)/discussion/edit/[id]/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/discussion/update/[detail]/page.tsx diff --git a/src/app/(application)/(fitur-division)/document/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/document/page.tsx similarity index 100% rename from src/app/(application)/(fitur-division)/document/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/document/page.tsx diff --git a/src/app/(application)/(fitur-division)/task/[id]/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/task/[detail]/page.tsx similarity index 87% rename from src/app/(application)/(fitur-division)/task/[id]/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/task/[detail]/page.tsx index 775b997..915f30b 100644 --- a/src/app/(application)/(fitur-division)/task/[id]/page.tsx +++ b/src/app/(application)/division/[id]/(fitur-division)/task/[detail]/page.tsx @@ -6,4 +6,4 @@ function Page() { ) } -export default Page +export default Page \ No newline at end of file diff --git a/src/app/(application)/(fitur-division)/task/create/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/task/create/page.tsx similarity index 100% rename from src/app/(application)/(fitur-division)/task/create/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/task/create/page.tsx diff --git a/src/app/(application)/(fitur-division)/task/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/task/page.tsx similarity index 100% rename from src/app/(application)/(fitur-division)/task/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/task/page.tsx diff --git a/src/app/(application)/(fitur-division)/task/update/[id]/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/task/update/[detail]/page.tsx similarity index 100% rename from src/app/(application)/(fitur-division)/task/update/[id]/page.tsx rename to src/app/(application)/division/[id]/(fitur-division)/task/update/[detail]/page.tsx diff --git a/src/app/(application)/division/[id]/page.tsx b/src/app/(application)/division/[id]/page.tsx index 7493c94..9ba7527 100644 --- a/src/app/(application)/division/[id]/page.tsx +++ b/src/app/(application)/division/[id]/page.tsx @@ -1,9 +1,9 @@ import { ViewDetailDivision } from '@/module/division_new'; import React from 'react'; -function Page() { +function Page({ params }: { params: { id: string } }) { return ( - + ); } diff --git a/src/module/_global/bin/api_address.ts b/src/module/_global/bin/api_address.ts index b1f6efa..5d0584a 100644 --- a/src/module/_global/bin/api_address.ts +++ b/src/module/_global/bin/api_address.ts @@ -38,5 +38,7 @@ export const API_ADDRESS = { // Division "apiGetAllDivision": "/api/division/get?path=get-all-division", + "apiGetOneDivision": "/api/division/get?path=get-one-division", + "apiGetOneDetailDivision": "/api/division/get?path=get-one-detail-division", "apiCreateDivision": "/api/division/post?path=create-division", } \ No newline at end of file diff --git a/src/module/division_new/api/api_index.ts b/src/module/division_new/api/api_index.ts index d934ac5..6e5225d 100644 --- a/src/module/division_new/api/api_index.ts +++ b/src/module/division_new/api/api_index.ts @@ -1,5 +1,6 @@ import getAllDivision from "./get/getAllDivision"; import getOneDivision from "./get/getOneDivision"; +import getOneDetailDivision from "./get/getOneDetailDivision"; import createDivision from "./post/createDivision"; import deleteDivision from "./post/deleteDivision"; import updateDivision from "./post/updateDivision"; @@ -30,4 +31,9 @@ export const API_INDEX_DIVISION = [ method: "GET", bin: getOneDivision, }, + { + path: "get-one-detail-division", + method: "GET", + bin: getOneDetailDivision, + }, ]; diff --git a/src/module/division_new/api/get/getOneDetailDivision.ts b/src/module/division_new/api/get/getOneDetailDivision.ts new file mode 100644 index 0000000..c9e31c0 --- /dev/null +++ b/src/module/division_new/api/get/getOneDetailDivision.ts @@ -0,0 +1,41 @@ +import { prisma } from '@/module/_global'; +import { NextRequest } from "next/server"; + +export default async function getOneDetailDivision(req: NextRequest) { + try { + const searchParams = req.nextUrl.searchParams + const id = searchParams.get('divisionId'); + const division = await prisma.division.findUnique({ + where: { + id: String(id), + }, + select: { + id: true, + name: true, + }, + }); + + const member = await prisma.divisionMember.findMany({ + where: { + idDivision: String(id), + }, + select: { + idUser: true, + isLeader: true + } + }) + + const allData = { + division: division, + member: member + } + return Response.json(allData); + } catch (error) { + console.error(error); + return Response.json( + { message: "Internal Server Error", success: false }, + { status: 500 } + ); + } + +} \ No newline at end of file diff --git a/src/module/division_new/components/detail_division/detail_division.tsx b/src/module/division_new/components/detail_division/detail_division.tsx index e448eb2..ab2585d 100644 --- a/src/module/division_new/components/detail_division/detail_division.tsx +++ b/src/module/division_new/components/detail_division/detail_division.tsx @@ -9,18 +9,19 @@ import NavbarDetailDivision from '../ui/navbar_detail_division'; export default function DetailDivision() { return ( - - - - - - - - - - - - + <> + // + // + // + // + // + // + // + // + // + // + // + // ); } diff --git a/src/module/division_new/components/detail_division/feature_detail_division.tsx b/src/module/division_new/components/detail_division/feature_detail_division.tsx index 19e26f2..2fc5ad8 100644 --- a/src/module/division_new/components/detail_division/feature_detail_division.tsx +++ b/src/module/division_new/components/detail_division/feature_detail_division.tsx @@ -11,7 +11,7 @@ import { IoCalendarOutline } from "react-icons/io5"; import { LuFileSignature } from "react-icons/lu"; import { useRouter } from 'next/navigation'; -export default function FeatureDetailDivision() { +export default function FeatureDetailDivision({ id }: { id: string }) { const router = useRouter() return ( @@ -21,29 +21,29 @@ export default function FeatureDetailDivision() { style={{ alignItems: "center", alignContent: "center" - }} + }} > router.push('/task')}> + }} onClick={() => router.push(id + '/task')}> - - - + + + - + Tugas 23 Tugas - + @@ -55,20 +55,20 @@ export default function FeatureDetailDivision() { }} onClick={() => router.push('/document')}> - - - + + + - + Dokumen 23 Tugas - + @@ -80,20 +80,20 @@ export default function FeatureDetailDivision() { }} onClick={() => router.push('/discussion')}> - - - + + + - + Diskusi 23 Tugas - + @@ -105,20 +105,20 @@ export default function FeatureDetailDivision() { }} onClick={() => router.push('/calender')}> - - - + + + - + Kalender 23 Tugas - + diff --git a/src/module/division_new/components/ui/navbar_detail_division.tsx b/src/module/division_new/components/ui/navbar_detail_division.tsx index 41dcb28..7a13db7 100644 --- a/src/module/division_new/components/ui/navbar_detail_division.tsx +++ b/src/module/division_new/components/ui/navbar_detail_division.tsx @@ -5,11 +5,11 @@ import { useState } from "react"; import { HiMenu } from "react-icons/hi"; import DrawerDetailDivision from "./drawer_detail_division"; -export default function NavbarDetailDivision() { +export default function NavbarDetailDivision({ title }: { title: string }) { const [openDrawer, setOpenDrawer] = useState(false) return ( <> - (setOpenDrawer(true))} bg={WARNA.bgIcon} size="lg" radius="lg" aria-label="Settings"> diff --git a/src/module/division_new/view/view_detail_division.tsx b/src/module/division_new/view/view_detail_division.tsx index fe46056..90ee5cc 100644 --- a/src/module/division_new/view/view_detail_division.tsx +++ b/src/module/division_new/view/view_detail_division.tsx @@ -1,9 +1,33 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import DetailDivision from '../components/detail_division/detail_division'; +import { Box, Stack } from '@mantine/core'; +import CarouselDivision from '../components/detail_division/carousel_division'; +import FeatureDetailDivision from '../components/detail_division/feature_detail_division'; +import ListDiscussionOnDetailDivision from '../components/detail_division/list_discussion'; +import ListDocumentOnDetailDivision from '../components/detail_division/list_document'; +import ListTaskOnDetailDivision from '../components/detail_division/list_task'; +import NavbarDetailDivision from '../components/ui/navbar_detail_division'; +import { API_ADDRESS } from '@/module/_global'; + +export default async function ViewDetailDivision({ id }: { id: string }) { + + const res = await fetch(`${process.env.URL + API_ADDRESS.apiGetOneDetailDivision}&divisionId=${id}`); + const data = await res.json(); -export default function ViewDetailDivision() { return ( - + // + + + + + + + + + + + + ); } diff --git a/src/module/group/components/ui/edit_drawer_group.tsx b/src/module/group/components/ui/edit_drawer_group.tsx index 0d9c735..049ea01 100644 --- a/src/module/group/components/ui/edit_drawer_group.tsx +++ b/src/module/group/components/ui/edit_drawer_group.tsx @@ -40,7 +40,7 @@ export default function EditDrawerGroup({ } } - + useEffect(() => { getOneGroup();