This commit is contained in:
hanif salafi 2025-01-01 19:26:05 +07:00
commit 962f905875
10 changed files with 791 additions and 10 deletions

View File

@ -0,0 +1,196 @@
"use client";
import SiteBreadcrumb from "@/components/site-breadcrumb";
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion";
import { useState } from "react";
import { addDays, format } from "date-fns";
import { Calendar as CalendarIcon } from "lucide-react";
import { DateRange } from "react-day-picker";
import { cn } from "@/lib/utils";
import { Button } from "@/components/ui/button";
import { Calendar } from "@/components/ui/calendar";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "@/components/ui/popover";
const users = [
{ id: 1, name: "POLRI" },
{ id: 2, name: "JURNALIS" },
];
export default function ContentManagement() {
const [startDate, setStartDate] = useState<any>(new Date());
const [endDate, setEndDate] = useState<any>(new Date());
return (
<div>
<SiteBreadcrumb />
<div className="flex flex-col gap-3">
{users.map((user) => (
<Accordion
key={user.id}
id="polri"
type="single"
collapsible
className="w-full"
>
<AccordionItem value="item-1" className="bg-white w-full">
<AccordionTrigger className="bg-white">
KONTEN YANG DISIMPAN OLEH PENGGUNA {user.name} INDONESIA
</AccordionTrigger>
<AccordionContent>
<div className="flex flex-row gap-3">
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={startDate}
onSelect={setStartDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={endDate}
onSelect={setEndDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
</div>
</AccordionContent>
</AccordionItem>
</Accordion>
))}
{users.map((user) => (
<Accordion
key={user.id}
id={String(user.id)}
type="single"
collapsible
className="w-full"
>
<AccordionItem
value={`${user.id}-value-${user.name}`}
className="bg-white w-full"
>
<AccordionTrigger className="bg-white">
PENAMBAHAN JUMLAH PENGGUNA {user.name} INDONESIA
</AccordionTrigger>
<AccordionContent>
<div className="flex flex-row gap-3">
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={startDate}
onSelect={setStartDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={endDate}
onSelect={setEndDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
</div>
</AccordionContent>
</AccordionItem>
</Accordion>
))}
</div>
</div>
);
}

View File

@ -0,0 +1,113 @@
"use client";
import SiteBreadcrumb from "@/components/site-breadcrumb";
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion";
import { useState } from "react";
import { addDays, format } from "date-fns";
import { Calendar as CalendarIcon } from "lucide-react";
import { DateRange } from "react-day-picker";
import { cn } from "@/lib/utils";
import { Button } from "@/components/ui/button";
import { Calendar } from "@/components/ui/calendar";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "@/components/ui/popover";
const users = [
{ id: 1, name: "POLRI" },
{ id: 2, name: "JURNALIS" },
];
export default function EmergencyIssue() {
const [startDate, setStartDate] = useState<any>(new Date());
const [endDate, setEndDate] = useState<any>(new Date());
return (
<div>
<SiteBreadcrumb />
<div className="flex flex-col gap-3">
<Accordion
id="feedback-center"
type="single"
collapsible
className="w-full"
>
<AccordionItem value="item-1" className="bg-white w-full">
<AccordionTrigger className="bg-white">
ANALISA BERKAITAN DENGAN AKUN PELAPOR{" "}
</AccordionTrigger>
<AccordionContent>
<div className="flex flex-row gap-3">
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={startDate}
onSelect={setStartDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={endDate}
onSelect={setEndDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
</div>
</AccordionContent>
</AccordionItem>
</Accordion>
</div>
</div>
);
}

View File

@ -0,0 +1,113 @@
"use client";
import SiteBreadcrumb from "@/components/site-breadcrumb";
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion";
import { useState } from "react";
import { addDays, format } from "date-fns";
import { Calendar as CalendarIcon } from "lucide-react";
import { DateRange } from "react-day-picker";
import { cn } from "@/lib/utils";
import { Button } from "@/components/ui/button";
import { Calendar } from "@/components/ui/calendar";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "@/components/ui/popover";
const users = [
{ id: 1, name: "POLRI" },
{ id: 2, name: "JURNALIS" },
];
export default function FeedbackCenter() {
const [startDate, setStartDate] = useState<any>(new Date());
const [endDate, setEndDate] = useState<any>(new Date());
return (
<div>
<SiteBreadcrumb />
<div className="flex flex-col gap-3">
<Accordion
id="feedback-center"
type="single"
collapsible
className="w-full"
>
<AccordionItem value="item-1" className="bg-white w-full">
<AccordionTrigger className="bg-white">
TICKET PADA FEEDBACK CENTER{" "}
</AccordionTrigger>
<AccordionContent>
<div className="flex flex-row gap-3">
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={startDate}
onSelect={setStartDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={endDate}
onSelect={setEndDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
</div>
</AccordionContent>
</AccordionItem>
</Accordion>
</div>
</div>
);
}

View File

@ -0,0 +1,330 @@
"use client";
import SiteBreadcrumb from "@/components/site-breadcrumb";
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion";
import { useState } from "react";
import { addDays, format } from "date-fns";
import { Calendar as CalendarIcon } from "lucide-react";
import { DateRange } from "react-day-picker";
import { cn } from "@/lib/utils";
import { Button } from "@/components/ui/button";
import { Calendar } from "@/components/ui/calendar";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "@/components/ui/popover";
export default function ContentManagement() {
const [startDate, setStartDate] = useState<any>(new Date());
const [endDate, setEndDate] = useState<any>(new Date());
return (
<div>
<SiteBreadcrumb />
<div className="flex flex-col gap-3">
<Accordion
id="schedule-press-conference"
type="single"
collapsible
className="w-full"
>
<AccordionItem value="item-1" className="bg-white w-full">
<AccordionTrigger className="bg-white">
PUBLISH JADWAL PRESS CONFERENCE TERBANYAK
</AccordionTrigger>
<AccordionContent>
<div className="flex flex-row gap-3">
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={startDate}
onSelect={setStartDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={endDate}
onSelect={setEndDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
</div>
</AccordionContent>
</AccordionItem>
</Accordion>
<Accordion
id="content-press-conference"
type="single"
collapsible
className="w-full"
>
<AccordionItem value="item-1" className="bg-white w-full">
<AccordionTrigger className="bg-white">
JUMLAH PRODUKSI KONTEN UNTUK KATEGORI PRESS CONFERENCE
</AccordionTrigger>
<AccordionContent>
<div className="flex flex-row gap-3">
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={startDate}
onSelect={setStartDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={endDate}
onSelect={setEndDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
</div>
</AccordionContent>
</AccordionItem>
</Accordion>
<Accordion
id="interaction-press-conference"
type="single"
collapsible
className="w-full"
>
<AccordionItem value="item-1" className="bg-white w-full">
<AccordionTrigger className="bg-white">
TINGKAT INTERAKSI KONTEN UNTUK KATEGORI PRESS CONFERENCE
</AccordionTrigger>
<AccordionContent>
<div className="flex flex-row gap-3">
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={startDate}
onSelect={setStartDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={endDate}
onSelect={setEndDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
</div>
</AccordionContent>
</AccordionItem>
</Accordion>
<Accordion
id="press-release"
type="single"
collapsible
className="w-full"
>
<AccordionItem value="item-1" className="bg-white w-full">
<AccordionTrigger className="bg-white">
AKTIFITAS MEDIA BERKAITAN DENGAN PERS RILIS
</AccordionTrigger>
<AccordionContent>
<div className="flex flex-row gap-3">
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={startDate}
onSelect={setStartDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
<div className="flex flex-col">
<p>Tanggal Mulai</p>
<Popover>
<PopoverTrigger asChild>
<Button
variant={"outline"}
className={cn(
"w-[280px] justify-start text-left font-normal",
!startDate && "text-muted-foreground"
)}
>
<CalendarIcon />
{startDate ? (
format(startDate, "PPP")
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={endDate}
onSelect={setEndDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
</div>
</AccordionContent>
</AccordionItem>
</Accordion>
</div>
</div>
);
}

View File

@ -0,0 +1,10 @@
import SiteBreadcrumb from "@/components/site-breadcrumb";
export default function ManagementUser() {
return (
<div>
<SiteBreadcrumb />
<p className="font-semibold">STATISTIK JUMLAH PENGGUNA</p>
</div>
);
}

View File

@ -0,0 +1,10 @@
import SiteBreadcrumb from "@/components/site-breadcrumb";
export default function PerformancePolda() {
return (
<div>
<SiteBreadcrumb />
<p className="font-semibold">PERFORMANCE KUMULATIF PER POLDA</p>
</div>
);
}

View File

@ -0,0 +1,9 @@
import SiteBreadcrumb from "@/components/site-breadcrumb";
export default function ExecutiveDashboard() {
return (
<div>
<SiteBreadcrumb />
</div>
);
}

View File

@ -1692,15 +1692,15 @@ export function getMenuList(pathname: string, t: any): Group[] {
submenus: [
{
href: "/dashboard",
label: "Executive",
label: "Breakdown",
active: pathname === "/dashboard",
icon: "heroicons:arrow-trending-up",
children: [],
},
{
href: "/dashboard/breakdown",
label: "Breakdown",
active: pathname === "/dashboard/breakdown",
href: "/dashboard/executive",
label: "Executive",
active: pathname === "/dashboard/executive",
icon: "heroicons:arrow-trending-up",
children: [],
},
@ -1728,7 +1728,7 @@ export function getMenuList(pathname: string, t: any): Group[] {
menus: [
{
id: "management-user-menu",
href: "/adminn/management-user",
href: "/admin/management-user",
label: "Management User",
active: pathname.includes("/management-user"),
icon: "clarity:users-solid",
@ -1790,9 +1790,9 @@ export function getMenuList(pathname: string, t: any): Group[] {
icon: "mdi:chart-line",
submenus: [
{
href: "/admin/analysis/magement-content",
href: "/admin/analysis/content-management",
label: t("management-content"),
active: pathname === "/admin/analysis/magement-content",
active: pathname === "/admin/analysis/content-management",
icon: "",
children: [],
},
@ -1887,7 +1887,7 @@ export function getMenuList(pathname: string, t: any): Group[] {
id: "feedback",
href: "/curator/feedback",
label: t("feedback"),
active: pathname.includes("/feedback"),
active: pathname.includes("/curator/feedback"),
icon: "mdi:feedback-outline",
submenus: [],
},

View File

@ -297,7 +297,7 @@
"colors": "Colors",
"performance-polda": "Performance Polda",
"analysis": "Analysis",
"management-content": "Management Content",
"management-content": "Content Management ",
"add-experts": "Add Experts"
},
"Changelog": {

View File

@ -297,7 +297,7 @@
"colors": "Colors",
"performance-polda": "Performa Polda",
"analysis": "Analisa",
"management-content": "Manajemen Konten",
"content-management": "Manajemen Konten",
"add-experts": "Tambah Tenaga Ahli"
},
"Changelog": {