diff --git a/app/[locale]/(protected)/contest/table-contest/contest-table.tsx b/app/[locale]/(protected)/contest/table-contest/contest-table.tsx index 69d672fc..35f379cb 100644 --- a/app/[locale]/(protected)/contest/table-contest/contest-table.tsx +++ b/app/[locale]/(protected)/contest/table-contest/contest-table.tsx @@ -185,7 +185,7 @@ const ContestTable = () => { const [rowSelection, setRowSelection] = React.useState({}); const [pagination, setPagination] = React.useState({ pageIndex: 0, - pageSize: 6, + pageSize: 2, }); const [page, setPage] = React.useState(1); const [totalPage, setTotalPage] = React.useState(1); @@ -219,6 +219,7 @@ const ContestTable = () => { async function initState() { try { const res = await listContest(limit, page); + console.log("res", res?.data?.data); const data = res.data.data.content.map((item: any, index: number) => ({ no: (page - 1) * limit + index + 1, hastagCode: item.hastagCode, diff --git a/app/[locale]/(protected)/dashboard/page.tsx b/app/[locale]/(protected)/dashboard/page.tsx index e79e55ae..b02b93e8 100644 --- a/app/[locale]/(protected)/dashboard/page.tsx +++ b/app/[locale]/(protected)/dashboard/page.tsx @@ -1,3 +1,4 @@ +"use client"; import { StatisticsBlock } from "@/components/blocks/statistics-block"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import DashboardDropdown from "@/components/dashboard-dropdown"; @@ -10,10 +11,22 @@ import CompanyTable from "./routine-task/routine-task-table"; import TaskTable from "../task/components/task-table"; import PressConferenceTable from "../schedule/press-release/components/pressrilis-table"; import BlogTable from "../blog/components/blog-table"; +import Cookies from "js-cookie"; +import { useEffect } from "react"; +import { getCookiesDecrypt } from "@/lib/utils"; +import DashboardVisualization from "@/components/visualization/dashboard-viz"; const DashboardPage = () => { const t = useTranslations("AnalyticsDashboard"); - return ( + const roleId = getCookiesDecrypt("urie"); + + return Number(roleId) == 2 || Number(roleId) == 11 || Number(roleId) == 12 ? ( +
+
+ +
+
+ ) : (
diff --git a/app/[locale]/(public)/audio/layout.tsx b/app/[locale]/(public)/audio/layout.tsx index 2cb8c934..9670b380 100644 --- a/app/[locale]/(public)/audio/layout.tsx +++ b/app/[locale]/(public)/audio/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Footer from "@/components/landing-page/footer"; -import Navbar from "@/components/landing-page/navbar"; +import Footer from "@/components/landing-page/Footer"; +import Navbar from "@/components/landing-page/Navbar"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/contact/layout.tsx b/app/[locale]/(public)/contact/layout.tsx index 5eca8060..5348f6d3 100644 --- a/app/[locale]/(public)/contact/layout.tsx +++ b/app/[locale]/(public)/contact/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Navbar from "@/components/landing-page/navbar"; -import Footer from "@/components/landing-page/footer"; +import Navbar from "@/components/landing-page/Navbar"; +import Footer from "@/components/landing-page/Footer"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/document/layout.tsx b/app/[locale]/(public)/document/layout.tsx index 2cb8c934..9670b380 100644 --- a/app/[locale]/(public)/document/layout.tsx +++ b/app/[locale]/(public)/document/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Footer from "@/components/landing-page/footer"; -import Navbar from "@/components/landing-page/navbar"; +import Footer from "@/components/landing-page/Footer"; +import Navbar from "@/components/landing-page/Navbar"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/faqs/layout.tsx b/app/[locale]/(public)/faqs/layout.tsx index 5eca8060..5348f6d3 100644 --- a/app/[locale]/(public)/faqs/layout.tsx +++ b/app/[locale]/(public)/faqs/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Navbar from "@/components/landing-page/navbar"; -import Footer from "@/components/landing-page/footer"; +import Navbar from "@/components/landing-page/Navbar"; +import Footer from "@/components/landing-page/Footer"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/feedback/layout.tsx b/app/[locale]/(public)/feedback/layout.tsx index 5eca8060..5348f6d3 100644 --- a/app/[locale]/(public)/feedback/layout.tsx +++ b/app/[locale]/(public)/feedback/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Navbar from "@/components/landing-page/navbar"; -import Footer from "@/components/landing-page/footer"; +import Navbar from "@/components/landing-page/Navbar"; +import Footer from "@/components/landing-page/Footer"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/image/layout.tsx b/app/[locale]/(public)/image/layout.tsx index 2cb8c934..9670b380 100644 --- a/app/[locale]/(public)/image/layout.tsx +++ b/app/[locale]/(public)/image/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Footer from "@/components/landing-page/footer"; -import Navbar from "@/components/landing-page/navbar"; +import Footer from "@/components/landing-page/Footer"; +import Navbar from "@/components/landing-page/Navbar"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/indeks/layout.tsx b/app/[locale]/(public)/indeks/layout.tsx index 2cb8c934..9670b380 100644 --- a/app/[locale]/(public)/indeks/layout.tsx +++ b/app/[locale]/(public)/indeks/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Footer from "@/components/landing-page/footer"; -import Navbar from "@/components/landing-page/navbar"; +import Footer from "@/components/landing-page/Footer"; +import Navbar from "@/components/landing-page/Navbar"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/schedule/layout.tsx b/app/[locale]/(public)/schedule/layout.tsx index 2cb8c934..9670b380 100644 --- a/app/[locale]/(public)/schedule/layout.tsx +++ b/app/[locale]/(public)/schedule/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Footer from "@/components/landing-page/footer"; -import Navbar from "@/components/landing-page/navbar"; +import Footer from "@/components/landing-page/Footer"; +import Navbar from "@/components/landing-page/Navbar"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/video/layout.tsx b/app/[locale]/(public)/video/layout.tsx index 2cb8c934..9670b380 100644 --- a/app/[locale]/(public)/video/layout.tsx +++ b/app/[locale]/(public)/video/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Footer from "@/components/landing-page/footer"; -import Navbar from "@/components/landing-page/navbar"; +import Footer from "@/components/landing-page/Footer"; +import Navbar from "@/components/landing-page/Navbar"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 1e479373..4a6790f3 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -5,10 +5,10 @@ import NewContent from "@/components/landing-page/new-content"; import PopularContent from "@/components/landing-page/popular-content"; import ContentCategory from "@/components/landing-page/content-category"; import Coverage from "@/components/landing-page/coverage"; -import Hero from "@/components/landing-page/hero"; -import Footer from "@/components/landing-page/footer"; +import Hero from "@/components/landing-page/Hero"; +import Footer from "@/components/landing-page/Footer"; import Division from "@/components/landing-page/division"; -import Navbar from "@/components/landing-page/navbar"; +import Navbar from "@/components/landing-page/Navbar"; const Home = ({ params: { locale } }: { params: { locale: string } }) => { return ( diff --git a/components/page-title.tsx b/components/page-title.tsx index 98db4e1a..4bd64ed5 100644 --- a/components/page-title.tsx +++ b/components/page-title.tsx @@ -1,8 +1,8 @@ "use client"; -import React from "react"; +import React, { useEffect } from "react"; import DateRangePicker from "@/components/date-range-picker"; import { usePathname } from "@/components/navigation"; -import { cn } from "@/lib/utils"; +import { cn, getCookiesDecrypt } from "@/lib/utils"; const PageTitle = ({ title, @@ -13,8 +13,14 @@ const PageTitle = ({ }) => { const pathname = usePathname(); const name = pathname?.split("/").slice(1).join(" "); + const roleId = getCookiesDecrypt("urie"); - return ( + useEffect(() => { + console.log("role", roleId); + }, [roleId]); + return Number(roleId) == 2 || Number(roleId) == 11 || Number(roleId) == 12 ? ( + "" + ) : (
{ - const session = await auth() - return ( - -
-
-
-
- COPYRIGHT © {new Date().getFullYear()} Media Hub, All rights Reserved -
-
-
- -
- - - - 10 - - - - Messages - -
- - -
- {session?.user?.name?.charAt(0) { + const username = Cookies.get("state"); + const picture = Cookies.get("profile_picture"); + return ( + +
+
+
+ COPYRIGHT © {new Date().getFullYear()} Media Hub, All rights + Reserved +
+
+
+ +
+ + + + 10 + + + Messages +
+ + +
+ {username +
+ + +
+ + + + 2 + + + + Notifications + +
+ +
+
+ ); +}; - - /> -
- - -
- - - - 2 - - - - Notifications - -
- -
- -
- ) -} - -export default DashCodeFooter \ No newline at end of file +export default DashCodeFooter; diff --git a/components/partials/header/index.tsx b/components/partials/header/index.tsx index 8f6314a6..08fb8158 100644 --- a/components/partials/header/index.tsx +++ b/components/partials/header/index.tsx @@ -12,7 +12,7 @@ import HorizontalMenu from "./horizontal-menu"; import LocalSwitcher from "./locale-switcher"; import HeaderLogo from "./header-logo"; -const DashCodeHeader = async () => { +const DashCodeHeader = () => { return ( <> diff --git a/components/partials/header/profile-info.tsx b/components/partials/header/profile-info.tsx index 097272f5..1dda5f29 100644 --- a/components/partials/header/profile-info.tsx +++ b/components/partials/header/profile-info.tsx @@ -1,3 +1,4 @@ +"use client"; import { DropdownMenu, DropdownMenuContent, @@ -16,9 +17,15 @@ import { signOut, auth } from "@/lib/auth"; import Image from "next/image"; import { Link } from "@/i18n/routing"; import { Button } from "@/components/ui/button"; +import Cookies from "js-cookie"; +import { useEffect } from "react"; -const ProfileInfo = async () => { - const session = await auth(); +const ProfileInfo = () => { + const username = Cookies.get("state"); + const picture = Cookies.get("profile_picture"); + useEffect(() => { + console.log("us", username); + }, [username]); return (
@@ -26,15 +33,15 @@ const ProfileInfo = async () => {
{session?.user?.name?.charAt(0)
- {session?.user?.name} + {username}
@@ -44,8 +51,8 @@ const ProfileInfo = async () => { {session?.user?.name?.charAt(0) {
- {session?.user?.name} + {username}
- {session?.user?.email} + {username}
diff --git a/components/visualization/dashboard-viz.tsx b/components/visualization/dashboard-viz.tsx new file mode 100644 index 00000000..5eabbf3a --- /dev/null +++ b/components/visualization/dashboard-viz.tsx @@ -0,0 +1,245 @@ +import Cookies from "js-cookie"; +import { useEffect, useState } from "react"; +import { getCookiesDecrypt } from "@/lib/utils"; +import { generateTicket } from "@/service/tableau/tableau-service"; +import { Button } from "../ui/button"; + +export default function DashboardVisualization() { + const levelName = getCookiesDecrypt("ulnae"); + const poldaState = Cookies.get("state"); + + const [ticket1, setTicket1] = useState(""); + const [ticket2, setTicket2] = useState(""); + const [ticket3, setTicket3] = useState(""); + const [isInternational, setIsInternational] = useState([false, false, false]); + const baseUrl = "https://analytic.sitani.info/"; + const url = "https://analytic.sitani.info/trusted/"; + + const view1 = + levelName == "MABES POLRI" + ? isInternational[0] + ? "views/2023_04_MediaHUB-Viz_INTL_Rev202/db-content-monitor?" + : "views/2023_09_MediaHUB-Viz-POLDA-content-monitor_Rev100/db-content-monitor?" + : `views/2023_09_MediaHUB-Viz-ADMIN-POLDA-content-monitor_Rev100/db-content-monitor?provinsi-polda=${poldaState}&`; + + const view2 = + levelName == "MABES POLRI" + ? isInternational[1] + ? "views/2023_04_MediaHUB-Viz_INTL_Rev202/db-content-interaction-konten?" + : "views/2023_04_MediaHUB-Viz-POLDA_Rev201/db-content-interaction-konten?" + : `views/2023_04_MediaHUB-Viz-POLDA_Rev201/db-content-interaction-konten-polda?provinsi-polda=${poldaState}&`; + + const view3 = + levelName == "MABES POLRI" + ? isInternational[2] + ? "views/2023_04_MediaHUB-Viz_INTL_Rev202/db-penugasan?" + : "views/2023_09_db-penugasan_rev100/db-penugasan?" + : `views/2023_04_MediaHUB-Viz-POLDA_Rev201/db-penugasan-polda?provinsi-polda=${poldaState}&`; + + const param = ":embed=yes&:toolbar=yes&:iframeSizedToWindow=true"; + + useEffect(() => { + async function initState() { + const response1 = await generateTicket(); + setTicket1(response1.data?.data); + console.log("response", response1); + const response2 = await generateTicket(); + setTicket2(response2.data?.data); + + const response3 = await generateTicket(); + setTicket3(response3.data?.data); + } + + initState(); + }, [isInternational]); + + const handleInternational = (index: number, val: boolean) => { + const updatedIsInternational = [...isInternational]; + + updatedIsInternational[index] = val; + setIsInternational(updatedIsInternational); + }; + + useEffect(() => { + async function fetchUrl() { + console.log("Fetch tableau"); + const urlView = `${url + ticket1}/${view1}${param}`; + console.log("Fetch tableau ", urlView); + const urlRender = await fetch(urlView) + .then((response) => { + console.log("Tableau res : ", response); + }) + .catch((error) => { + console.log("Tableau error: ", error); + }); + } + + fetchUrl(); + }, [ticket1]); + + return ( +
+

+ + {isInternational[0] + ? "COMMULATION OF USERS, CONTENTS AND INTERACTIONS" + : "KUMULASI PENGGUNA, KONTEN, DAN INTERAKSI"} + +

+ {levelName === "MABES POLRI" ? ( +
+

Pilih Kategory

+
+ + +
+
+ ) : ( + "" + )} +
+ {ticket1 == "" ? ( +