| @@ -26,14 +26,7 @@ import Link from "next/link"; | |||||
| import { NAVIGATION_CONTENT_WIDTH } from "@/config/uiConfig"; | import { NAVIGATION_CONTENT_WIDTH } from "@/config/uiConfig"; | ||||
| import Logo from "../Logo"; | import Logo from "../Logo"; | ||||
| import BugReportIcon from "@mui/icons-material/BugReport"; | import BugReportIcon from "@mui/icons-material/BugReport"; | ||||
| import { | |||||
| VIEW_USER, | |||||
| MAINTAIN_USER, | |||||
| VIEW_GROUP, | |||||
| MAINTAIN_GROUP, | |||||
| // Add more authorities as needed, e.g.: | |||||
| TESTING, PROD, PACK, ADMIN, STOCK, Driver | |||||
| } from "../../authorities"; | |||||
| import { AUTH } from "../../authorities"; | |||||
| interface NavigationItem { | interface NavigationItem { | ||||
| icon: React.ReactNode; | icon: React.ReactNode; | ||||
| @@ -67,15 +60,18 @@ const NavigationContent: React.FC = () => { | |||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Store Management", | label: "Store Management", | ||||
| path: "", | path: "", | ||||
| requiredAbility: [AUTH.PURCHASE, AUTH.STOCK, AUTH.STOCK_TAKE, AUTH.STOCK_FG, AUTH.STOCK_IN_BIND, AUTH.ADMIN], | |||||
| children: [ | children: [ | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Purchase Order", | label: "Purchase Order", | ||||
| requiredAbility: [AUTH.PURCHASE, AUTH.ADMIN], | |||||
| path: "/po", | path: "/po", | ||||
| }, | }, | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Pick Order", | label: "Pick Order", | ||||
| requiredAbility: [AUTH.STOCK, AUTH.ADMIN], | |||||
| path: "/pickOrder", | path: "/pickOrder", | ||||
| }, | }, | ||||
| // { | // { | ||||
| @@ -101,16 +97,19 @@ const NavigationContent: React.FC = () => { | |||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "View item In-out And inventory Ledger", | label: "View item In-out And inventory Ledger", | ||||
| requiredAbility: [AUTH.STOCK, AUTH.ADMIN], | |||||
| path: "/inventory", | path: "/inventory", | ||||
| }, | }, | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Stock Take Management", | label: "Stock Take Management", | ||||
| requiredAbility: [AUTH.STOCK_TAKE, AUTH.ADMIN], | |||||
| path: "/stocktakemanagement", | path: "/stocktakemanagement", | ||||
| }, | }, | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Stock Issue", | label: "Stock Issue", | ||||
| requiredAbility: [AUTH.STOCK, AUTH.STOCK_TAKE, AUTH.ADMIN], | |||||
| path: "/stockIssue", | path: "/stockIssue", | ||||
| }, | }, | ||||
| //TODO: anna | //TODO: anna | ||||
| @@ -122,24 +121,33 @@ const NavigationContent: React.FC = () => { | |||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Put Away Scan", | label: "Put Away Scan", | ||||
| requiredAbility: [AUTH.STOCK, AUTH.STOCK_TAKE, AUTH.STOCK_IN_BIND, AUTH.ADMIN], | |||||
| path: "/putAway", | path: "/putAway", | ||||
| }, | }, | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Finished Good Order", | label: "Finished Good Order", | ||||
| requiredAbility: [AUTH.STOCK_FG, AUTH.ADMIN], | |||||
| path: "/finishedGood", | path: "/finishedGood", | ||||
| }, | }, | ||||
| { | |||||
| icon: <RequestQuote />, | |||||
| label: "Stock Record", | |||||
| requiredAbility: [AUTH.STOCK_TAKE, AUTH.STOCK_IN_BIND, AUTH.STOCK_FG, AUTH.ADMIN], | |||||
| path: "/stockRecord", | |||||
| }, | |||||
| ], | ], | ||||
| }, | }, | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Delivery", | label: "Delivery", | ||||
| path: "", | path: "", | ||||
| //requiredAbility: VIEW_DO, | |||||
| requiredAbility: [AUTH.STOCK_FG, AUTH.ADMIN], | |||||
| children: [ | children: [ | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Delivery Order", | label: "Delivery Order", | ||||
| requiredAbility: [AUTH.STOCK_FG, AUTH.ADMIN], | |||||
| path: "/do", | path: "/do", | ||||
| }, | }, | ||||
| ], | ], | ||||
| @@ -182,6 +190,7 @@ const NavigationContent: React.FC = () => { | |||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Scheduling", | label: "Scheduling", | ||||
| path: "", | path: "", | ||||
| requiredAbility: [AUTH.FORECAST, AUTH.ADMIN], | |||||
| children: [ | children: [ | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| @@ -206,25 +215,30 @@ const NavigationContent: React.FC = () => { | |||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Management Job Order", | label: "Management Job Order", | ||||
| path: "", | path: "", | ||||
| requiredAbility: [AUTH.JOB_CREATE, AUTH.JOB_PICK, AUTH.JOB_PROD, AUTH.ADMIN], | |||||
| children: [ | children: [ | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Search Job Order/ Create Job Order", | label: "Search Job Order/ Create Job Order", | ||||
| requiredAbility: [AUTH.JOB_CREATE, AUTH.ADMIN], | |||||
| path: "/jo", | path: "/jo", | ||||
| }, | }, | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Job Order Pickexcution", | label: "Job Order Pickexcution", | ||||
| requiredAbility: [AUTH.JOB_PICK, AUTH.JOB_MAT, AUTH.ADMIN], | |||||
| path: "/jodetail", | path: "/jodetail", | ||||
| }, | }, | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Job Order Production Process", | label: "Job Order Production Process", | ||||
| requiredAbility: [AUTH.JOB_PROD, AUTH.ADMIN], | |||||
| path: "/productionProcess", | path: "/productionProcess", | ||||
| }, | }, | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Bag Usage", | label: "Bag Usage", | ||||
| requiredAbility: [AUTH.JOB_PROD, AUTH.ADMIN], | |||||
| path: "/bag", | path: "/bag", | ||||
| }, | }, | ||||
| ], | ], | ||||
| @@ -233,33 +247,40 @@ const NavigationContent: React.FC = () => { | |||||
| icon: <BugReportIcon />, | icon: <BugReportIcon />, | ||||
| label: "PS", | label: "PS", | ||||
| path: "/ps", | path: "/ps", | ||||
| requiredAbility: TESTING, | |||||
| requiredAbility: AUTH.TESTING, | |||||
| isHidden: false, | isHidden: false, | ||||
| }, | }, | ||||
| { | { | ||||
| icon: <BugReportIcon />, | icon: <BugReportIcon />, | ||||
| label: "Printer Testing", | label: "Printer Testing", | ||||
| path: "/testing", | path: "/testing", | ||||
| requiredAbility: TESTING, | |||||
| requiredAbility: [AUTH.TESTING, AUTH.ADMIN], | |||||
| isHidden: false, | |||||
| }, | |||||
| { | |||||
| icon: <BugReportIcon />, | |||||
| label: "Report Management", | |||||
| path: "/report", | |||||
| requiredAbility: [AUTH.TESTING, AUTH.ADMIN], | |||||
| isHidden: false, | isHidden: false, | ||||
| }, | }, | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "Settings", | label: "Settings", | ||||
| path: "", | path: "", | ||||
| requiredAbility: [VIEW_USER, VIEW_GROUP], | |||||
| requiredAbility: [AUTH.VIEW_USER, AUTH.ADMIN], | |||||
| children: [ | children: [ | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "User", | label: "User", | ||||
| path: "/settings/user", | path: "/settings/user", | ||||
| requiredAbility: VIEW_USER, | |||||
| requiredAbility: [AUTH.VIEW_USER, AUTH.ADMIN], | |||||
| }, | }, | ||||
| { | { | ||||
| icon: <RequestQuote />, | icon: <RequestQuote />, | ||||
| label: "User Group", | label: "User Group", | ||||
| path: "/settings/user", | path: "/settings/user", | ||||
| requiredAbility: VIEW_GROUP, | |||||
| requiredAbility: [AUTH.VIEW_GROUP, AUTH.ADMIN], | |||||
| }, | }, | ||||
| // { | // { | ||||
| // icon: <RequestQuote />, | // icon: <RequestQuote />, | ||||