diff --git a/app/[locale]/(protected)/admin/settings/iklan/component/table.tsx b/app/[locale]/(protected)/admin/settings/iklan/component/table.tsx index 48ee4e8c..e588bce4 100644 --- a/app/[locale]/(protected)/admin/settings/iklan/component/table.tsx +++ b/app/[locale]/(protected)/admin/settings/iklan/component/table.tsx @@ -154,8 +154,6 @@ const AdvertisementsList = () => { page - 1, showData, "", - categoryFilter?.sort().join(","), - statusFilter?.sort().join(",") ); const data = res?.data?.data; const contentData = data?.content; diff --git a/app/[locale]/(protected)/contributor/content/audio/components/columns.tsx b/app/[locale]/(protected)/contributor/content/audio/components/columns.tsx index dfa06d24..2bb586f8 100644 --- a/app/[locale]/(protected)/contributor/content/audio/components/columns.tsx +++ b/app/[locale]/(protected)/contributor/content/audio/components/columns.tsx @@ -2,7 +2,7 @@ import * as React from "react"; import { ColumnDef } from "@tanstack/react-table"; import { Eye, MoreVertical, SquarePen, Trash2 } from "lucide-react"; -import { cn } from "@/lib/utils"; +import { cn, getCookiesDecrypt } from "@/lib/utils"; import { DropdownMenu, DropdownMenuContent, @@ -22,6 +22,8 @@ import { useTranslations } from "next-intl"; const useTableColumns = () => { const t = useTranslations("Table"); // Panggil di dalam hook const MySwal = withReactContent(Swal); + const userLevelId = getCookiesDecrypt("ulie"); + const columns: ColumnDef[] = [ { accessorKey: "no", @@ -121,13 +123,24 @@ const useTableColumns = () => { "menunggu review": "bg-orange-100 text-orange-600", }; - const isPublish = row.original.isPublish; - const isPublishOnPolda = row.original.isPublishOnPolda; + const colors = [ + "bg-orange-100 text-orange-600", + "bg-orange-100 text-orange-600", + "bg-green-100 text-green-600", + "bg-blue-100 text-blue-600", + "bg-red-200 text-red-600", + ]; const status = - isPublish || isPublishOnPolda ? "diterima" : "menunggu review"; - - const statusStyles = statusColors[status] || "bg-red-200 text-red-600"; + Number(row.original?.statusId) == 2 && + row.original?.reviewedAtLevel !== null && + !row.original?.reviewedAtLevel?.includes(`:${userLevelId}:`) && + Number(row.original?.creatorGroupLevelId) != Number(userLevelId) + ? "1" + : row.original?.statusId; + const statusStyles = + colors[Number(status)] || "bg-red-200 text-red-600"; + // const statusStyles = statusColors[status] || "bg-red-200 text-red-600"; return ( { statusStyles )} > - {status} + {(Number(row.original?.statusId) == 2 && + !row.original?.reviewedAtLevel !== null && + !row.original?.reviewedAtLevel?.includes( + `:${Number(userLevelId)}:` + ) && + Number(row.original?.creatorGroupLevelId) != + Number(userLevelId)) || + (Number(row.original?.statusId) == 1 && + Number(row.original?.needApprovalFromLevel) == + Number(userLevelId)) + ? "Menunggu Review" + : row.original?.statusName}{" "} ); }, diff --git a/app/[locale]/(protected)/contributor/content/image/components/columns.tsx b/app/[locale]/(protected)/contributor/content/image/components/columns.tsx index 0407251d..32c1b589 100644 --- a/app/[locale]/(protected)/contributor/content/image/components/columns.tsx +++ b/app/[locale]/(protected)/contributor/content/image/components/columns.tsx @@ -3,7 +3,7 @@ import * as React from "react"; import { ColumnDef } from "@tanstack/react-table"; import { Eye, MoreVertical, SquarePen, Trash2 } from "lucide-react"; -import { cn } from "@/lib/utils"; +import { cn, getCookiesDecrypt } from "@/lib/utils"; import { DropdownMenu, DropdownMenuContent, @@ -25,6 +25,8 @@ import { useTranslations } from "next-intl"; const useTableColumns = () => { const t = useTranslations("Table"); // Panggil di dalam hook const MySwal = withReactContent(Swal); + const userLevelId = getCookiesDecrypt("ulie"); + const columns: ColumnDef[] = [ { accessorKey: "no", @@ -125,13 +127,24 @@ const useTableColumns = () => { "menunggu review": "bg-orange-100 text-orange-600", }; - const isPublish = row.original.isPublish; - const isPublishOnPolda = row.original.isPublishOnPolda; + const colors = [ + "bg-orange-100 text-orange-600", + "bg-orange-100 text-orange-600", + "bg-green-100 text-green-600", + "bg-blue-100 text-blue-600", + "bg-red-200 text-red-600", + ]; const status = - isPublish || isPublishOnPolda ? "diterima" : "menunggu review"; - - const statusStyles = statusColors[status] || "bg-red-200 text-red-600"; + Number(row.original?.statusId) == 2 && + row.original?.reviewedAtLevel !== null && + !row.original?.reviewedAtLevel?.includes(`:${userLevelId}:`) && + Number(row.original?.creatorGroupLevelId) != Number(userLevelId) + ? "1" + : row.original?.statusId; + const statusStyles = + colors[Number(status)] || "bg-red-200 text-red-600"; + // const statusStyles = statusColors[status] || "bg-red-200 text-red-600"; return ( { statusStyles )} > - {status} + {(Number(row.original?.statusId) == 2 && + !row.original?.reviewedAtLevel !== null && + !row.original?.reviewedAtLevel?.includes( + `:${Number(userLevelId)}:` + ) && + Number(row.original?.creatorGroupLevelId) != + Number(userLevelId)) || + (Number(row.original?.statusId) == 1 && + Number(row.original?.needApprovalFromLevel) == + Number(userLevelId)) + ? "Menunggu Review" + : row.original?.statusName}{" "} ); }, diff --git a/app/[locale]/(protected)/contributor/content/teks/components/columns.tsx b/app/[locale]/(protected)/contributor/content/teks/components/columns.tsx index 0b802b4f..b1168e53 100644 --- a/app/[locale]/(protected)/contributor/content/teks/components/columns.tsx +++ b/app/[locale]/(protected)/contributor/content/teks/components/columns.tsx @@ -2,7 +2,7 @@ import * as React from "react"; import { ColumnDef } from "@tanstack/react-table"; import { Eye, MoreVertical, SquarePen, Trash2 } from "lucide-react"; -import { cn } from "@/lib/utils"; +import { cn, getCookiesDecrypt } from "@/lib/utils"; import { DropdownMenu, DropdownMenuContent, @@ -22,6 +22,8 @@ import { useTranslations } from "next-intl"; const useTableColumns = () => { const t = useTranslations("Table"); // Panggil di dalam hook const MySwal = withReactContent(Swal); + const userLevelId = getCookiesDecrypt("ulie"); + const columns: ColumnDef[] = [ { accessorKey: "no", @@ -122,13 +124,24 @@ const useTableColumns = () => { "menunggu review": "bg-orange-100 text-orange-600", }; - const isPublish = row.original.isPublish; - const isPublishOnPolda = row.original.isPublishOnPolda; + const colors = [ + "bg-orange-100 text-orange-600", + "bg-orange-100 text-orange-600", + "bg-green-100 text-green-600", + "bg-blue-100 text-blue-600", + "bg-red-200 text-red-600", + ]; const status = - isPublish || isPublishOnPolda ? "diterima" : "menunggu review"; - - const statusStyles = statusColors[status] || "bg-red-200 text-red-600"; + Number(row.original?.statusId) == 2 && + row.original?.reviewedAtLevel !== null && + !row.original?.reviewedAtLevel?.includes(`:${userLevelId}:`) && + Number(row.original?.creatorGroupLevelId) != Number(userLevelId) + ? "1" + : row.original?.statusId; + const statusStyles = + colors[Number(status)] || "bg-red-200 text-red-600"; + // const statusStyles = statusColors[status] || "bg-red-200 text-red-600"; return ( { statusStyles )} > - {status} + {(Number(row.original?.statusId) == 2 && + !row.original?.reviewedAtLevel !== null && + !row.original?.reviewedAtLevel?.includes( + `:${Number(userLevelId)}:` + ) && + Number(row.original?.creatorGroupLevelId) != + Number(userLevelId)) || + (Number(row.original?.statusId) == 1 && + Number(row.original?.needApprovalFromLevel) == + Number(userLevelId)) + ? "Menunggu Review" + : row.original?.statusName}{" "} ); }, diff --git a/app/[locale]/(protected)/contributor/content/video/components/columns.tsx b/app/[locale]/(protected)/contributor/content/video/components/columns.tsx index e15da319..a856bebc 100644 --- a/app/[locale]/(protected)/contributor/content/video/components/columns.tsx +++ b/app/[locale]/(protected)/contributor/content/video/components/columns.tsx @@ -2,7 +2,7 @@ import * as React from "react"; import { ColumnDef } from "@tanstack/react-table"; import { Eye, MoreVertical, SquarePen, Trash2 } from "lucide-react"; -import { cn } from "@/lib/utils"; +import { cn, getCookiesDecrypt } from "@/lib/utils"; import { DropdownMenu, DropdownMenuContent, @@ -22,6 +22,7 @@ import { useTranslations } from "next-intl"; const useTableColumns = () => { const t = useTranslations("Table"); // Panggil di dalam hook const MySwal = withReactContent(Swal); + const userLevelId = getCookiesDecrypt("ulie"); const columns: ColumnDef[] = [ { @@ -123,13 +124,24 @@ const useTableColumns = () => { "menunggu review": "bg-orange-100 text-orange-600", }; - const isPublish = row.original.isPublish; - const isPublishOnPolda = row.original.isPublishOnPolda; + const colors = [ + "bg-orange-100 text-orange-600", + "bg-orange-100 text-orange-600", + "bg-green-100 text-green-600", + "bg-blue-100 text-blue-600", + "bg-red-200 text-red-600", + ]; const status = - isPublish || isPublishOnPolda ? "diterima" : "menunggu review"; - - const statusStyles = statusColors[status] || "bg-red-200 text-red-600"; + Number(row.original?.statusId) == 2 && + row.original?.reviewedAtLevel !== null && + !row.original?.reviewedAtLevel?.includes(`:${userLevelId}:`) && + Number(row.original?.creatorGroupLevelId) != Number(userLevelId) + ? "1" + : row.original?.statusId; + const statusStyles = + colors[Number(status)] || "bg-red-200 text-red-600"; + // const statusStyles = statusColors[status] || "bg-red-200 text-red-600"; return ( { statusStyles )} > - {status} + {(Number(row.original?.statusId) == 2 && + !row.original?.reviewedAtLevel !== null && + !row.original?.reviewedAtLevel?.includes( + `:${Number(userLevelId)}:` + ) && + Number(row.original?.creatorGroupLevelId) != + Number(userLevelId)) || + (Number(row.original?.statusId) == 1 && + Number(row.original?.needApprovalFromLevel) == + Number(userLevelId)) + ? "Menunggu Review" + : row.original?.statusName}{" "} ); }, diff --git a/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/calendar-polri-table.tsx b/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/calendar-polri-table.tsx index bc7254ce..2791eeaf 100644 --- a/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/calendar-polri-table.tsx +++ b/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/calendar-polri-table.tsx @@ -44,7 +44,7 @@ import { useRouter, useSearchParams } from "next/navigation"; import TablePagination from "@/components/table/table-pagination"; import columns from "./columns"; import { - paginationCalendar, + getCalendarPagination, paginationSchedule, } from "@/service/schedule/schedule"; import { CardHeader, CardTitle } from "@/components/ui/card"; @@ -120,10 +120,9 @@ const CalendarPolriTable = () => { async function fetchData() { try { - const res = await paginationCalendar( + const res = await getCalendarPagination( showData, page - 1, - 1, search, statusFilter ); diff --git a/app/[locale]/(protected)/contributor/schedule/live-report/component/columns.tsx b/app/[locale]/(protected)/contributor/schedule/live-report/component/columns.tsx index 1a3a3ae3..329d7e6a 100644 --- a/app/[locale]/(protected)/contributor/schedule/live-report/component/columns.tsx +++ b/app/[locale]/(protected)/contributor/schedule/live-report/component/columns.tsx @@ -13,8 +13,12 @@ import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { Link } from "@/components/navigation"; import { useTranslations } from "next-intl"; +import withReactContent from "sweetalert2-react-content"; +import Swal from "sweetalert2"; +import { deleteSchedule } from "@/service/schedule/schedule"; +import { error } from "@/config/swal"; -const useTableColumns = () => { +const useTableColumns = (props: { selectedTypeSchedule: string }) => { const t = useTranslations("Table"); // Panggil di dalam hook const columns: ColumnDef[] = [ @@ -138,6 +142,33 @@ const useTableColumns = () => { header: t("action"), enableHiding: false, cell: ({ row }) => { + const MySwal = withReactContent(Swal); + + async function doDelete(id: any) { + // loading(); + + const response = await deleteSchedule(id); + + if (response?.error) { + error(response.message); + return false; + } + success(); + } + + function success() { + MySwal.fire({ + title: "Sukses", + icon: "success", + confirmButtonColor: "#3085d6", + confirmButtonText: "OK", + }).then((result) => { + if (result.isConfirmed) { + window.location.reload(); + } + }); + } + return ( @@ -151,7 +182,7 @@ const useTableColumns = () => { @@ -159,14 +190,17 @@ const useTableColumns = () => { Edit - + doDelete(row.original.id)} + className="p-2 border-b text-destructive bg-destructive/30 focus:bg-destructive focus:text-destructive-foreground rounded-none" + > Delete diff --git a/app/[locale]/(protected)/contributor/schedule/live-report/component/live-report-table.tsx b/app/[locale]/(protected)/contributor/schedule/live-report/component/live-report-table.tsx index cbe89c77..73e5c839 100644 --- a/app/[locale]/(protected)/contributor/schedule/live-report/component/live-report-table.tsx +++ b/app/[locale]/(protected)/contributor/schedule/live-report/component/live-report-table.tsx @@ -91,7 +91,7 @@ const LiveReportTable = () => { const [search, setSearch] = React.useState(""); const [statusFilter, setStatusFilter] = React.useState([]); const [selectedType, setSelectedType] = React.useState("1"); - const columns = useTableColumns(); + const columns = useTableColumns({ selectedTypeSchedule: selectedType }); const table = useReactTable({ data: dataTable, columns, @@ -197,11 +197,11 @@ const LiveReportTable = () => { /> -
-
+
+
- @@ -226,12 +226,12 @@ const LiveReportTable = () => {
-
+
-
+
- @@ -287,10 +291,14 @@ const LiveReportTable = () => {
-
+
- diff --git a/app/[locale]/(protected)/contributor/schedule/live-report/detail/[id]/page.tsx b/app/[locale]/(protected)/contributor/schedule/live-report/detail/[id]/page.tsx index 273f3b55..95dbefb2 100644 --- a/app/[locale]/(protected)/contributor/schedule/live-report/detail/[id]/page.tsx +++ b/app/[locale]/(protected)/contributor/schedule/live-report/detail/[id]/page.tsx @@ -1,11 +1,5 @@ "use client"; -import { Card, CardContent } from "@/components/ui/card"; import SiteBreadcrumb from "@/components/site-breadcrumb"; -import FormTask from "@/components/form/task/task-form"; -import FormPressConference from "@/components/form/schedule/press-conference-form"; -import FormDetailPressConference from "@/components/form/schedule/press-conference-detail-form"; -import { useParams } from "next/navigation"; -import { id } from "date-fns/locale"; import FormDetailLiveReport from "@/components/form/schedule/live-report-detail-form"; const LiveReportDetailPage = () => { diff --git a/app/[locale]/(protected)/contributor/schedule/live-report/update/[id]/page.tsx b/app/[locale]/(protected)/contributor/schedule/live-report/update/[id]/page.tsx index 109a315f..b62ec487 100644 --- a/app/[locale]/(protected)/contributor/schedule/live-report/update/[id]/page.tsx +++ b/app/[locale]/(protected)/contributor/schedule/live-report/update/[id]/page.tsx @@ -1,12 +1,5 @@ "use client"; -import { Card, CardContent } from "@/components/ui/card"; import SiteBreadcrumb from "@/components/site-breadcrumb"; -import FormTask from "@/components/form/task/task-form"; -import FormPressConference from "@/components/form/schedule/press-conference-form"; -import FormDetailPressConference from "@/components/form/schedule/press-conference-detail-form"; -import { useParams } from "next/navigation"; -import { id } from "date-fns/locale"; -import FormUpdatePressConference from "@/components/form/schedule/press-conference-update-form"; import FormUpdateLiveReport from "@/components/form/schedule/live-report-update-form"; const LiveReportUpdatePage = () => { diff --git a/app/[locale]/(protected)/contributor/task-ta/components/columns.tsx b/app/[locale]/(protected)/contributor/task-ta/components/columns.tsx index 7397b64c..0213be3c 100644 --- a/app/[locale]/(protected)/contributor/task-ta/components/columns.tsx +++ b/app/[locale]/(protected)/contributor/task-ta/components/columns.tsx @@ -159,7 +159,7 @@ const useTableColumns = () => { - {roleId == 11 && ( + {(roleId == 11 || roleId == 12) && ( diff --git a/app/[locale]/(protected)/contributor/task-ta/components/task-ta-table.tsx b/app/[locale]/(protected)/contributor/task-ta/components/task-ta-table.tsx index f2815af2..4f5cddb7 100644 --- a/app/[locale]/(protected)/contributor/task-ta/components/task-ta-table.tsx +++ b/app/[locale]/(protected)/contributor/task-ta/components/task-ta-table.tsx @@ -73,7 +73,7 @@ const TaskTaTable = () => { const [columnVisibility, setColumnVisibility] = React.useState({}); const [rowSelection, setRowSelection] = React.useState({}); - const [showData, setShowData] = React.useState("50"); + const [showData, setShowData] = React.useState("10"); const [pagination, setPagination] = React.useState({ pageIndex: 0, pageSize: Number(showData), diff --git a/app/[locale]/(protected)/dashboard/routine-task/components/columns.tsx b/app/[locale]/(protected)/dashboard/routine-task/components/columns.tsx index 61cbd6c9..4ccafa03 100644 --- a/app/[locale]/(protected)/dashboard/routine-task/components/columns.tsx +++ b/app/[locale]/(protected)/dashboard/routine-task/components/columns.tsx @@ -2,7 +2,7 @@ import * as React from "react"; import { ColumnDef } from "@tanstack/react-table"; import { Eye, MoreVertical, SquarePen, Trash2 } from "lucide-react"; -import { cn } from "@/lib/utils"; +import { cn, getCookiesDecrypt } from "@/lib/utils"; import { DropdownMenu, DropdownMenuContent, @@ -13,6 +13,8 @@ import { Button } from "@/components/ui/button"; import { format } from "date-fns"; import { Link } from "@/i18n/routing"; +const userLevelId = getCookiesDecrypt("ulie"); + const columns: ColumnDef[] = [ { accessorKey: "no", @@ -120,9 +122,27 @@ const columns: ColumnDef[] = [ Ditolak: "text-red-500 border-red-500", }; + const colors = [ + "text-orange-500 border-orange-500", + "text-orange-500 border-orange-500", + "text-green-500 border-green-500", + "text-blue-500 border-blue-500", + "text-red-500 border-red-500", + ]; + + const status = + Number(row.original?.statusId) == 2 && + row.original?.reviewedAtLevel !== null && + !row.original?.reviewedAtLevel?.includes(`:${userLevelId}:`) && + Number(row.original?.creatorGroupLevelId) != Number(userLevelId) + ? "1" + : row.original?.statusId; + // Mendapatkan kelas warna dari mapping, default ke abu-abu jika tidak ditemukan const buttonClass = - colorMapping[statusName] || "text-gray-500 border-gray-500"; + colors[Number(status)] || "text-gray-500 border-gray-500"; + // const buttonClass = + // colorMapping[statusName] || "text-gray-500 border-gray-500"; return (
@@ -131,7 +151,18 @@ const columns: ColumnDef[] = [ variant="outline" className={`btn btn-sm pill-btn ml-1 ${buttonClass}`} > - {statusName || "Tidak Diketahui"} + {(Number(row.original?.statusId) == 2 && + !row.original?.reviewedAtLevel !== null && + !row.original?.reviewedAtLevel?.includes( + `:${Number(userLevelId)}:` + ) && + Number(row.original?.creatorGroupLevelId) != + Number(userLevelId)) || + (Number(row.original?.statusId) == 1 && + Number(row.original?.needApprovalFromLevel) == + Number(userLevelId)) + ? "Menunggu Review" + : row.original?.statusName}{" "}
); diff --git a/app/[locale]/(public)/content-management/download/page.tsx b/app/[locale]/(public)/content-management/download/page.tsx index 0d4876e4..a99cf83d 100644 --- a/app/[locale]/(public)/content-management/download/page.tsx +++ b/app/[locale]/(public)/content-management/download/page.tsx @@ -1,7 +1,13 @@ "use client"; import { close, error, loading, successCallback } from "@/config/swal"; -import { checkWishlistStatus, deleteWishlist, getInfoProfile, mediaWishlist, saveWishlist } from "@/service/landing/landing"; +import { + checkWishlistStatus, + deleteWishlist, + getInfoProfile, + mediaWishlist, + saveWishlist, +} from "@/service/landing/landing"; import React, { useEffect, useState } from "react"; import { Link, useRouter } from "@/i18n/routing"; import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"; @@ -13,7 +19,11 @@ import withReactContent from "sweetalert2-react-content"; import { getCookiesDecrypt } from "@/lib/utils"; import Swal from "sweetalert2"; import { Icon } from "@iconify/react/dist/iconify.js"; -import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"; +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import { sendMediaUploadToEmail } from "@/service/media-tracking/media-tracking"; @@ -59,11 +69,23 @@ const Galery = (props: any) => { }, [page, category, title]); async function getDataVideo() { - const filter = categoryFilter?.length > 0 ? categoryFilter?.sort().join(",") : category || ""; + const filter = + categoryFilter?.length > 0 + ? categoryFilter?.sort().join(",") + : category || ""; const name = title == undefined ? "" : title; const format = formatFilter == undefined ? "" : formatFilter?.join(","); - const response = await mediaWishlist("2", isInstitute ? instituteId : "", name, filter, "9", pages, sortBy, format); + const response = await mediaWishlist( + "2", + isInstitute ? instituteId : "", + name, + filter, + "9", + pages, + sortBy, + format + ); setGetTotalPage(response?.data?.data?.totalPages); setContentVideo(response?.data?.data?.content); @@ -92,12 +114,24 @@ const Galery = (props: any) => { }, [page, category, title]); async function getDataDocument() { - const filter = categoryFilter?.length > 0 ? categoryFilter?.sort().join(",") : category || ""; + const filter = + categoryFilter?.length > 0 + ? categoryFilter?.sort().join(",") + : category || ""; const name = title == undefined ? "" : title; const format = formatFilter == undefined ? "" : formatFilter?.join(","); - const response = await mediaWishlist("3", isInstitute ? instituteId : "", name, filter, "12", pages, sortBy, format); + const response = await mediaWishlist( + "3", + isInstitute ? instituteId : "", + name, + filter, + "12", + pages, + sortBy, + format + ); setGetTotalPage(response?.data?.data?.totalPages); setContentDocument(response?.data?.data?.content); @@ -117,12 +151,24 @@ const Galery = (props: any) => { }, [change, refresh]); async function getDataAudio() { - const filter = categoryFilter?.length > 0 ? categoryFilter?.sort().join(",") : category || ""; + const filter = + categoryFilter?.length > 0 + ? categoryFilter?.sort().join(",") + : category || ""; const name = title == undefined ? "" : title; const format = formatFilter == undefined ? "" : formatFilter?.join(","); - const response = await mediaWishlist("4", isInstitute ? instituteId : "", name, filter, "6", pages, sortBy, format); + const response = await mediaWishlist( + "4", + isInstitute ? instituteId : "", + name, + filter, + "6", + pages, + sortBy, + format + ); setGetTotalPage(response?.data?.data?.totalPages); setContentAudio(response?.data?.data?.content); @@ -138,12 +184,24 @@ const Galery = (props: any) => { }, [page, category, title, refresh]); async function getDataImage() { - const filter = categoryFilter?.length > 0 ? categoryFilter?.sort().join(",") : category || ""; + const filter = + categoryFilter?.length > 0 + ? categoryFilter?.sort().join(",") + : category || ""; const name = title == undefined ? "" : title; const format = formatFilter == undefined ? "" : formatFilter?.join(","); - const response = await mediaWishlist("1", isInstitute ? instituteId : "", name, filter, "12", pages, sortBy, format); + const response = await mediaWishlist( + "1", + isInstitute ? instituteId : "", + name, + filter, + "12", + pages, + sortBy, + format + ); setGetTotalPage(response?.data?.data?.totalPages); setContentImage(response?.data?.data?.content); @@ -225,7 +283,9 @@ const Galery = (props: any) => { }; const copyToClip = async (url: any) => { - await navigator.clipboard.writeText(`https://mediahub.polri.go.id/video/detail/${url}`); + await navigator.clipboard.writeText( + `https://mediahub.polri.go.id/video/detail/${url}` + ); setCopySuccess("Copied"); // toast.success("Link Berhasil Di Copy"); }; @@ -283,7 +343,7 @@ const Galery = (props: any) => {
-
+

{/* Galeri Saya */} @@ -308,21 +368,27 @@ const Galery = (props: any) => { > {t("image")} -
|
+
+ | +
{t("video")} -
|
+
+ | +
{t("text")} -
|
+
+ | +
{ contentVideo?.length > 0 ? (
{contentVideo?.map((video: any) => ( - +
- -
- -

{video?.mediaUpload?.title}

+ +
+ +

+ {video?.mediaUpload?.title} +

-

+

- + - + -

handleSaveWishlist(video?.mediaUpload?.id)} className="cursor-pointer flex flex-row gap-2 hover:text-red-800"> - -

{t("save")}

-
- + {/*

Content Rewrite

- + */}
-

{t("shareTo")}

+

+ {t("shareTo")} +

-

{t("destinationEmail")}

- setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter")} /> +

+ {t("destinationEmail")} +

+ + setEmailShareInput( + event.target.value + ) + } + onKeyPress={handleEmailList} + type="email" + placeholder={t( + "pressEnter" + )} + />
-
+
+ handleDelete(video?.id) + } + className="cursor-pointer flex flex-row gap-2 hover:text-red-800" + > + +

+ {t("delete")} +

+

@@ -399,16 +521,31 @@ const Galery = (props: any) => {
) : (

- empty + empty

) ) : selectedTab == "audio" ? ( contentAudio?.length > 0 ? (
{contentAudio?.map((audio: any) => ( -
+
- + {
- -
{audio?.mediaUpload?.title}
+ +
+ {audio?.mediaUpload?.title} +
@@ -425,9 +566,20 @@ const Galery = (props: any) => {
- # -
{audio?.mediaUpload?.duration}
- + # +
+ {audio?.mediaUpload?.duration} +
+ {
- + - + -
handleSaveWishlist(audio?.mediaUpload?.id)} className="cursor-pointer flex flex-row gap-2 hover:text-red-800"> - -

{t("save")}

-
- - -

Content Rewrite

- + {/* + +

Content Rewrite

+ */}

{t("shareTo")}

-

{t("destinationEmail")}

- setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter")} /> +

+ {t("destinationEmail")} +

+ + setEmailShareInput(event.target.value) + } + onKeyPress={handleEmailList} + type="email" + placeholder={t("pressEnter")} + />
-
+
handleDelete(audio?.id)} + className="cursor-pointer flex flex-row gap-2 hover:text-red-800" + > + +

+ {t("delete")} +

+
@@ -479,61 +658,123 @@ const Galery = (props: any) => {
) : (

- empty + empty

) ) : selectedTab == "image" ? ( contentImage?.length > 0 ? (
{contentImage?.map((image: any) => ( - +
- -
- -

{image?.mediaUpload?.title}

+ +
+ +

+ {image?.mediaUpload?.title} +

-

+

- + - + -

handleSaveWishlist(image?.mediaUpload?.id)} className="cursor-pointer flex flex-row gap-2 hover:text-red-800"> - -

{t("save")}

-
- + {/*

Content Rewrite

- + */}
-

{t("shareTo")}

+

+ {t("shareTo")} +

-

{t("destinationEmail")}

- setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter")} /> +

+ {t("destinationEmail")} +

+ + setEmailShareInput( + event.target.value + ) + } + onKeyPress={handleEmailList} + type="email" + placeholder={t( + "pressEnter" + )} + />
-
+
+ handleDelete(image?.id) + } + className="cursor-pointer flex flex-row gap-2 hover:text-red-800" + > + +

+ {t("delete")} +

+

@@ -547,15 +788,30 @@ const Galery = (props: any) => {
) : (

- empty + empty

) ) : contentDocument.length > 0 ? (
{contentDocument?.map((document: any) => ( -
+
- + {
- + {document?.mediaUpload?.title}
- - + + Download {t("document")}
- - - + + + -
handleSaveWishlist(document?.mediaUpload?.id)} className="cursor-pointer flex flex-row gap-2 hover:text-red-800"> - -

{t("save")}

-
- - -

Content Rewrite

- + {/* + +

Content Rewrite

+ */}
-

{t("shareTo")}

-

{t("destinationEmail")}

- setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter")} /> +

+ {t("destinationEmail")} +

+ + setEmailShareInput(event.target.value) + } + onKeyPress={handleEmailList} + type="email" + placeholder={t("pressEnter")} + />
-
+
handleDelete(document?.id)} + className="cursor-pointer flex flex-row gap-2 hover:text-red-800" + > + +

+ {t("delete")} +

+
@@ -618,7 +909,13 @@ const Galery = (props: any) => {
) : (

- empty + empty

)}
diff --git a/app/[locale]/(public)/content-management/galery/page.tsx b/app/[locale]/(public)/content-management/galery/page.tsx index 05b566ba..f261d8c3 100644 --- a/app/[locale]/(public)/content-management/galery/page.tsx +++ b/app/[locale]/(public)/content-management/galery/page.tsx @@ -288,7 +288,7 @@ const Galery = (props: any) => {
-
+

{t("gallery")} {profile?.institute?.name} @@ -337,14 +337,14 @@ const Galery = (props: any) => {
-
+

{video?.mediaUpload?.title}

-

+

- + @@ -483,11 +483,11 @@ const Galery = (props: any) => {

-
+

{image?.mediaUpload?.title}

-

+

diff --git a/app/[locale]/(public)/content-management/rewrite/create/[id]/page.tsx b/app/[locale]/(public)/content-management/rewrite/create/[id]/page.tsx index 9900b1ba..c74aa695 100644 --- a/app/[locale]/(public)/content-management/rewrite/create/[id]/page.tsx +++ b/app/[locale]/(public)/content-management/rewrite/create/[id]/page.tsx @@ -20,7 +20,6 @@ import { import { Controller, useForm } from "react-hook-form"; import * as z from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; -import CustomEditor from "@/components/editor/custom-editor"; import { generateDataArticle, generateDataRewrite, @@ -37,6 +36,7 @@ import Cookies from "js-cookie"; import { Input } from "@/components/ui/input"; import { Textarea } from "@/components/ui/textarea"; import { useTranslations } from "next-intl"; +import dynamic from "next/dynamic"; const imageSchema = z.object({ title: z.string().min(1, { message: "Judul diperlukan" }), @@ -51,6 +51,12 @@ const imageSchema = z.object({ creatorName: z.string().min(1, { message: "Creator diperlukan" }), // tags: z.string().min(1, { message: "Judul diperlukan" }), }); +const CustomEditor = dynamic( + () => { + return import("@/components/editor/custom-editor"); + }, + { ssr: false } +); const page = (props: any) => { const { states } = props; @@ -90,9 +96,6 @@ const page = (props: any) => { const validationSchema = Yup.object().shape({ title: Yup.string().required("Judul tidak boleh kosong"), mainKeyword: Yup.string().required("Keyword tidak boleh kosong"), - seo: Yup.string().required( - "Tuliskan kata kunci atau frasa yang relevan dengan blog Anda, lalu tekan enter" - ), description: Yup.string().required( "Narasi Penugasan harus lebih dari 2 karakter." ), @@ -172,6 +175,7 @@ const page = (props: any) => { useEffect(() => { async function initState() { + loading(); setLoadingState(true); const response = await getDetail( id, @@ -187,7 +191,7 @@ const page = (props: any) => { if (componentMounted) { setValue("title", response?.data?.data?.title); setValue("mainKeyword", response?.data?.data?.title); - setValue("seo", response?.data?.data?.description); + setValue("description", response?.data?.data?.htmlDescription); setContent(response?.data?.data); setIsFromSPIT(response?.data?.data?.isFromSPIT); setListSuggestion(responseGet?.data?.data); @@ -221,6 +225,7 @@ const page = (props: any) => { setLoadingState(false); // (2) write some value to state // await new Promise(resolve => setTimeout(resolve, 1000)); // 2 sec // setIdm(); + close(); } return () => { @@ -235,7 +240,7 @@ const page = (props: any) => { const handleGenerateArtikel = async () => { loading(); const request = { - style: "friendly", + style: "Professional", lang: "id", contextType: "text", urlContext: null, @@ -295,12 +300,13 @@ const page = (props: any) => { /]*>/g, "" ); - console.log("lalalala", cleanArticleBody); + console.log("lalalala", articleData); const articleImagesData = articleData?.imagesUrl?.split(","); setValue("description", cleanArticleBody || ""); setArticleBody(cleanArticleBody || ""); setDetailArticle(articleData); - setSelectedArticleId(id); + // setSelectedArticleId(id); + console.log("idnya", id); setArticleImages(articleImagesData || []); } catch (error) { console.error("Error fetching article details:", error); @@ -454,18 +460,22 @@ const page = (props: any) => { />

-

SEO

+

Deskripsi

( -