upd: divisi

Deskripsi:
- membuat list divisi berdasarkan kategori semua data dan data saya

NoIssues
This commit is contained in:
amel
2024-12-26 11:36:16 +08:00
parent 5300b6a130
commit 326d470839
3 changed files with 83 additions and 43 deletions

View File

@@ -18,6 +18,7 @@ export async function GET(request: Request) {
const roleUser = user.idUserRole
const { searchParams } = new URL(request.url);
const idGroup = searchParams.get("group");
const kategori = searchParams.get("cat");
const name = searchParams.get('search');
const page = searchParams.get('page');
const active = searchParams.get("active");
@@ -30,6 +31,7 @@ export async function GET(request: Request) {
}
// JIKA (ROLE BUKAN USER DAN COADMIN) ATAU SEMUA ROLE DG KATEGORI == SEMUA
let kondisi: any = {
isActive: active == 'false' ? false : true,
idVillage: String(villaId),
@@ -40,19 +42,23 @@ export async function GET(request: Request) {
}
}
// JIKA ROLE = USER ATAU COADMIN DAN KATEGORI = MINE (DIVISI SAYA)
if (roleUser != "supadmin" && roleUser != "cosupadmin" && roleUser != "admin") {
kondisi = {
isActive: active == 'false' ? false : true,
idVillage: String(villaId),
idGroup: grup,
name: {
contains: (name == undefined || name == "null") ? "" : name,
mode: "insensitive"
},
DivisionMember: {
some: {
isActive: true,
idUser: String(user.id)
if (kategori != "semua") {
kondisi = {
isActive: active == 'false' ? false : true,
idVillage: String(villaId),
idGroup: grup,
name: {
contains: (name == undefined || name == "null") ? "" : name,
mode: "insensitive"
},
DivisionMember: {
some: {
isActive: true,
idUser: String(user.id)
}
}
}
}

View File

@@ -30,6 +30,7 @@ export default function ListDivision() {
const [isRefresh, setRefresh] = useState(false)
const notifLoadPage = useHookstate(globalNotifPage)
const status = searchParams.get('active')
const kategori = searchParams.get('cat')
const handleList = () => {
@@ -43,7 +44,7 @@ export default function ListDivision() {
if (isPage == 1) {
setData([])
}
const response = await funGetAllDivision('?active=' + status + '&search=' + searchQuery + '&group=' + group + '&page=' + isPage)
const response = await funGetAllDivision('?active=' + status + '&search=' + searchQuery + '&group=' + group + '&page=' + isPage + '&cat=' + kategori);
if (response.success) {
setJumlah(response.total)
setNameGroup(response.filter.name)
@@ -72,7 +73,7 @@ export default function ListDivision() {
useShallowEffect(() => {
setPage(1)
fetchData(true)
}, [status, searchQuery])
}, [status, searchQuery, kategori])

View File

@@ -4,7 +4,7 @@ import { useHookstate } from "@hookstate/core";
import { Box, rem, Tabs } from "@mantine/core";
import { useRouter, useSearchParams } from "next/navigation";
import { IoMdCheckmarkCircleOutline } from "react-icons/io";
import { IoCloseCircleOutline } from "react-icons/io5";
import { IoCloseCircleOutline, IoFileTrayOutline, IoFileTrayStackedOutline } from "react-icons/io5";
import ListDivision from "./list_division";
export default function TabListDivision() {
@@ -13,6 +13,7 @@ export default function TabListDivision() {
const searchParams = useSearchParams();
const status = searchParams.get("active");
const group = searchParams.get("group");
const kategori = searchParams.get("cat");
const tema = useHookstate(TEMA)
const roleLogin = useHookstate(globalRole)
@@ -22,40 +23,72 @@ export default function TabListDivision() {
variant="pills"
color={tema.get().bgFiturHome}
radius="xl"
defaultValue={status == "false" ? "false" : "true"}
defaultValue={status == "false" || kategori == "semua" ? "false" : "true"}
>
{
roleLogin.get() != '' ?
(roleLogin.get() != "user" && roleLogin.get() != "coadmin") &&
<Tabs.List
bg={"white"}
style={{
border: `1px solid ${"#EDEDED"}`,
padding: 5,
borderRadius: 100,
}}
>
<Tabs.Tab
value="true"
w={"45%"}
leftSection={<IoMdCheckmarkCircleOutline style={iconStyle} />}
onClick={() => {
router.push("/division?active=true&group=" + group);
roleLogin.get() != ''
?
(roleLogin.get() != "user" && roleLogin.get() != "coadmin")
?
<Tabs.List
bg={"white"}
style={{
border: `1px solid ${"#EDEDED"}`,
padding: 5,
borderRadius: 100,
}}
>
Aktif
</Tabs.Tab>
<Tabs.Tab
value="false"
w={"53%"}
leftSection={<IoCloseCircleOutline style={iconStyle} />}
onClick={() => {
router.push("/division?active=false&group=" + group);
<Tabs.Tab
value="true"
w={"45%"}
leftSection={<IoMdCheckmarkCircleOutline style={iconStyle} />}
onClick={() => {
router.push("/division?active=true&group=" + group);
}}
>
Aktif
</Tabs.Tab>
<Tabs.Tab
value="false"
w={"53%"}
leftSection={<IoCloseCircleOutline style={iconStyle} />}
onClick={() => {
router.push("/division?active=false&group=" + group);
}}
>
Tidak Aktif
</Tabs.Tab>
</Tabs.List>
:
<Tabs.List
bg={"white"}
style={{
border: `1px solid ${"#EDEDED"}`,
padding: 5,
borderRadius: 100,
}}
>
Tidak Aktif
</Tabs.Tab>
</Tabs.List>
<Tabs.Tab
value="true"
w={"45%"}
leftSection={<IoFileTrayOutline style={iconStyle} />}
onClick={() => {
router.push("/division");
}}
>
Divisi Saya
</Tabs.Tab>
<Tabs.Tab
value="false"
w={"53%"}
leftSection={<IoFileTrayStackedOutline style={iconStyle} />}
onClick={() => {
router.push("/division?cat=semua");
}}
>
Semua Divisi
</Tabs.Tab>
</Tabs.List>
: <></>
}
<ListDivision />