From b089f2c7fa2454e085d14c42a047c505d1e9a341 Mon Sep 17 00:00:00 2001 From: AmirHossein Mahmoodi Date: Tue, 13 May 2025 14:10:58 +0330 Subject: [PATCH] add page menu dev --- .../headerWithSidebar/Sidebar/SidebarMenu.jsx | 3 +- src/core/utils/pageMenuDev.js | 548 ++++++++++++++++++ 2 files changed, 550 insertions(+), 1 deletion(-) create mode 100644 src/core/utils/pageMenuDev.js diff --git a/src/components/layouts/dashboard/headerWithSidebar/Sidebar/SidebarMenu.jsx b/src/components/layouts/dashboard/headerWithSidebar/Sidebar/SidebarMenu.jsx index 4142b7f..3be25b1 100644 --- a/src/components/layouts/dashboard/headerWithSidebar/Sidebar/SidebarMenu.jsx +++ b/src/components/layouts/dashboard/headerWithSidebar/Sidebar/SidebarMenu.jsx @@ -7,6 +7,7 @@ import Profile from "@/core/components/Profile"; import { filterMenuItems } from "@/core/utils/filterMenuItems"; import { pageMenu } from "@/core/utils/pageMenu"; import SidebarListItems from "./SidebarListItems"; +import { pageMenuDev } from "@/core/utils/pageMenuDev"; function selectPage(item, route) { if (item.type === "page") { @@ -76,7 +77,7 @@ function reducer(state, action) { const SidebarMenu = () => { const { data: userPermissions } = usePermissions(); - const [menuItems, dispatch] = useReducer(reducer, pageMenu); + const [menuItems, dispatch] = useReducer(reducer, process.env.NODE_ENV == "production" ? pageMenu : pageMenuDev); const pathname = usePathname(); const [selectedKey, setSelectedKey] = useState(null); diff --git a/src/core/utils/pageMenuDev.js b/src/core/utils/pageMenuDev.js new file mode 100644 index 0000000..f881e04 --- /dev/null +++ b/src/core/utils/pageMenuDev.js @@ -0,0 +1,548 @@ +import SpaceDashboardIcon from "@mui/icons-material/SpaceDashboard"; +import GroupsIcon from "@mui/icons-material/Groups"; +import AccountTreeIcon from "@mui/icons-material/AccountTree"; +import FactCheckIcon from "@mui/icons-material/FactCheck"; +import FireTruckIcon from "@mui/icons-material/FireTruck"; +import RouteIcon from "@mui/icons-material/Route"; +import DoorbellIcon from "@mui/icons-material/Doorbell"; +import ElectricBoltIcon from "@mui/icons-material/ElectricBolt"; +import CottageIcon from "@mui/icons-material/Cottage"; +import GppMaybeIcon from "@mui/icons-material/GppMaybe"; +import GavelIcon from "@mui/icons-material/Gavel"; +import BallotIcon from "@mui/icons-material/Ballot"; +import AssistantIcon from "@mui/icons-material/Assistant"; +import AdminPanelSettingsIcon from "@mui/icons-material/AdminPanelSettings"; +import MapIcon from "@mui/icons-material/Map"; +import SpeedIcon from "@mui/icons-material/Speed"; +import EngineeringIcon from "@mui/icons-material/Engineering"; +import AssessmentIcon from "@mui/icons-material/Assessment"; +import AssignmentLateIcon from "@mui/icons-material/AssignmentLate"; +import LockPersonIcon from "@mui/icons-material/LockPerson"; +import LineAxisIcon from "@mui/icons-material/LineAxis"; +import ScienceIcon from "@mui/icons-material/Science"; +import DriveEtaIcon from "@mui/icons-material/DriveEta"; +import BiotechIcon from "@mui/icons-material/Biotech"; + +export const pageMenuDev = [ + { + id: "dashboard", + label: "پیشخوان", + type: "page", + route: "/dashboard", + icon: , + permissions: ["all"], + }, + { + id: "userManagement", + label: "مدیریت کاربران", + type: "page", + route: process.env.NEXT_PUBLIC_API_URL + "/v2/user_management", + icon: , + permissions: ["full-user-management", "limited-user-management"], + }, + { + id: "projectsManagment", + label: "پروژه های راهداری", + type: "menu", + icon: , + hasSubitems: true, + Subitems: [ + { + id: "projectsManagmentFinance", + label: "ثبت قرارداد و پروژه", + type: "page", + route: process.env.NEXT_PUBLIC_API_URL + "/v2/rahdari_projects/finance", + icon: , + permissions: ["show-contract", "show-contract-province"], + }, + { + id: "projectsManagmentList", + label: "لیست پروژه ها", + type: "page", + route: process.env.NEXT_PUBLIC_API_URL + "/v2/rahdari_projects/projects_list", + icon: , + permissions: ["all"], + }, + { + id: "projectsManagmentProposal", + label: "پروژه های پیشنهادی", + type: "page", + route: process.env.NEXT_PUBLIC_API_URL + "/v2/rahdari_projects/proposal", + icon: , + permissions: ["show-proposal", "show-proposal-province"], + }, + { + id: "projectsManagmentLawmaker", + label: "درخواست نمایندگان", + type: "page", + route: process.env.NEXT_PUBLIC_API_URL + "/v2/rahdari_projects/lawmakers", + icon: , + permissions: ["show-lawmaker", "show-lawmaker-province"], + }, + { + id: "projectsManagmentMap", + label: "پراکندگی بر روی نقشه", + type: "page", + route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=rahdari_projects", + icon: , + permissions: ["all"], + }, + ], + }, + { + id: "roadItemManagment", + label: "فعالیت های روزانه", + type: "menu", + icon: , + hasSubitems: true, + badges: [{ key: "roadItem.total" }], + Subitems: [ + { + id: "roadItemManagmentSupervisor", + label: "ارزیابی", + type: "menu", + icon: , + hasSubitems: true, + badges: [{ key: "roadItem.supervise_cnt" }], + Subitems: [ + { + id: "roadItemManagmentSupervisorCartable", + label: "کارتابل", + type: "page", + route: "/dashboard/road-items/supervisor", + permissions: [ + "show-road-item-supervise-cartable", + "show-road-item-supervise-cartable-province", + ], + }, + ], + }, + { + id: "roadItemManagmentOparation", + label: "عملیات", + type: "menu", + icon: , + hasSubitems: true, + badges: [{ key: "roadItem.operation_cnt" }], + Subitems: [ + { + id: "roadItemManagmentOparationCartable", + label: "کارتابل", + type: "page", + route: "/dashboard/road-items/operator", + permissions: ["create-road-item"], + }, + ], + }, + { + id: "roadItemManagmentMap", + label: "پراکندگی بر روی نقشه", + type: "page", + route: "/dashboard/road-items/reports/map", + icon: , + permissions: [ + "show-road-item-supervise-cartable", + "show-road-item-supervise-cartable-province", + "create-road-item", + ], + }, + { + id: "roadItemManagmentReport", + label: "گزارش ها", + type: "menu", + icon: , + hasSubitems: true, + Subitems: [ + { + id: "roadItemManagmentReportProvince", + label: "تعداد فعالیت ها به تفکیک آیتم", + type: "page", + route: "/dashboard/road-items/reports/items-report", + permissions: [ + "show-road-item-supervise-cartable", + "show-road-item-supervise-cartable-province", + "create-road-item", + ], + }, + { + id: "roadItemManagmentReportItems", + label: "تعداد و حجم فعالیت ها به تفکیک موارد اقدام شده", + type: "page", + route: "/dashboard/road-items/reports/sub-items-report", + permissions: [ + "show-road-item-supervise-cartable", + "show-road-item-supervise-cartable-province", + "create-road-item", + ], + }, + ], + }, + ], + }, + { + id: "roadPatrolManagment", + label: "گشت راهداری و ترابری", + type: "menu", + icon: , + hasSubitems: true, + Subitems: [ + { + id: "roadPatrolManagmentSupervisor", + label: "ارزیابی", + type: "menu", + icon: , + hasSubitems: true, + Subitems: [ + { + id: "roadPatrolManagmentSupervisorCartable", + label: "کارتابل", + type: "page", + route: "/dashboard/road-patrols/supervisor", + permissions: [ + "show-road-patrol-supervise-cartable", + "show-road-patrol-supervise-cartable-province", + ], + }, + ], + }, + { + id: "roadPatrolManagmentOparation", + label: "عملیات", + type: "menu", + icon: , + hasSubitems: true, + Subitems: [ + { + id: "roadPatrolManagmentOparationCartable", + label: "کارتابل", + type: "page", + route: "/dashboard/road-patrols/operator", + permissions: ["add-road-patrol"], + }, + ], + }, + { + id: "roadPatrolManagmentMap", + label: "پراکندگی بر روی نقشه", + type: "page", + route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=road_patrols", + icon: , + permissions: [ + "add-road-patrol", + "show-road-patrol-supervise-cartable", + "show-road-patrol-supervise-cartable-province", + ], + }, + { + id: "roadPatrolManagmentReport", + label: "گزارش ها", + type: "page", + route: "/dashboard/road-patrols/reports", + icon: , + permissions: [ + "add-road-patrol", + "show-road-patrol-supervise-cartable", + "show-road-patrol-supervise-cartable-province", + ], + }, + ], + }, + { + id: "inquiryPrivacyManagment", + label: "استعلام حریم راه", + type: "menu", + icon: , + hasSubitems: true, + Subitems: [ + { + id: "cityAdminZaminGov", + label: "استعلام حرائم پنجره واحد", + type: "page", + route: "/dashboard/inquiry-privacy/city-admin/zamin-gov", + permissions: [], + }, + { + id: "provinceAdminZaminGov", + label: "استعلام حرائم پنجره واحد", + type: "page", + route: "/dashboard/inquiry-privacy/province-admin/zamin-gov", + permissions: [], + }, + { + id: "assistantZaminGov", + label: "استعلام حرائم پنجره واحد", + type: "page", + route: "/dashboard/inquiry-privacy/assistant/zamin-gov", + permissions: [], + }, + { + id: "generalManagerZaminGov", + label: "استعلام حرائم پنجره واحد", + type: "page", + route: "/dashboard/inquiry-privacy/general-manager/zamin-gov", + permissions: [], + }, + ], + }, + { + id: "safetyAndPrivacyManagment", + label: "نگهداری حریم راه", + type: "menu", + icon: , + hasSubitems: true, + badges: [ + { key: "safetyAndPrivacy.supervise_cnt" }, + { key: "safetyAndPrivacy.step_one", color: "warning" }, + { key: "safetyAndPrivacy.step_two", color: "error" }, + ], + Subitems: [ + { + id: "safetyAndPrivacyManagmentSupervisor", + label: "ارزیابی", + type: "menu", + icon: , + hasSubitems: true, + badges: [{ key: "safetyAndPrivacy.supervise_cnt" }], + Subitems: [ + { + id: "safetyAndPrivacyManagmentSupervisorCartable", + label: "کارتابل", + type: "page", + route: "/dashboard/road-safety/supervisor", + permissions: [ + "show-safety-and-privacy-operator-cartable", + "show-safety-and-privacy-operator-cartable-province", + ], + }, + ], + }, + { + id: "safetyAndPrivacyManagmentOparation", + label: "عملیات", + type: "menu", + icon: , + hasSubitems: true, + badges: [ + { key: "safetyAndPrivacy.step_one", color: "warning" }, + { key: "safetyAndPrivacy.step_two", color: "error" }, + ], + Subitems: [ + { + id: "safetyAndPrivacyManagmentOparationCartable", + label: "کارتابل", + type: "page", + route: "/dashboard/road-safety/operator", + permissions: ["show-safety-and-privacy-operator-cartable-edarate-shahri"], + }, + ], + }, + { + id: "safetyAndPrivacyManagmentMap", + label: "پراکندگی بر روی نقشه", + type: "page", + route: "/dashboard/road-safety/reports/map", + icon: , + permissions: [ + "show-safety-and-privacy-operator-cartable", + "show-safety-and-privacy-operator-cartable-province", + "show-safety-and-privacy-operator-cartable-edarate-shahri", + ], + }, + { + id: "safetyAndPrivacyManagmentReport", + label: "گزارش ها", + type: "page", + route: "/dashboard/road-safety/reports", + icon: , + permissions: [ + "show-safety-and-privacy-operator-cartable", + "show-safety-and-privacy-operator-cartable-province", + "show-safety-and-privacy-operator-cartable-edarate-shahri", + ], + }, + ], + }, + { + id: "roadObservationsManagment", + label: "واکنش سریع", + type: "menu", + icon: , + hasSubitems: true, + badges: [{ key: "roadObserved.total" }], + Subitems: [ + { + id: "roadObservationsManagmentSupervisor", + label: "ارزیابی", + type: "menu", + icon: , + hasSubitems: true, + badges: [{ key: "roadObserved.supervise_cnt" }, { key: "roadObserved.complaint_cnt", color: "info" }], + Subitems: [ + { + id: "roadObservationsManagmentSupervisorCartable", + label: "کارتابل", + type: "page", + route: "/dashboard/fast-react/supervisor", + permissions: ["show-fast-react", "show-fast-react-province"], + }, + ], + }, + { + id: "roadObservationsManagmentOparation", + label: "عملیات", + type: "menu", + icon: , + hasSubitems: true, + badges: [{ key: "roadObserved.operation_cnt" }, { key: "roadObserved.complaint_cnt", color: "info" }], + Subitems: [ + { + id: "roadObservationsManagmentOparationCartable", + label: "کارتابل", + type: "page", + route: "/dashboard/fast-react/operator", + permissions: ["show-fast-react-edarate-shahri"], + }, + ], + }, + { + id: "roadObservationsManagmentMap", + label: "پراکندگی بر روی نقشه", + type: "page", + route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=road_observations", + icon: , + permissions: ["all"], + }, + { + id: "roadObservationsManagmentReport", + label: "گزارش ها", + type: "page", + route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_observations/report/index", + icon: , + permissions: ["all"], + }, + ], + }, + { + id: "winterCampManagment", + label: "قرارگاه زمستانی", + type: "menu", + icon: , + hasSubitems: true, + Subitems: [ + { + id: "winterCampManagmentBlocking", + label: "محور های انسدادی", + type: "page", + route: process.env.NEXT_PUBLIC_API_URL + "/v2/winter_camp", + icon: , + permissions: ["show-camp", "show-camp-province"], + }, + { + id: "winterCampManagmentFirstRing", + label: "محور های حلقه اول", + type: "page", + route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=camp", + icon: , + permissions: ["show-camp", "show-camp-province"], + }, + { + id: "winterCampManagmentReport", + label: "گزارش ها", + type: "page", + route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=campNew", + icon: , + permissions: ["show-camp", "show-camp-province"], + }, + ], + }, + { + id: "receiptManagment", + label: "خسارات وارده بر ابنیه فنی و تاسیسات راه", + type: "menu", + icon: , + hasSubitems: true, + Subitems: [ + { + id: "receiptManagmentOparation", + label: "عملیات", + type: "menu", + icon: , + hasSubitems: true, + Subitems: [ + { + id: "receiptManagmentOparationCartable", + label: "کارتابل", + type: "page", + route: "/dashboard/damages/operator", + permissions: ["all"], + }, + ], + }, + { + id: "damagesManagmentReport", + label: "گزارش ها", + type: "page", + route: "/dashboard/damages/report", + icon: , + permissions: ["show-receipt", "show-receipt-province"], + }, + ], + }, + { + id: "azmayesh", + label: "آزمایشات (OPTS)", + type: "page", + route: "/dashboard/azmayesh", + icon: , + permissions: ["azmayesh-management"], + }, + { + id: "azmayeshType", + label: "نوع آزمایشات", + type: "page", + route: "/dashboard/azmayesh_type", + icon: , + permissions: ["azmayesh-type-management"], + }, + { + id: "adminManagement", + label: "مدیریت سامانه", + type: "menu", + icon: , + hasSubitems: true, + Subitems: [ + { + id: "permissionItem", + label: "سطح دسترسی ها", + type: "page", + route: "/dashboard/permissions", + icon: , + permissions: ["manage-permissions"], + }, + { + id: "userActivities", + label: "انواع فعالیت کاربران", + type: "page", + route: "/dashboard/user-activities", + icon: , + permissions: ["manage-log-list"], + }, + { + id: "damageItems", + label: "آیتم خسارات وارده بر ابنیه فنی", + type: "page", + route: "/dashboard/damage-items", + icon: , + permissions: ["manage-damage"], + }, + { + id: "CarDetails", + label: "اطلاعات خودرو", + type: "page", + route: "/dashboard/car-details", + icon: , + permissions: [""], + }, + ], + }, +];