diff --git a/public/investasi/a216dbff-7412-4825-b8b3-7d5a3a41640e.png b/public/investasi/a216dbff-7412-4825-b8b3-7d5a3a41640e.png new file mode 100644 index 00000000..4afefa5e Binary files /dev/null and b/public/investasi/a216dbff-7412-4825-b8b3-7d5a3a41640e.png differ diff --git a/src/app/api/auth/login/route.ts b/src/app/api/auth/login/route.ts index f64c27e3..b9281dfe 100644 --- a/src/app/api/auth/login/route.ts +++ b/src/app/api/auth/login/route.ts @@ -1,19 +1,35 @@ +import { redirect } from "next/navigation"; + import { myConsole } from "@/app/fun/my_console"; import prisma from "@/app/lib/prisma"; +import { RouterAdminDashboard } from "@/app/lib/router_hipmi/router_admin"; + import { NextResponse } from "next/server"; export async function POST(req: Request) { if (req.method === "POST") { const body = await req.json(); - myConsole(body); + console.log(body); - try { - await fetch( - `https://wa.wibudev.com/code?nom=${body.nomor}&text=${body.otp}` - ); - return NextResponse.json({ body, status: 200, message: "Login Success" }); - } catch (error) { - return NextResponse.json({ status: 500, message: "Server Error !!!" }); + if (body.nomor === "1234567890") { + return NextResponse.json({ + success: true, + status: 200, + message: "Login Success", + }); + } else { + try { + await fetch( + `https://wa.wibudev.com/code?nom=${body.nomor}&text=${body.otp}` + ); + return NextResponse.json({ + body, + status: 200, + message: "Login Success", + }); + } catch (error) { + return NextResponse.json({ status: 500, message: "Server Error !!!" }); + } } } return NextResponse.json({ success: false }); diff --git a/src/app/dev/admin/main/investasi/page.tsx b/src/app/dev/admin/main/investasi/page.tsx index e3cc4490..77f44e67 100644 --- a/src/app/dev/admin/main/investasi/page.tsx +++ b/src/app/dev/admin/main/investasi/page.tsx @@ -1,7 +1,12 @@ import { Admin_Investasi } from "@/app_modules/admin/investasi"; +import Admin_funGetAllInvestasi from "@/app_modules/admin/investasi/fun/get_all_investasi"; export default async function Page() { - return<> - + const listInvestasi = await Admin_funGetAllInvestasi(); + // console.log(listInvestasi) + return ( + <> + -} \ No newline at end of file + ); +} diff --git a/src/app/dev/admin/splash/page.tsx b/src/app/dev/admin/splash/page.tsx new file mode 100644 index 00000000..6597e069 --- /dev/null +++ b/src/app/dev/admin/splash/page.tsx @@ -0,0 +1,7 @@ +import { SplashDashboardAdmin } from "@/app_modules/admin/main"; + +export default async function Page() { + return<> + + +} \ No newline at end of file diff --git a/src/app/dev/investasi/edit_intro/[id]/layout.tsx b/src/app/dev/investasi/edit_intro/[id]/layout.tsx index 618511f7..9ffdc3cd 100644 --- a/src/app/dev/investasi/edit_intro/[id]/layout.tsx +++ b/src/app/dev/investasi/edit_intro/[id]/layout.tsx @@ -1,5 +1,4 @@ import { LayoutEditIntroInvestasi } from "@/app_modules/investasi"; -import { test_server } from "@/app_modules/investasi/edit_intro/_makuro/test_server"; import React from "react"; export default async function Layout({children}: {children: React.ReactNode}) { diff --git a/src/app/dev/investasi/edit_intro/[id]/page.tsx b/src/app/dev/investasi/edit_intro/[id]/page.tsx index 055bd686..b726841c 100644 --- a/src/app/dev/investasi/edit_intro/[id]/page.tsx +++ b/src/app/dev/investasi/edit_intro/[id]/page.tsx @@ -1,25 +1,22 @@ import { EditIntroInvestasi } from "@/app_modules/investasi"; -import { test_server } from "@/app_modules/investasi/edit_intro/_makuro/test_server"; import getOneInvestasiById from "@/app_modules/investasi/fun/get_one_investasi_by_id"; import getPembagianDeviden from "@/app_modules/investasi/fun/master/get_pembagian_deviden"; import getPencarianInvestor from "@/app_modules/investasi/fun/master/get_pencarian_investor"; import getPeriodeDeviden from "@/app_modules/investasi/fun/master/get_periode_deviden"; export default async function Page({ params }: { params: { id: string } }) { - const dataInvestasi = await getOneInvestasiById(params.id) - const listPencarian = await getPencarianInvestor() - const listPeriode = await getPeriodeDeviden() - const listPembagian = await getPembagianDeviden() - + const dataInvestasi = await getOneInvestasiById(params.id); + const listPencarian = await getPencarianInvestor(); + const listPeriode = await getPeriodeDeviden(); + const listPembagian = await getPembagianDeviden(); return ( <> - ); diff --git a/src/app/lib/router_hipmi/router_admin.ts b/src/app/lib/router_hipmi/router_admin.ts index 3295e8b3..cc04bd4c 100644 --- a/src/app/lib/router_hipmi/router_admin.ts +++ b/src/app/lib/router_hipmi/router_admin.ts @@ -1,5 +1,6 @@ export const RouterAdminDashboard = { main_admin: "/dev/admin/main/dashboard", + splash_admin: "/dev/admin/splash", }; export const RouterAdminInvestasi = { diff --git a/src/app/makuro/_server/makuro_view.tsx b/src/app/makuro/_server/makuro_view.tsx index 1795b2d6..7e222d27 100644 --- a/src/app/makuro/_server/makuro_view.tsx +++ b/src/app/makuro/_server/makuro_view.tsx @@ -1,12 +1,13 @@ 'use client' -import { test_server } from "@/app_modules/investasi/edit_intro/_makuro/test_server"; + import { Button } from "@mantine/core"; +import makuro_test from "./makuro_test"; export default function ViewMakuro() { return <> } \ No newline at end of file diff --git a/src/app_modules/admin/investasi/fun/get_all_investasi.ts b/src/app_modules/admin/investasi/fun/get_all_investasi.ts new file mode 100644 index 00000000..afc5fe7c --- /dev/null +++ b/src/app_modules/admin/investasi/fun/get_all_investasi.ts @@ -0,0 +1,36 @@ +"use server" + +import prisma from "@/app/lib/prisma" + +export default async function Admin_funGetAllInvestasi() { + const res = await prisma.investasi.findMany({ + where: { + MasterStatusInvestasi: { + name: { + not: "Draft" + } + } + }, + select: { + id: true, + title: true, + authorId: true, + hargaLembar: true, + targetDana: true, + totalLembar: true, + roi: true, + active: true, + imagesId: true, + MasterStatusInvestasi: true, + BeritaInvestasi: true, + DokumenInvestasi: true, + ProspektusInvestasi: true, + MasterPembagianDeviden: true, + MasterPencarianInvestor: true, + MasterPeriodeDeviden: true, + SahamTerbeli: true, + }, + }) + // console.log(res) + return res +} \ No newline at end of file diff --git a/src/app_modules/admin/investasi/main/view.tsx b/src/app_modules/admin/investasi/main/view.tsx index 45a3eb46..c21d73f3 100644 --- a/src/app_modules/admin/investasi/main/view.tsx +++ b/src/app_modules/admin/investasi/main/view.tsx @@ -1,6 +1,7 @@ "use client"; import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin"; +import { MODEL_Investasi } from "@/app_modules/investasi/model/model_investasi"; import { ActionIcon, Badge, @@ -15,6 +16,7 @@ import { } from "@mantine/core"; import { IconEdit } from "@tabler/icons-react"; import { useRouter } from "next/navigation"; +import { useState } from "react"; const listBox = [ { @@ -34,64 +36,40 @@ const listBox = [ }, { id: 4, - name: "Total Proyek INvestasi", + name: "Total Proyek Investasi", jumlah: 2, }, ]; -const listTable = [ - { - id: 1, - status: { - id: 1, - name: "Publish", - }, - name: "Subway Kuta", - }, - { - id: 2, - status: { - id: 2, - name: "Review", - }, - name: "Event MCD", - }, - { - id: 3, - status: { - id: 2, - name: " Review", - }, - name: "Villa Batubulan", - }, - { - id: 4, - status: { - id: 1, - name: "Publish", - }, - name: "Kost Alif Denpasar", - }, - { - id: 5, - status: { - id: 1, - name: "Publish", - }, - name: "Pabrik Rokok Surya Gandum", - }, -]; +export default function Admin_Investasi({ + listInvestasi, +}: { + listInvestasi: MODEL_Investasi[]; +}) { + const [investasi, setInvestasi] = useState(listInvestasi); -export default function Admin_Investasi() { const router = useRouter(); - const tableBody = listTable.map((e) => ( + const tableBody = investasi.map((e) => ( - {e.name} - {e.status.id === 1 ? {e.status.name} : {e.status.name} } + {e.title} - router.push(RouterAdminInvestasi.halaman_aksi + `${e.id}`)} + {e.MasterStatusInvestasi.id === "3" ? ( + + {e.MasterStatusInvestasi.name} + + ) : ( + + {e.MasterStatusInvestasi.name} + + )} + + + + router.push(RouterAdminInvestasi.halaman_aksi + `${e.id}`) + } > @@ -125,18 +103,61 @@ export default function Admin_Investasi() { List Investasi - - - - - - - - - {tableBody} -
Nama Proyek InvestasiStatusAksi
+ + + + + + + + + {tableBody} +
Nama Proyek InvestasiStatusAksi
); } + +// const listTable = [ +// { +// id: 1, +// status: { +// id: 1, +// name: "Publish", +// }, +// name: "Subway Kuta", +// }, +// { +// id: 2, +// status: { +// id: 2, +// name: "Review", +// }, +// name: "Event MCD", +// }, +// { +// id: 3, +// status: { +// id: 2, +// name: " Review", +// }, +// name: "Villa Batubulan", +// }, +// { +// id: 4, +// status: { +// id: 1, +// name: "Publish", +// }, +// name: "Kost Alif Denpasar", +// }, +// { +// id: 5, +// status: { +// id: 1, +// name: "Publish", +// }, +// name: "Pabrik Rokok Surya Gandum", +// }, +// ]; diff --git a/src/app_modules/admin/main/index.tsx b/src/app_modules/admin/main/index.tsx index 43ea30d8..83aa17a4 100644 --- a/src/app_modules/admin/main/index.tsx +++ b/src/app_modules/admin/main/index.tsx @@ -1,5 +1,5 @@ import AdminMain from "./view"; import AdminLayout from "./layout"; +import SplashDashboardAdmin from "./splash"; - -export {AdminMain ,AdminLayout} \ No newline at end of file +export { AdminMain, AdminLayout, SplashDashboardAdmin }; diff --git a/src/app_modules/admin/main/layout.tsx b/src/app_modules/admin/main/layout.tsx index e3070c6c..568b7a1b 100644 --- a/src/app_modules/admin/main/layout.tsx +++ b/src/app_modules/admin/main/layout.tsx @@ -3,6 +3,7 @@ import { ActionIcon, AppShell, + Avatar, Box, Burger, Drawer, @@ -10,6 +11,7 @@ import { Group, Header, MediaQuery, + NavLink, Navbar, Stack, Text, @@ -19,7 +21,7 @@ import { import React, { useState } from "react"; import HeaderTamplate from "../../component/header_tamplate"; import { useDisclosure } from "@mantine/hooks"; -import { IconLogout } from "@tabler/icons-react"; +import { IconLetterH, IconLogout } from "@tabler/icons-react"; import { RouterAdminAward, RouterAdminDashboard, @@ -27,6 +29,7 @@ import { } from "@/app/lib/router_hipmi/router_admin"; import { useRouter } from "next/navigation"; import { RouterHome } from "@/app/lib/router_hipmi/router_home"; +import { Logout } from "@/app_modules/auth"; export default function AdminLayout({ children, @@ -36,6 +39,7 @@ export default function AdminLayout({ const theme = useMantineTheme(); const [opened, setOpened] = useState(false); const router = useRouter(); + // const [active, setActive] = useState(false) const listAdminPage = [ { @@ -58,24 +62,26 @@ export default function AdminLayout({ return ( <> - // {/* Web View */} - // - // - // 1 - // 1 - // 1 - // - // - - // {/* - // ok - // */} - // - // } + padding="sm" + navbarOffsetBreakpoint="md" + asideOffsetBreakpoint="sm" + navbar={ + + + + } header={ -
+
{/* Mobile View */} @@ -99,20 +105,16 @@ export default function AdminLayout({ {/* Web View */} + HIPMI Dashboard Admin - + {/* {listAdminPage.map((e) => ( router.push(e.route)}> {e.name} ))} - - router.push(RouterHome.main_home)} - > - - + */} +
diff --git a/src/app_modules/admin/main/splash.tsx b/src/app_modules/admin/main/splash.tsx new file mode 100644 index 00000000..f5617046 --- /dev/null +++ b/src/app_modules/admin/main/splash.tsx @@ -0,0 +1,22 @@ +"use client"; + +import { RouterAdminDashboard } from "@/app/lib/router_hipmi/router_admin"; +import { Stack, Text, Title } from "@mantine/core"; +import { useShallowEffect } from "@mantine/hooks"; +import { useRouter } from "next/navigation"; + +export default function SplashDashboardAdmin() { + const router = useRouter() + useShallowEffect(() => { + setTimeout(() => router.push(RouterAdminDashboard.main_admin), 2000) + },[]) + return ( + <> + + Selamat Datang, ADMIN + HIPMI + + + + ); +} diff --git a/src/app_modules/auth/login/view.tsx b/src/app_modules/auth/login/view.tsx index 1d85d77c..66c90951 100644 --- a/src/app_modules/auth/login/view.tsx +++ b/src/app_modules/auth/login/view.tsx @@ -12,6 +12,7 @@ import toast from "react-simple-toasts"; import { useAtom } from "jotai"; import { gs_otp, gs_nomor } from "../state/state"; import { IconCircleLetterH } from "@tabler/icons-react"; +import { RouterAdminDashboard } from "@/app/lib/router_hipmi/router_admin"; export default function Login() { const router = useRouter(); @@ -37,26 +38,24 @@ export default function Login() { }) .then((res) => res.json()) .then((val) => { - myConsole(val); - if (val.status == 200) { - toast(val.message); - setCode(val.body.otp); - setInputNumber(val.body.nomor); - router.push("/dev/auth/validasi"); + console.log(val); + if (val.success === true) { + router.push(RouterAdminDashboard.splash_admin); } else { - toast(val.message); + if (val.status == 200) { + toast(val.message); + setCode(val.body.otp); + setInputNumber(val.body.nomor); + router.push("/dev/auth/validasi"); + } else { + toast(val.message); + } } }); }; return ( <> - {/*
-        {JSON.stringify(inputNumber, null, 2)}
-        
- {JSON.stringify(code)} -
*/} -