From 56514ef878324693d96596ab2ae60e121797a95b Mon Sep 17 00:00:00 2001 From: hanif salafi Date: Tue, 4 Feb 2025 14:22:51 +0700 Subject: [PATCH 1/3] feat: update filter in agenda settings --- .../agenda-setting/calender-view.tsx | 2 +- .../contributor/agenda-setting/data.ts | 1 - .../agenda-setting/event-modal.tsx | 2 +- .../contributor/agenda-setting/page.tsx | 48 +++++++++++++++---- 4 files changed, 42 insertions(+), 11 deletions(-) diff --git a/app/[locale]/(protected)/contributor/agenda-setting/calender-view.tsx b/app/[locale]/(protected)/contributor/agenda-setting/calender-view.tsx index 6713b9c8..9169de8f 100644 --- a/app/[locale]/(protected)/contributor/agenda-setting/calender-view.tsx +++ b/app/[locale]/(protected)/contributor/agenda-setting/calender-view.tsx @@ -609,7 +609,7 @@ const CalendarView = ({ categories }: CalendarViewProps) => { if (selectedCategory?.length === categories?.length) { setSelectedCategory([]); } else { - setSelectedCategory(categories.map((c) => c.value)); + setSelectedCategory(categories?.map((c) => c.value)); } }} /> diff --git a/app/[locale]/(protected)/contributor/agenda-setting/data.ts b/app/[locale]/(protected)/contributor/agenda-setting/data.ts index fddde01a..3cab4af9 100644 --- a/app/[locale]/(protected)/contributor/agenda-setting/data.ts +++ b/app/[locale]/(protected)/contributor/agenda-setting/data.ts @@ -125,7 +125,6 @@ export const categories = [ { label: "Polda", value: "polda", - className: "data-[state=checked]:bg-blue-400 data-[state=checked]:ring-blue-400", }, diff --git a/app/[locale]/(protected)/contributor/agenda-setting/event-modal.tsx b/app/[locale]/(protected)/contributor/agenda-setting/event-modal.tsx index 94bbf18e..27def02c 100644 --- a/app/[locale]/(protected)/contributor/agenda-setting/event-modal.tsx +++ b/app/[locale]/(protected)/contributor/agenda-setting/event-modal.tsx @@ -382,7 +382,7 @@ const EventModal = ({ setStartDate(event?.event?.start); setEndDate(event?.event?.end); const eventCalendar = event?.event?.extendedProps?.calendar; - setAgendaType(eventCalendar || categories[0].value); + setAgendaType(eventCalendar || categories?.length > 0 && categories[0].value); } setValue("title", event?.event?.title || ""); setValue("description", event?.event?.description || ""); diff --git a/app/[locale]/(protected)/contributor/agenda-setting/page.tsx b/app/[locale]/(protected)/contributor/agenda-setting/page.tsx index a9235b2d..4f88d946 100644 --- a/app/[locale]/(protected)/contributor/agenda-setting/page.tsx +++ b/app/[locale]/(protected)/contributor/agenda-setting/page.tsx @@ -1,17 +1,49 @@ +"use client" + import { getEvents, getCategories } from "./utils"; import { calendarEvents, Category } from "./data"; import CalendarView from "./calender-view"; +import { getCookiesDecrypt } from "@/lib/utils"; +import { useEffect, useState } from "react"; +import { CalendarCategory } from "./data"; + +const CalenderPage = () => { + + const [categories, setCategories] = useState([]); + const userLevelNumber = Number(getCookiesDecrypt("ulne")) || 0; + const userLevelId = Number(getCookiesDecrypt("ulie")) || 0; + const userParentLevelId = Number(getCookiesDecrypt("uplie")) || 0; + + useEffect(() => { + initData(); + + async function initData() { + const events = await getEvents(); + const categories = await getCategories(); + let valueShowed : string[] = []; + if (userLevelNumber == 1) { + valueShowed = ['mabes', 'polda', 'polres', 'satker', 'international']; + } else if (userLevelNumber == 2 && userLevelId != 761) { + valueShowed = ['polda', 'polres']; + } else if ((userLevelNumber == 2 && userLevelId == 761) || (userLevelNumber == 3 && userParentLevelId == 761)) { + valueShowed = ['satker']; + } else if (userLevelNumber == 3 && userParentLevelId != 761) { + valueShowed = ['polres']; + } + + const formattedCategories = categories.filter((category: Category) => valueShowed.includes(category.value)) + .map((category: Category) => ({ + ...category, + activeClass: "", + })); + console.log(formattedCategories); + setCategories(formattedCategories); + } + }, []); -const CalenderPage = async () => { - const events = await getEvents(); - const categories = await getCategories(); - const formattedCategories = categories.map((category: Category) => ({ - ...category, - activeClass: "", - })); return (
- + {categories && }
); }; From 42d9ce4fc0c8fa3d1121c7eb8395d925edd710ac Mon Sep 17 00:00:00 2001 From: hanif salafi Date: Tue, 4 Feb 2025 14:34:09 +0700 Subject: [PATCH 2/3] feat: update calendar view checklist --- .../contributor/agenda-setting/calender-view.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/[locale]/(protected)/contributor/agenda-setting/calender-view.tsx b/app/[locale]/(protected)/contributor/agenda-setting/calender-view.tsx index 87df5001..fdc17169 100644 --- a/app/[locale]/(protected)/contributor/agenda-setting/calender-view.tsx +++ b/app/[locale]/(protected)/contributor/agenda-setting/calender-view.tsx @@ -94,6 +94,7 @@ interface ListItemProps { item: any; text: string; createdBy: string; + isPublish: boolean; bgColor: string; } @@ -341,7 +342,7 @@ const CalendarView = ({ categories }: CalendarViewProps) => { <>
{" "} - {isPublish && } + {isPublish == true && }

{title}

@@ -402,6 +403,7 @@ const CalendarView = ({ categories }: CalendarViewProps) => { mabes: "bg-yellow-500", polda: "bg-blue-400", polres: "bg-slate-400", + satker: "bg-orange-500", international: "bg-green-400", }; return colors[type]; @@ -437,6 +439,7 @@ const CalendarView = ({ categories }: CalendarViewProps) => { item, text, createdBy, + isPublish, bgColor, }) => (
{ onClick={() => handleClickListItem(item)} >
- + {isPublish == true && }

{text}

Created By: {createdBy}

@@ -475,6 +478,7 @@ const CalendarView = ({ categories }: CalendarViewProps) => { item={event} text={event.title} createdBy={event.createdByName} + isPublish={event.isPublish} bgColor={getEventColor(event.agendaType)} /> ))} @@ -504,6 +508,7 @@ const CalendarView = ({ categories }: CalendarViewProps) => { item={event} text={event.title} createdBy={event.createdByName} + isPublish={event.isPublish} bgColor={getEventColor(event.agendaType)} /> ))} From 3ec4b1f22324b47e92717c39d16dad0e23a25e02 Mon Sep 17 00:00:00 2001 From: hanif salafi Date: Tue, 4 Feb 2025 15:04:57 +0700 Subject: [PATCH 3/3] feat: update detail task --- components/form/task/task-detail-form.tsx | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/components/form/task/task-detail-form.tsx b/components/form/task/task-detail-form.tsx index 7ca5760d..08565360 100644 --- a/components/form/task/task-detail-form.tsx +++ b/components/form/task/task-detail-form.tsx @@ -176,6 +176,7 @@ interface UploadResult { fileType: { name: string }; uploadStatus: { name: string }; creatorName: string; + creatorGroup: string; } interface FileUploaded { @@ -327,14 +328,17 @@ export default function FormTaskDetail() { fetchPoldaPolres(); }, []); - const fetchFilteredData = async (selectedLevels: any[]) => { + const fetchFilteredData = async (selectedLevels?: any[]) => { try { - const levels = + if (selectedLevels) { + const levels = selectedLevels.length === 0 ? userLevelId : selectedLevels.join(","); - - const response = await getMediaUpload(id, levels); - - setUploadResults(response?.data?.data || []); + const response = await getMediaUpload(id, levels); + setUploadResults(response?.data?.data || []); + } else { + const response = await getMediaUpload(id, ''); + setUploadResults(response?.data?.data || []); + } } catch (error) { console.error("Error fetching filtered data:", error); } @@ -383,6 +387,7 @@ export default function FormTaskDetail() { } } initState(); + fetchFilteredData(); }, [id, refresh]); const handleUrlChange = (index: number, newUrl: string) => { @@ -1524,7 +1529,7 @@ export default function FormTaskDetail() { Judul Konten - Kategory + Kategori Diupload Oleh @@ -1536,7 +1541,7 @@ export default function FormTaskDetail() { {item.fileType.name} {item.category.name} - {item.creatorName} + {item.creatorGroup} ))}