diff --git a/app/[locale]/(protected)/admin/add-experts/create/page.tsx b/app/[locale]/(protected)/admin/add-experts/create/page.tsx index ca70af09..dfa67b06 100644 --- a/app/[locale]/(protected)/admin/add-experts/create/page.tsx +++ b/app/[locale]/(protected)/admin/add-experts/create/page.tsx @@ -299,6 +299,18 @@ export default function AddExpertForm() { )} /> + + { const router = useRouter(); @@ -129,7 +130,7 @@ const ContentListPopUp = () => { async function fetchData() { try { loading(); - const res = await listDataMedia( + const res = await listDataPopUp( page - 1, showData, "", @@ -203,7 +204,7 @@ const ContentListPopUp = () => { const handleBanner = async (ids: number[]) => { try { - await Promise.all(ids.map((id) => setBanner(id, true))); + await Promise.all(ids.map((id) => setPopUp(id, true))); toast({ title: "Sukses", description: `${ids.length} item berhasil dijadikan banner.`, @@ -369,7 +370,7 @@ const ContentListPopUp = () => { {selectedItems.length > 0 && ( )} @@ -398,10 +399,15 @@ const ContentListPopUp = () => { ))} -
-
- 1 -
+
+ {data && data?.length > 0 ? ( + setPage(data)} + /> + ) : ( +

No Data

+ )}
diff --git a/components/landing-page/hero-new.tsx b/components/landing-page/hero-new.tsx index 0dc3aba5..64d4c7d8 100644 --- a/components/landing-page/hero-new.tsx +++ b/components/landing-page/hero-new.tsx @@ -2,7 +2,11 @@ import { formatDateToIndonesian, shimmer, toBase64 } from "@/utils/globals"; import React, { useEffect, useRef, useState } from "react"; import "swiper/css/bundle"; import "swiper/css/navigation"; -import { getHeroData, listStaticBanner } from "@/service/landing/landing"; +import { + getHeroData, + listPopUp, + listStaticBanner, +} from "@/service/landing/landing"; import Link from "next/link"; import { useParams, usePathname, useRouter } from "next/navigation"; import { @@ -93,7 +97,7 @@ const HeroModal = ({ }, []); const initFetch = async () => { - const response = await listStaticBanner( + const response = await listPopUp( group === "mabes" ? "" : group === "polda" && poldaName && String(poldaName)?.length > 1 @@ -101,21 +105,15 @@ const HeroModal = ({ : group === "satker" && satkerName && String(satkerName)?.length > 1 ? "satker-" + satkerName : "", - locale == "en" + locale == "en" ); - const banners = - response?.data?.data?.map((item: any) => { - const media = item?.mediaUpload; - if (media?.fileType) { - media.fileTypeId = media.fileType.id; - } - return media; - }) || []; + const banners = response?.data?.data || []; console.log("banner Modal", banners); setHeroData(banners); }; + return (
@@ -311,7 +309,7 @@ const HeroNew = (props: { group?: string }) => { String(satkerName)?.length > 1 ? "satker-" + satkerName : "", - locale == "en" + locale == "en" ); for (let i = 0; i < resStatic?.data?.data?.length; i++) { const media = resStatic?.data.data[i]?.mediaUpload; diff --git a/components/partials/auth/login-form.tsx b/components/partials/auth/login-form.tsx index 532d0cf8..1d68e8f5 100644 --- a/components/partials/auth/login-form.tsx +++ b/components/partials/auth/login-form.tsx @@ -535,10 +535,10 @@ const LoginForm = () => {
diff --git a/lib/menus.ts b/lib/menus.ts index 104997ab..0ef6beb6 100644 --- a/lib/menus.ts +++ b/lib/menus.ts @@ -2383,11 +2383,231 @@ export function getMenuList(pathname: string, t: any): Group[] { }, ]; } + } else if (Number(roleId) == 4 && Number(levelNumber) == 3) { + menusSelected = [ + { + groupLabel: t("apps"), + id: "dashboard", + menus: [ + { + id: "dashboard", + href: "/dashboard", + label: t("dashboard"), + active: pathname.includes("/dashboard"), + icon: "material-symbols:dashboard", + submenus: [], + }, + ], + }, + { + groupLabel: "", + id: "content", + menus: [ + { + id: "content", + href: "/contributor/content/image", + label: t("content"), + active: pathname.includes("/content"), + icon: "line-md:youtube", + submenus: [ + { + href: "/contributor/content/image", + label: t("image"), + active: pathname.includes("/content/image"), + icon: "ic:outline-image", + children: [], + }, + { + href: "/contributor/content/video", + label: t("video"), + active: pathname.includes("/content/video"), + icon: "line-md:youtube", + children: [], + }, + { + href: "/contributor/content/teks", + label: t("text"), + active: pathname.includes("/content/teks"), + icon: "heroicons:document", + children: [], + }, + { + href: "/contributor/content/audio", + label: t("audio"), + active: pathname.includes("/content/audio"), + icon: "heroicons:share", + children: [], + }, + // { + // href: "/contributor/content/spit", + // label: "spit", + // active: pathname.includes("/content/spit"), + // icon: "heroicons:credit-card", + // children: [], + // }, + // { + // href: "/contributor/content/nulis-ai", + // label: "nulis ai", + // active: pathname.includes("/content/nulisai"), + // icon: "heroicons:credit-card", + // children: [], + // }, + ], + }, + ], + }, + { + groupLabel: "", + id: "agenda-setting", + menus: [ + { + id: "agenda-setting", + href: "/contributor/agenda-setting", + label: t("agenda-setting"), + active: pathname.includes("/agenda-setting"), + icon: "iconoir:journal-page", + submenus: [], + }, + ], + }, + { + groupLabel: "", + id: "planning", + menus: [ + { + id: "planning", + href: "/contributor/planning", + label: t("planning"), + active: pathname.includes("/planning"), + icon: "pajamas:planning", + submenus: [ + { + href: "/contributor/planning/mediahub", + label: "mediaHub", + active: pathname.includes("/planning/mediahub"), + icon: "heroicons:arrow-trending-up", + children: [], + }, + { + href: "/contributor/planning/medsos-mediahub", + label: "medsos mediahub", + active: pathname.includes("/planning/medsos-mediahub"), + icon: "heroicons:shopping-cart", + children: [], + }, + ], + }, + ], + }, + { + groupLabel: "", + id: "task", + menus: [ + { + id: "task", + href: "/contributor/task", + label: t("task"), + active: pathname.includes("/task"), + icon: "fluent:clipboard-task-add-24-regular", + submenus: [], + }, + ], + }, + { + groupLabel: "", + id: "schedule", + menus: [ + { + id: "schedule", + href: "/contributor/schedule", + label: t("schedule"), + active: pathname.includes("/schedule"), + icon: "uil:schedule", + submenus: [ + { + href: "/contributor/schedule/press-conference", + label: t("press-conference"), + active: pathname.includes("/schedule/press-conference"), + icon: "heroicons:arrow-trending-up", + children: [], + }, + { + href: "/contributor/schedule/event", + label: t("event"), + active: pathname.includes("/schedule/event"), + icon: "heroicons:shopping-cart", + children: [], + }, + { + href: "/contributor/schedule/press-release", + label: t("press-release"), + active: pathname.includes("/schedule/press-release"), + icon: "heroicons:shopping-cart", + children: [], + }, + ], + }, + ], + }, + { + groupLabel: "", + id: "blog", + menus: [ + { + id: "blog", + href: "/contributor/blog", + label: t("blog"), + active: pathname.includes("/blog"), + icon: "fluent:clipboard-text-32-regular", + submenus: [], + }, + ], + }, + { + groupLabel: "", + id: "curatedcontent", + menus: [ + { + id: "curatedcontent", + href: "/shared/curated-content", + label: t("curated-content"), + active: pathname.includes("/curated-content"), + icon: "pixelarticons:calendar-text", + submenus: [], + }, + ], + }, + { + groupLabel: "", + id: "communication", + menus: [ + { + id: "communication", + href: "/shared/communication", + label: t("communication"), + active: pathname.includes("/communication"), + icon: "token:chat", + submenus: [], + }, + ], + }, + { + groupLabel: "", + id: "contest", + menus: [ + { + id: "contest", + href: "/shared/contest", + label: t("contest"), + active: pathname.includes("/contest"), + icon: "ic:outline-emoji-events", + submenus: [], + }, + ], + }, + ]; } else if ( - (Number(roleId) == 3 || - Number(roleId) == 4 || - Number(roleId) == 14 || - Number(roleId) == 15) && + (Number(roleId) == 3 || Number(roleId) == 14 || Number(roleId) == 15) && Number(levelNumber) == 3 ) { if (Number(userParentLevelId) != 761) { diff --git a/service/broadcast/broadcast.ts b/service/broadcast/broadcast.ts index 745c124e..ffc82665 100644 --- a/service/broadcast/broadcast.ts +++ b/service/broadcast/broadcast.ts @@ -19,7 +19,7 @@ export async function listDataMedia( export async function listDataAdvertisements( page: number, limit: string, - search: string, + search: string ) { const name = search || ""; const url = `advertisements/pagination?title=${search}&enablePage=1&sortBy=createdAt&sort=desc&size=${limit}&page=${page}`; @@ -99,3 +99,15 @@ export async function saveMediaBlastBroadcast(data: any) { const url = `media/blast/broadcast`; return httpPostInterceptor(url, data); } + +export async function listDataPopUp( + page: number, + limit: string, + search: string, + categoryFilter: string, + statusFilter: string +) { + const name = search || ""; + const url = `media/interstitial/pagination?isForAdmin=true&title=${name}&enablePage=1&sortBy=createdAt&sort=desc&size=${limit}&page=${page}&typeId=1&categoryId=${categoryFilter}&statusId=${statusFilter}`; + return httpGetInterceptor(url); +} diff --git a/service/landing/landing.ts b/service/landing/landing.ts index b32ea0a3..d8e798e6 100644 --- a/service/landing/landing.ts +++ b/service/landing/landing.ts @@ -45,6 +45,11 @@ export async function listStaticBanner( return httpGetInterceptor(url); } +export async function listPopUp(group: any = "", isInt: Boolean = false) { + const url = `media/public/interstitial?group=${group}&isInt=${isInt}`; + return httpGetInterceptor(url); +} + export async function getPublicCategoryData( group: any = "", type: string = "", diff --git a/service/settings/settings.ts b/service/settings/settings.ts index 2535902c..71e31f61 100644 --- a/service/settings/settings.ts +++ b/service/settings/settings.ts @@ -147,3 +147,8 @@ export async function deleteAdvertisements(id: string | number) { const url = `advertisements?id=${id}`; return httpDeleteInterceptor(url); } + +export async function setPopUp(id: number, status: boolean) { + const url = `media/interstitial?id=${id}&status=${status}`; + return httpPostInterceptor(url); +}