From 8980d8d77d6e2ad2d4136a8dc44727f7cf1c9f94 Mon Sep 17 00:00:00 2001 From: Anang Yusman Date: Sat, 7 Jun 2025 20:35:53 +0800 Subject: [PATCH] feat:fix spit,ui executive --- .../dashboard/executive-data/page.tsx | 543 ++++++++++++++++++ components/form/content/spit-convert-form.tsx | 78 +-- .../form/schedule/form-calendar-polri.tsx | 4 +- components/form/setting/form-add-iklan.tsx | 211 +++---- components/partials/auth/login-form.tsx | 6 +- lib/menus.ts | 79 ++- 6 files changed, 718 insertions(+), 203 deletions(-) create mode 100644 app/[locale]/(protected)/dashboard/executive-data/page.tsx diff --git a/app/[locale]/(protected)/dashboard/executive-data/page.tsx b/app/[locale]/(protected)/dashboard/executive-data/page.tsx new file mode 100644 index 00000000..0d7408e0 --- /dev/null +++ b/app/[locale]/(protected)/dashboard/executive-data/page.tsx @@ -0,0 +1,543 @@ +"use client"; +import SiteBreadcrumb from "@/components/site-breadcrumb"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from "@/components/ui/dialog"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { getCookiesDecrypt } from "@/lib/utils"; +import { generateTicket } from "@/service/tableau/tableau-service"; +import { LucideBoxSelect, UploadIcon } from "lucide-react"; +import { useEffect, useState } from "react"; +import Cookies from "js-cookie"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; +import { useTranslations } from "next-intl"; +import DashboardDropdown from "@/components/dashboard-dropdown"; +import RecentActivity from "../routine-task/components/recent-activity"; +import ContentTable from "../routine-task/components/content-table"; +import { Link } from "@/i18n/routing"; +import TaskTable from "../../contributor/task/components/task-table"; +import PressConferenceTable from "../../contributor/schedule/press-conference/components/presscon-table"; + +export default function ExecutiveDataDashboard() { + const [startDate, setStartDate] = useState(new Date()); + const [endDate, setEndDate] = useState(new Date()); + const [hasMounted, setHasMounted] = useState(false); + // const t = useTranslations("AnalyticsDashboard"); + const levelName = getCookiesDecrypt("ulnae"); + const levelNumber = getCookiesDecrypt("ulne"); + const state = Cookies.get("state"); + const provState = Cookies.get("state-prov"); + const t = useTranslations("AnalyticsDashboard"); + + const [ticket1, setTicket1] = useState(""); + const [ticket2, setTicket2] = useState(""); + const [ticket3, setTicket3] = useState(""); + const [ticket4, setTicket4] = useState(""); + const [ticket5, setTicket5] = useState(""); + const [ticket6, setTicket6] = useState(""); + const [isInternational, setIsInternational] = useState([false, false, false]); + + const baseUrl = "https://analytic.sitani.info/"; + const url = "https://analytic.sitani.info/trusted/"; + + const safeLevelName = levelNumber ?? ""; + + const view1 = + levelName == "MABES POLRI" + ? isInternational[0] + ? "views/2023_08_MediaHUB-KtnMgt_Rev100/db-emg-issue-executive?" + : "views/2023_08_MediaHUB-KtnMgt_Rev100/db-emg-issue-executive?" + : safeLevelName.includes("POLDA") + ? `views/2023_08_MediaHUB-KtnMgt_Rev100/db-emg-issue?provinsi-polda=${state}&` + : `views/2023_08_MediaHUB-KtnMgt_Rev100/db-emg-issue?provinsi-polda=${state}&`; + + const view2 = + levelName == "MABES POLRI" + ? isInternational[1] + ? "views/2023_04_MediaHUB-Viz_INTL_Rev202/db-published-produksi?" + : "views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-published-produksi-executive?" + : safeLevelName.includes("POLDA") + ? `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-published-produksi-polda-executive?polda-selected=${state}&` + : `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-published-produksi-polda-executive?polda-selected=${state}&`; + + const view3 = + levelName == "MABES POLRI" + ? isInternational[2] + ? "views/2023_04_MediaHUB-Viz_INTL_Rev202/db-waktu-akses-pengguna?" + : "views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-waktu-akses-pengguna-executive?" + : safeLevelName.includes("POLDA") + ? `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-waktu-akses-pengguna-polda-executive?polda-selected=${state}&` + : `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-waktu-akses-pengguna-polda-executive?polda-selected=${state}&`; + + const view4 = + levelName == "MABES POLRI" + ? isInternational[1] + ? "views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-polda?" + : "views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-polda?" + : safeLevelName.includes("POLDA") + ? `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-polda?polda-selected=${state}&` + : `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-polda?polda-selected=${state}&`; + + const view5 = + levelName == "MABES POLRI" + ? isInternational[1] + ? "views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-polres?" + : "views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-polres?" + : safeLevelName.includes("POLDA") + ? `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-polres?provinsi-polda=${state}&` + : `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-polres?provinsi-polda=${state}&`; + + const view6 = + levelName == "MABES POLRI" + ? isInternational[1] + ? "views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-satker?" + : "views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-satker?" + : safeLevelName.includes("POLDA") + ? `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-satker?satker-selected=${state}&` + : `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-satker?satker-selected=${state}&`; + + const view7 = + levelName == "MABES POLRI" + ? isInternational[2] + ? "views/2023_04_MediaHUB-Viz_INTL_Rev202/db-penugasan?" + : "views/2023_09_db-penugasan_rev100/db-penugasan?" + : safeLevelName.includes("POLDA") + ? `views/2023_09_db-penugasan_rev100/db-penugasan?polda-selected=${state}&` + : `views/2023_09_db-penugasan_rev100/db-penugasan?polda-selected=${state}&`; + + const view8 = + levelName == "MABES POLRI" + ? isInternational[2] + ? "views/2023_04_MediaHUB-Viz_INTL_Rev202/db-konten-kategori-top10?" + : "views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-konten-kategori-top10?" + : safeLevelName.includes("POLDA") + ? `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-konten-kategori-top10-polda?polda-selected=${state}&` + : `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-konten-kategori-top10-polda?polda-selected=${state}&`; + + const view9 = + levelName == "MABES POLRI" + ? isInternational[3] + ? "views/2023_04_MediaHUB-Viz_INTL_Rev202/db-konten-kategori?" + : "views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-konten-kategori?" + : safeLevelName.includes("POLDA") + ? `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-konten-kategori-polda?polda-selected=${state}&` + : `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-konten-kategori-polda?polda-selected=${state}&`; + + const param = ":embed=yes&:toolbar=no&:iframeSizedToWindow=true"; + + useEffect(() => { + async function initState() { + const response1 = await generateTicket(); + setTicket1(response1?.data?.data); + + const response2 = await generateTicket(); + setTicket2(response2?.data?.data); + + const response3 = await generateTicket(); + setTicket3(response3?.data?.data); + + const response4 = await generateTicket(); + setTicket4(response4?.data?.data); + + const response5 = await generateTicket(); + setTicket5(response5?.data?.data); + + const response6 = await generateTicket(); + setTicket6(response6?.data?.data); + } + + initState(); + }, [isInternational]); + + // Hooks + useEffect(() => { + setHasMounted(true); + }, []); + + // Render + if (!hasMounted) return null; + + const handleInternational = (index: number, val: boolean) => { + const updatedIsInternational = [...isInternational]; + + updatedIsInternational[index] = val; + setIsInternational(updatedIsInternational); + }; + + return ( +
+ +
+
+ + + + Publish Konten + + + Kategori Konten + + + Konten Terpopuler + + + Heatmap + + + Penugasan + + + + +
+ {/* Polda */} + {(levelNumber === "1" || levelNumber === "2") && ( + +
+

+ Upload konten hari ini Polda +

+
+
+ {ticket1 == "w-full" ? ( +