diff --git a/src/app/(application)/division/create/page.tsx b/src/app/(application)/division/create/page.tsx
index 4ccb230..b94d1ad 100644
--- a/src/app/(application)/division/create/page.tsx
+++ b/src/app/(application)/division/create/page.tsx
@@ -3,9 +3,9 @@ import React from 'react';
function Page({ searchParams }: { searchParams: { page: string } }) {
if (searchParams.page == "anggota")
- return
- if (searchParams.page == "pilih-admin")
- return
+ return
+ // if (searchParams.page == "pilih-admin")
+ // return
return (
);
diff --git a/src/module/_global/bin/api_address.ts b/src/module/_global/bin/api_address.ts
index bc54fdc..4dacc12 100644
--- a/src/module/_global/bin/api_address.ts
+++ b/src/module/_global/bin/api_address.ts
@@ -33,7 +33,8 @@ export const API_ADDRESS = {
"apiCreatePosition": "/api/position/post?path=create-position",
"apiUpdatePosition": "/api/position/post?path=update-position",
"apiDeletePosition": "/api/position/post?path=delete-position",
-
+ // Division
+ "apiGetAllDivision": "/api/division/get?path=get-all-division",
}
\ No newline at end of file
diff --git a/src/module/_global/layout/layout_navbar_new.tsx b/src/module/_global/layout/layout_navbar_new.tsx
index d5f31e5..f13deed 100644
--- a/src/module/_global/layout/layout_navbar_new.tsx
+++ b/src/module/_global/layout/layout_navbar_new.tsx
@@ -5,7 +5,7 @@ import { WARNA } from '../fun/WARNA';
import LayoutIconBack from './layout_icon_back';
import _ from 'lodash';
-export const LayoutNavbarNew = ({ back, title, menu }: { back: string, title: string, menu: React.ReactNode }) => {
+export const LayoutNavbarNew = ({ back, title, menu }: { back?: string, title: string, menu: React.ReactNode }) => {
return (
-
+ {
+ back!=undefined && ()
+ }
{_.startCase(title)}
diff --git a/src/module/auth/api/funGetUserByCookies.ts b/src/module/auth/api/funGetUserByCookies.ts
index a80515e..fdcf6b5 100644
--- a/src/module/auth/api/funGetUserByCookies.ts
+++ b/src/module/auth/api/funGetUserByCookies.ts
@@ -16,5 +16,5 @@ export default async function funGetUserByCookies() {
},
});
- return { id: user?.id, name: user?.name, idVillage: user?.idVillage };
+ return { id: user?.id, idUserRole: user?.idUserRole, name: user?.name, idVillage: user?.idVillage, idGroup: user?.idGroup, idPosition: user?.idPosition };
}
\ No newline at end of file
diff --git a/src/module/division_new/api/get/getAllDivision.ts b/src/module/division_new/api/get/getAllDivision.ts
index 6645584..53c13e4 100644
--- a/src/module/division_new/api/get/getAllDivision.ts
+++ b/src/module/division_new/api/get/getAllDivision.ts
@@ -1,17 +1,27 @@
import { prisma } from "@/module/_global";
+import { funGetUserByCookies } from "@/module/auth";
import { NextRequest } from "next/server";
export default async function getAllDivision(req: NextRequest) {
try {
+ let grup
+ const user = await funGetUserByCookies()
const searchParams = req.nextUrl.searchParams
- const groupID = searchParams.get('groupID');
+ let groupID = searchParams.get('groupID');
+ if (groupID == null || groupID == undefined) {
+ grup = user.idGroup
+ } else {
+ grup = groupID
+ }
+
const division = await prisma.division.findMany({
where: {
isActive: true,
- idGroup: String(groupID)
+ idGroup: grup
}
})
+
return Response.json(division);
} catch (error) {
console.error(error);
diff --git a/src/module/division_new/components/create_admin_division.tsx b/src/module/division_new/components/create_admin_division.tsx
index 2811208..9dbdcc7 100644
--- a/src/module/division_new/components/create_admin_division.tsx
+++ b/src/module/division_new/components/create_admin_division.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import NavbarAdminDivision from './ui/navbar_admin_division';
-export default function CreateAdminDivision() {
+export default function CreateAdminDivision({ data }: { data: any }) {
return (
);
diff --git a/src/module/division_new/components/create_division.tsx b/src/module/division_new/components/create_division.tsx
index 0409d7a..a313b36 100644
--- a/src/module/division_new/components/create_division.tsx
+++ b/src/module/division_new/components/create_division.tsx
@@ -1,5 +1,7 @@
"use client";
-import { LayoutNavbarNew, WARNA } from "@/module/_global";
+import { API_ADDRESS, LayoutNavbarNew, WARNA } from "@/module/_global";
+import { TypeGroup } from "@/module/group";
+import { useHookstate } from "@hookstate/core";
import {
Avatar,
Box,
@@ -12,65 +14,108 @@ import {
Textarea,
TextInput,
} from "@mantine/core";
+import { useShallowEffect } from "@mantine/hooks";
import { useRouter } from "next/navigation";
-import React from "react";
+import React, { useState } from "react";
import { IoIosArrowDropright } from "react-icons/io";
-const dataUser = [
- {
- id: 1,
- img: "https://i.pravatar.cc/1000?img=3",
- name: "Doni Setiawan",
- },
- {
- id: 2,
- img: "https://i.pravatar.cc/1000?img=10",
- name: "Ilham Udin",
- },
- {
- id: 3,
- img: "https://i.pravatar.cc/1000?img=11",
- name: "Didin Anang",
- },
- {
- id: 4,
- img: "https://i.pravatar.cc/1000?img=21",
- name: "Angga Saputra",
- },
- {
- id: 5,
- img: "https://i.pravatar.cc/1000?img=32",
- name: "Marcel Widianto",
- },
- {
- id: 6,
- img: "https://i.pravatar.cc/1000?img=37",
- name: "Bagas Nusantara",
- },
-];
+import { globalMemberDivision } from "../lib/val_division";
+import toast from "react-hot-toast";
+import { funGetUserByCookies } from "@/module/auth";
+import CreateAdminDivision from "./create_admin_division";
+import CreateUsers from "./create_users";
+import NavbarCreateUsers from "./ui/navbar_create_users";
+
export default function CreateDivision() {
const router = useRouter();
+ const [dataGroup, setDataGroup] = useState();
+ const [roleUser, setRoleUser] = useState("")
+ const [isChooseAnggota, setChooseAnggota] = useState(false)
+ const [isChooseAdmin, setChooseAdmin] = useState(false)
+ const member = useHookstate(globalMemberDivision)
+ const [body, setBody] = useState({
+ idGroup: "",
+ name: "",
+ desc: "",
+ });
+
+ async function loadData() {
+ const loadGroup = await fetch(API_ADDRESS.apiGetAllGroup + '&active=true');
+ const dataGroup = await loadGroup.json();
+ setDataGroup(dataGroup);
+
+ const loadUser = await funGetUserByCookies();
+ setRoleUser(loadUser.idUserRole)
+ }
+
+ function onSubmit() {
+ if (roleUser == "supadmin" && (body.idGroup == "" || body.idGroup == null)) {
+ return toast.error("Error! grup harus diisi")
+ }
+
+ if (body.name == "") {
+ return toast.error("Error! nama divisi harus diisi")
+ }
+
+ if (member.length == 0) {
+ return toast.error("Error! belum ada anggota yang terdaftar")
+ }
+
+
+
+ setChooseAdmin(true)
+
+ }
+
+ function onToChooseAnggota() {
+ if (roleUser == "supadmin" && body.idGroup == "")
+ return toast.error("Error! grup harus diisi")
+ setChooseAnggota(true)
+ }
+
+
+
+ useShallowEffect(() => {
+ loadData();
+ }, []);
+
+ if (isChooseAdmin) return
+
+ if (isChooseAnggota) return
+
return (
-
+ {
+ (roleUser == "supadmin") && (
+