feat: merge main

This commit is contained in:
Anang Yusman 2024-12-16 08:28:53 +07:00
commit da65c0f542
156 changed files with 938 additions and 833 deletions

View File

@ -112,7 +112,7 @@ const EventModal = ({
confirmButtonColor: "#3085d6", confirmButtonColor: "#3085d6",
confirmButtonText: "OK", confirmButtonText: "OK",
}).then(() => { }).then(() => {
router.push("/en/agenda-setting"); router.push("/contributor/agenda-setting");
}); });
}; };

View File

@ -139,7 +139,7 @@ const columns: ColumnDef<any>[] = [
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent className="p-0" align="end"> <DropdownMenuContent className="p-0" align="end">
<a href="/en/task/detail/[id]"> <a href="/contributor/task/detail/[id]">
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none"> <DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
<Eye className="w-4 h-4 me-1.5" /> <Eye className="w-4 h-4 me-1.5" />
View View

View File

@ -5,7 +5,6 @@ import { Link, UploadIcon } from "lucide-react";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { Icon } from "@iconify/react/dist/iconify.js"; import { Icon } from "@iconify/react/dist/iconify.js";
import TableAudio from "./components/table-audio"; import TableAudio from "./components/table-audio";
import TableVideo from "../audio-visual/components/table-video";
const ReactTableAudioPage = () => { const ReactTableAudioPage = () => {
return ( return (

View File

@ -139,7 +139,7 @@ const columns: ColumnDef<any>[] = [
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent className="p-0" align="end"> <DropdownMenuContent className="p-0" align="end">
<a href="/en/task/detail/[id]"> <a href="/contributor/task/detail/[id]">
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none"> <DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
<Eye className="w-4 h-4 me-1.5" /> <Eye className="w-4 h-4 me-1.5" />
View View

View File

@ -6,7 +6,6 @@ import { UploadIcon } from "lucide-react";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { Icon } from "@iconify/react/dist/iconify.js"; import { Icon } from "@iconify/react/dist/iconify.js";
import { Link } from "@/components/navigation"; import { Link } from "@/components/navigation";
import TicketingTable from "../../ticketing/components/table";
const ReactTableImagePage = () => { const ReactTableImagePage = () => {
return ( return (
@ -58,7 +57,7 @@ const ReactTableImagePage = () => {
Konten Foto Konten Foto
</div> </div>
<div className="flex-none"> <div className="flex-none">
<Link href={"/content/image/create"}> <Link href={"/contributor/content/image/create"}>
<Button color="primary" className="text-white"> <Button color="primary" className="text-white">
<UploadIcon /> <UploadIcon />
Unggah Foto Unggah Foto

View File

@ -88,7 +88,7 @@ const columns: ColumnDef<any>[] = [
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent className="p-0" align="end"> <DropdownMenuContent className="p-0" align="end">
<a href="/en/task/detail/[id]"> <a href="/contributor/task/detail/[id]">
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none"> <DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
<Eye className="w-4 h-4 me-1.5" /> <Eye className="w-4 h-4 me-1.5" />
View View

View File

@ -177,7 +177,7 @@ const columns: ColumnDef<CompanyData>[] = [
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent className="p-0" align="end"> <DropdownMenuContent className="p-0" align="end">
<a href="/en/task/detail/[id]"> <a href="/contributor/task/detail/[id]">
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none"> <DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
<Eye className="w-4 h-4 me-1.5" /> <Eye className="w-4 h-4 me-1.5" />
View View

View File

@ -139,7 +139,7 @@ const columns: ColumnDef<any>[] = [
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent className="p-0" align="end"> <DropdownMenuContent className="p-0" align="end">
<a href="/en/task/detail/[id]"> <a href="/contributor/task/detail/[id]">
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none"> <DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
<Eye className="w-4 h-4 me-1.5" /> <Eye className="w-4 h-4 me-1.5" />
View View

View File

@ -139,7 +139,7 @@ const columns: ColumnDef<any>[] = [
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent className="p-0" align="end"> <DropdownMenuContent className="p-0" align="end">
<a href="/en/task/detail/[id]"> <a href="/contributor/task/detail/[id]">
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none"> <DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
<Eye className="w-4 h-4 me-1.5" /> <Eye className="w-4 h-4 me-1.5" />
View View

View File

@ -58,7 +58,7 @@ const ReactTableVideoPage = () => {
Konten Video Konten Video
</div> </div>
<div className="flex-none"> <div className="flex-none">
<Link href={"/content/audio-visual/create"}> <Link href={"/contributor/content/audio-visual/create"}>
<Button color="primary" className="text-white"> <Button color="primary" className="text-white">
<UploadIcon /> <UploadIcon />
Unggah Video Unggah Video

View File

@ -4,7 +4,6 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { UploadIcon } from "lucide-react"; import { UploadIcon } from "lucide-react";
import TaskTable from "../../task/components/task-table"; import TaskTable from "../../task/components/task-table";
import MediahubTable from "./components/mediahub-table"; import MediahubTable from "./components/mediahub-table";
import TicketingTable from "../../ticketing/components/table";
const MediahubPage = async () => { const MediahubPage = async () => {
return ( return (

View File

@ -1,7 +1,6 @@
import SiteBreadcrumb from "@/components/site-breadcrumb"; import SiteBreadcrumb from "@/components/site-breadcrumb";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import MedsosTable from "./components/medsos-table"; import MedsosTable from "./components/medsos-table";
import TicketingTable from "../../ticketing/components/table";
const MedsosMediahubPage = async () => { const MedsosMediahubPage = async () => {
return ( return (

View File

@ -5,7 +5,6 @@ import { UploadIcon } from "lucide-react";
import PressConferenceTable from "../press-conference/components/presscon-table"; import PressConferenceTable from "../press-conference/components/presscon-table";
import EventTable from "./components/event-table"; import EventTable from "./components/event-table";
import { Link } from "@/components/navigation"; import { Link } from "@/components/navigation";
import TicketingTable from "../../ticketing/components/table";
const EventPage = async () => { const EventPage = async () => {
return ( return (
@ -20,7 +19,7 @@ const EventPage = async () => {
Jadwal Event Jadwal Event
</div> </div>
<div className="flex-none"> <div className="flex-none">
<Link href={"/schedule/event/create"}> <Link href={"/contributor/schedule/event/create"}>
<Button color="primary" className="text-white"> <Button color="primary" className="text-white">
<UploadIcon /> <UploadIcon />
Buat Jadwal Buat Jadwal

View File

@ -139,7 +139,7 @@ const columns: ColumnDef<any>[] = [
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent className="p-0" align="end"> <DropdownMenuContent className="p-0" align="end">
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none"> <DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
<Link href={`/schedule/press-conference/detail/${row.id}`}> <Link href={`/contributor/schedule/press-conference/detail/${row.id}`}>
<Eye className="w-4 h-4 me-1.5" /> <Eye className="w-4 h-4 me-1.5" />
Detail Detail
</Link> </Link>

View File

@ -3,7 +3,7 @@ import SiteBreadcrumb from "@/components/site-breadcrumb";
import FormTask from "@/components/form/task/task-form"; import FormTask from "@/components/form/task/task-form";
import FormPressConference from "@/components/form/schedule/press-conference-form"; import FormPressConference from "@/components/form/schedule/press-conference-form";
const PressConCreatePage = async () => { const PressConCreatePage = () => {
return ( return (
<div> <div>
<SiteBreadcrumb /> <SiteBreadcrumb />

View File

@ -7,7 +7,7 @@ import FormDetailPressConference from "@/components/form/schedule/press-conferen
import { useParams } from "next/navigation"; import { useParams } from "next/navigation";
import { id } from "date-fns/locale"; import { id } from "date-fns/locale";
const PressConDetailPage = async () => { const PressConDetailPage = () => {
const params = useParams(); const params = useParams();
const id = params?.id; const id = params?.id;
return ( return (

View File

@ -4,7 +4,6 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import PressConferenceTable from "./components/presscon-table"; import PressConferenceTable from "./components/presscon-table";
import { UploadIcon } from "lucide-react"; import { UploadIcon } from "lucide-react";
import { Link } from "@/components/navigation"; import { Link } from "@/components/navigation";
import TicketingTable from "../../ticketing/components/table";
const PressConferencePage = async () => { const PressConferencePage = async () => {
return ( return (
@ -19,7 +18,7 @@ const PressConferencePage = async () => {
Jadwal Konferensi Pers Jadwal Konferensi Pers
</div> </div>
<div className="flex-none"> <div className="flex-none">
<Link href={"/schedule/press-conference/create"}> <Link href={"/contributor/schedule/press-conference/create"}>
<Button color="primary" className="text-white"> <Button color="primary" className="text-white">
<UploadIcon /> <UploadIcon />
Buat Jadwal Buat Jadwal

View File

@ -4,7 +4,7 @@ import FormTask from "@/components/form/task/task-form";
import FormPressConference from "@/components/form/schedule/press-conference-form"; import FormPressConference from "@/components/form/schedule/press-conference-form";
import FormPressRelease from "@/components/form/schedule/pers-release-form"; import FormPressRelease from "@/components/form/schedule/pers-release-form";
const PressReleaseCreatePage = async () => { const PressReleaseCreatePage = () => {
return ( return (
<div> <div>
<SiteBreadcrumb /> <SiteBreadcrumb />

View File

@ -3,7 +3,6 @@ import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { UploadIcon } from "lucide-react"; import { UploadIcon } from "lucide-react";
import { Link } from "@/components/navigation"; import { Link } from "@/components/navigation";
import TicketingTable from "../../ticketing/components/table";
import PressReleaseTable from "./components/pressrilis-table"; import PressReleaseTable from "./components/pressrilis-table";
const PressReleasePage = async () => { const PressReleasePage = async () => {
@ -19,7 +18,7 @@ const PressReleasePage = async () => {
Jadwal Pers Rilis Jadwal Pers Rilis
</div> </div>
<div className="flex-none"> <div className="flex-none">
<Link href={"/schedule/press-release/create"}> <Link href={"/contributor/schedule/press-release/create"}>
<Button color="primary" className="text-white"> <Button color="primary" className="text-white">
<UploadIcon /> <UploadIcon />
Buat Jadwal Buat Jadwal

View File

@ -73,7 +73,7 @@ const TaskTable = () => {
const [page, setPage] = React.useState(1); const [page, setPage] = React.useState(1);
const [totalPage, setTotalPage] = React.useState(1); const [totalPage, setTotalPage] = React.useState(1);
const [limit, setLimit] = React.useState(10); const [limit, setLimit] = React.useState(10);
const [activeTab, setActiveTab] = React.useState("atensi-khusus"); const [isSpecificAttention, setIsSpecificAttention] = React.useState(true);
const table = useReactTable({ const table = useReactTable({
data: dataTable, data: dataTable,
@ -105,11 +105,11 @@ const TaskTable = () => {
React.useEffect(() => { React.useEffect(() => {
fetchData(); fetchData();
}, [page, limit, activeTab]); }, [page, limit, isSpecificAttention]);
async function fetchData() { async function fetchData() {
try { try {
const res = await listTask("", page - 1, limit, activeTab); const res = await listTask("", page - 1, limit, isSpecificAttention ? "atensi-khusu" : "tugas-harian");
const data = res.data?.data; const data = res.data?.data;
const contentData = data?.content; const contentData = data?.content;
contentData.forEach((item: any, index: number) => { contentData.forEach((item: any, index: number) => {
@ -131,22 +131,31 @@ const TaskTable = () => {
<div className="mx-5 mb-3"> <div className="mx-5 mb-3">
<div className=""> <div className="">
<div className="row"> <div className="row">
<Button <div className="flex justify-between mb-6">
onClick={() => setActiveTab("atensi-khusus")} <label className="inline-flex text-md cursor-pointer">
className={`col-md-6 text-center rounded-none ${ <input type="checkbox" onChange={() => setIsSpecificAttention(!isSpecificAttention)} hidden />
activeTab == "atensi-khusus" ? "text-blue-600" : "text-muted" <span
}`} className={` ${
> isSpecificAttention
Atensi Khusus ? "bg-default-900 text-white"
</Button> : "dark:text-default-700 border-2"
<Button }
onClick={() => setActiveTab("tugas-harian")} px-[18px] py-1 transition duration-100 rounded`}
className={`col text-center rounded-none ${ >
activeTab == "tugas-harian" ? "text-blue-600" : "text-muted" Atensi Khusus
}`} </span>
> <span
Tugas Harian className={`
</Button> ${
!isSpecificAttention ? "bg-default-900 text-white" : " dark:text-default-700 border-2"
}
px-[18px] py-1 transition duration-100 rounded
`}
>
Tugas Harian
</span>
</label>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -2,7 +2,7 @@ import { Card, CardContent } from "@/components/ui/card";
import SiteBreadcrumb from "@/components/site-breadcrumb"; import SiteBreadcrumb from "@/components/site-breadcrumb";
import FormTask from "@/components/form/task/task-form"; import FormTask from "@/components/form/task/task-form";
const TaskCreatePage = async () => { const TaskCreatePage = () => {
return ( return (
<div> <div>
<SiteBreadcrumb /> <SiteBreadcrumb />

View File

@ -7,7 +7,6 @@ import SiteBreadcrumb from "@/components/site-breadcrumb";
import { Link } from "@/components/navigation"; import { Link } from "@/components/navigation";
import { checkAuthorization, checkLoginSession } from "@/lib/utils"; import { checkAuthorization, checkLoginSession } from "@/lib/utils";
import React, { useEffect } from "react"; import React, { useEffect } from "react";
import TicketingTable from "../ticketing/components/table";
const TaskPage = () => { const TaskPage = () => {
useEffect(() => { useEffect(() => {
@ -31,7 +30,7 @@ const TaskPage = () => {
Table Penugasan Table Penugasan
</div> </div>
<div className="flex-none"> <div className="flex-none">
<Link href={"/task/create"}> <Link href={"/contributor/task/create"}>
<Button color="primary" className="text-white"> <Button color="primary" className="text-white">
<UploadIcon /> <UploadIcon />
Buat Penugasan Buat Penugasan

View File

@ -5,12 +5,11 @@ import { useTranslations } from "next-intl";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { UploadIcon } from "lucide-react"; import { UploadIcon } from "lucide-react";
import RecentActivity from "./routine-task/components/recent-activity"; import TaskTable from "../contributor/task/components/task-table";
import CompanyTable from "./routine-task/components/content-table"; import PressConferenceTable from "../contributor/schedule/press-release/components/pressrilis-table";
import TaskTable from "../task/components/task-table"; import BlogTable from "../contributor/blog/components/blog-table";
import PressConferenceTable from "../schedule/press-release/components/pressrilis-table";
import BlogTable from "../blog/components/blog-table";
import ContentTable from "./routine-task/components/content-table"; import ContentTable from "./routine-task/components/content-table";
import RecentActivity from "./routine-task/components/recent-activity";
const DashboardPage = () => { const DashboardPage = () => {
const t = useTranslations("AnalyticsDashboard"); const t = useTranslations("AnalyticsDashboard");

View File

@ -1,8 +1,7 @@
import SiteBreadcrumb from "@/components/site-breadcrumb"; import SiteBreadcrumb from "@/components/site-breadcrumb";
import FormInternal from "@/components/form/communication/internal-form";
import FormCollaboration from "@/components/form/communication/collaboration-form"; import FormCollaboration from "@/components/form/communication/collaboration-form";
const CollaborationCreatePage = async () => { const CollaborationCreatePage = () => {
return ( return (
<div> <div>
<SiteBreadcrumb /> <SiteBreadcrumb />

View File

@ -1,7 +1,7 @@
import SiteBreadcrumb from "@/components/site-breadcrumb"; import SiteBreadcrumb from "@/components/site-breadcrumb";
import FormInternal from "@/components/form/communication/internal-form"; import FormInternal from "@/components/form/communication/internal-form";
const InternalCreatePage = async () => { const InternalCreatePage = () => {
return ( return (
<div> <div>
<SiteBreadcrumb /> <SiteBreadcrumb />

View File

@ -1,5 +1,3 @@
import { StatisticsBlock } from "@/components/blocks/statistics-block";
import DashboardDropdown from "@/components/dashboard-dropdown";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import InternalTable from "./internal/components/internal-table"; import InternalTable from "./internal/components/internal-table";
@ -8,7 +6,7 @@ import SiteBreadcrumb from "@/components/site-breadcrumb";
import CollaborationTable from "./collaboration/components/collabroation-table"; import CollaborationTable from "./collaboration/components/collabroation-table";
import EscalationTable from "./escalation/table-escalation/escalation-table"; import EscalationTable from "./escalation/table-escalation/escalation-table";
const CommunicationPage = async () => { const CommunicationPage = () => {
return ( return (
<div> <div>
<SiteBreadcrumb /> <SiteBreadcrumb />

View File

@ -1,11 +1,8 @@
import SiteBreadcrumb from "@/components/site-breadcrumb"; import SiteBreadcrumb from "@/components/site-breadcrumb";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { UploadIcon } from "lucide-react";
import PressReleaseTable from "../schedule/press-conference/components/presscon-table";
import { Button } from "@/components/ui/button";
import ContestTable from "./components/contest-table"; import ContestTable from "./components/contest-table";
const ContestPage = async () => { const ContestPage = () => {
return ( return (
<div> <div>
<SiteBreadcrumb /> <SiteBreadcrumb />
@ -18,7 +15,7 @@ const ContestPage = async () => {
Table Lomba Table Lomba
</div> </div>
<div className="flex-none"> <div className="flex-none">
{/* <Link href={"/task/create"}> {/* <Link href={"/contributor/task/create"}>
<Button color="primary" className="text-white"> <Button color="primary" className="text-white">
<UploadIcon /> <UploadIcon />
Buat Penugasan Buat Penugasan

View File

@ -26,7 +26,7 @@ import ImageSliderPage from "./giat-routine/image";
import TeksSliderPage from "./giat-routine/teks"; import TeksSliderPage from "./giat-routine/teks";
import ContestTable from "../contest/components/contest-table"; import ContestTable from "../contest/components/contest-table";
const CuratedContentPage = async () => { const CuratedContentPage = () => {
return ( return (
<div> <div>
<SiteBreadcrumb /> <SiteBreadcrumb />

Some files were not shown because too many files have changed in this diff Show More