Menü ve Route güncellemesi

This commit is contained in:
Sedat Öztürk 2025-09-15 00:00:26 +03:00
parent 3ccc2e3996
commit 5912aec08b
11 changed files with 895 additions and 27 deletions

View file

@ -3298,7 +3298,7 @@
"ParentCode": null, "ParentCode": null,
"Code": "App.Administration", "Code": "App.Administration",
"DisplayName": "App.Administration", "DisplayName": "App.Administration",
"Order": 500, "Order": 400,
"Url": null, "Url": null,
"Icon": "FcOrganization", "Icon": "FcOrganization",
"RequiredPermissionName": null, "RequiredPermissionName": null,
@ -3533,6 +3533,746 @@
"Icon": "FcNeutralDecision", "Icon": "FcNeutralDecision",
"RequiredPermissionName": "App.Classroom.Dashboard", "RequiredPermissionName": "App.Classroom.Dashboard",
"IsDisabled": false "IsDisabled": false
},
{
"ParentCode": null,
"Code": "App.SupplyChain",
"DisplayName": "Satınalma",
"Order": 500,
"Url": null,
"Icon": "FcProcess",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.SupplyChain",
"Code": "App.SupplyChain.MaterialTypes",
"DisplayName": "Malzeme Tipleri",
"Order": 1,
"Url": "/admin/supplychain/materials/types",
"Icon": "FcDataSheet",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.SupplyChain",
"Code": "App.SupplyChain.MaterialGroups",
"DisplayName": "Malzeme Grupları",
"Order": 2,
"Url": "/admin/supplychain/materials/groups",
"Icon": "FcGrid",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.SupplyChain",
"Code": "App.SupplyChain.Materials",
"DisplayName": "Malzeme Listesi",
"Order": 3,
"Url": "/admin/supplychain/materials",
"Icon": "FcTodoList",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.SupplyChain",
"Code": "App.SupplyChain.Suppliers",
"DisplayName": "Tedarikçiler",
"Order": 4,
"Url": "/admin/supplychain/suppliers",
"Icon": "FcBusiness",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.SupplyChain",
"Code": "App.SupplyChain.Requests",
"DisplayName": "Satınalma Talepleri",
"Order": 5,
"Url": "/admin/supplychain/requests",
"Icon": "FcServices",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.SupplyChain",
"Code": "App.SupplyChain.Requisitions",
"DisplayName": "Satınalma İstekleri",
"Order": 6,
"Url": "/admin/supplychain/requisitions",
"Icon": "FcPlanner",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.SupplyChain",
"Code": "App.SupplyChain.Quotations",
"DisplayName": "Teklifler",
"Order": 7,
"Url": "/admin/supplychain/quotations",
"Icon": "FcSurvey",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.SupplyChain",
"Code": "App.SupplyChain.Approvals",
"DisplayName": "Onay İş Akışları",
"Order": 8,
"Url": "/admin/supplychain/approvals",
"Icon": "FcApproval",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.SupplyChain",
"Code": "App.SupplyChain.Orders",
"DisplayName": "Siparişler",
"Order": 9,
"Url": "/admin/supplychain/orders",
"Icon": "FcShop",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.SupplyChain",
"Code": "App.SupplyChain.Delivery",
"DisplayName": "Teslimat Takibi",
"Order": 10,
"Url": "/admin/supplychain/delivery",
"Icon": "FcShipped",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": null,
"Code": "App.Maintenance",
"DisplayName": "Bakım",
"Order": 600,
"Url": null,
"Icon": "FcFactory",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Maintenance",
"Code": "App.Maintenance.Equipment",
"DisplayName": "Ekipmanlar",
"Order": 1,
"Url": "/admin/maintenance/equipment",
"Icon": "FcEngineering",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Maintenance",
"Code": "App.Maintenance.Workcenters",
"DisplayName": "İş Merkezleri",
"Order": 2,
"Url": "/admin/maintenance/workcenters",
"Icon": "FcWorkflow",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Maintenance",
"Code": "App.Maintenance.Plans",
"DisplayName": "Bakım Planları",
"Order": 3,
"Url": "/admin/maintenance/plans",
"Icon": "FcPlanner",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Maintenance",
"Code": "App.Maintenance.Calendar",
"DisplayName": "Bakım Takvimi",
"Order": 4,
"Url": "/admin/maintenance/calendar",
"Icon": "FcCalendar",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Maintenance",
"Code": "App.Maintenance.Teams",
"DisplayName": "Bakım Takımları",
"Order": 5,
"Url": "/admin/maintenance/teams",
"Icon": "FcConferenceCall",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Maintenance",
"Code": "App.Maintenance.Faults",
"DisplayName": "Arıza Bildirimleri",
"Order": 6,
"Url": "/admin/maintenance/faults",
"Icon": "FcHighPriority",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Maintenance",
"Code": "App.Maintenance.Workorders",
"DisplayName": "Bakım İş Emirleri",
"Order": 7,
"Url": "/admin/maintenance/workorders",
"Icon": "FcList",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": null,
"Code": "App.Warehouse",
"DisplayName": "Depo",
"Order": 700,
"Url": null,
"Icon": "FcOpenedFolder",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Warehouse",
"Code": "App.Warehouse.Definitions",
"DisplayName": "Tanımlar",
"Order": 1,
"Url": "/admin/warehouse/definitions",
"Icon": "FcTodoList",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Warehouse",
"Code": "App.Warehouse.Tracking",
"DisplayName": "Lokasyon Takibi",
"Order": 2,
"Url": "/admin/warehouse/tracking",
"Icon": "FcSearch",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Warehouse",
"Code": "App.Warehouse.Putaway",
"DisplayName": "Yerleştirme",
"Order": 3,
"Url": "/admin/warehouse/putaway",
"Icon": "FcCompactCamera",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Warehouse",
"Code": "App.Warehouse.Receipt",
"DisplayName": "Stok Giriş",
"Order": 4,
"Url": "/admin/warehouse/receipt",
"Icon": "FcImport",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Warehouse",
"Code": "App.Warehouse.Issue",
"DisplayName": "Stok Çıkış",
"Order": 5,
"Url": "/admin/warehouse/issue",
"Icon": "FcExport",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Warehouse",
"Code": "App.Warehouse.Transfer",
"DisplayName": "Stok Transfer",
"Order": 6,
"Url": "/admin/warehouse/transfer",
"Icon": "FcSynchronize",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Warehouse",
"Code": "App.Warehouse.Inventory",
"DisplayName": "Stok Durumu",
"Order": 7,
"Url": "/admin/warehouse/inventory",
"Icon": "FcInspection",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Warehouse",
"Code": "App.Warehouse.Movements",
"DisplayName": "Stok Hareketleri",
"Order": 8,
"Url": "/admin/warehouse/movements",
"Icon": "FcParallelTasks",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Warehouse",
"Code": "App.Warehouse.Stocklevel",
"DisplayName": "Envanter Takibi",
"Order": 9,
"Url": "/admin/warehouse/stocklevel",
"Icon": "FcViewDetails",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": null,
"Code": "App.Projects",
"DisplayName": "Arge",
"Order": 800,
"Url": null,
"Icon": "FcTimeline",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.List",
"DisplayName": "Projeler",
"Order": 1,
"Url": "/admin/projects",
"Icon": "FcTodoList",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.Tasks",
"DisplayName": "Görevler",
"Order": 2,
"Url": "/admin/projects/tasks",
"Icon": "FcBullish",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.Phases",
"DisplayName": "Aşamalar",
"Order": 3,
"Url": "/admin/projects/phases",
"Icon": "FcParallelTasks",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.Activities",
"DisplayName": "Aktiviteler",
"Order": 4,
"Url": "/admin/projects/activities",
"Icon": "FcPlanner",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.Workload",
"DisplayName": "İş Yükü",
"Order": 5,
"Url": "/admin/projects/workload",
"Icon": "FcFlowChart",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.CostTracking",
"DisplayName": "Maliyet Takibi",
"Order": 6,
"Url": "/admin/projects/cost-tracking",
"Icon": "FcMoneyTransfer",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.DailyUpdates",
"DisplayName": "Günlük Güncellemeler",
"Order": 7,
"Url": "/admin/projects/daily-updates",
"Icon": "FcConferenceCall",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": null,
"Code": "App.HR",
"DisplayName": "İK",
"Order": 900,
"Url": null,
"Icon": "FcBusinessman",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.HR",
"Code": "App.HR.Employees",
"DisplayName": "Çalışanlar",
"Order": 1,
"Url": "/admin/hr/employees",
"Icon": "FcConferenceCall",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.HR",
"Code": "App.HR.Departments",
"DisplayName": "Departmanlar",
"Order": 2,
"Url": "/admin/hr/departments",
"Icon": "FcDepartment",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.HR",
"Code": "App.HR.JobPositions",
"DisplayName": "İş Pozisyonları",
"Order": 3,
"Url": "/admin/hr/job-positions",
"Icon": "FcCollaboration",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.HR",
"Code": "App.HR.EmploymentTypes",
"DisplayName": "İstihdam Türleri",
"Order": 4,
"Url": "/admin/hr/employment-types",
"Icon": "FcBriefcase",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.HR",
"Code": "App.HR.Organization",
"DisplayName": "Organizasyon",
"Order": 5,
"Url": "/admin/hr/organization",
"Icon": "FcTreeStructure",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.HR",
"Code": "App.HR.Badges",
"DisplayName": "Rozetler",
"Order": 6,
"Url": "/admin/hr/badges",
"Icon": "FcLike",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.HR",
"Code": "App.HR.LeaveManagement",
"DisplayName": "İzin Yönetimi",
"Order": 7,
"Url": "/admin/hr/leave-management",
"Icon": "FcCalendar",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.HR",
"Code": "App.HR.Overtimes",
"DisplayName": "Mesai Yönetimi",
"Order": 8,
"Url": "/admin/hr/overtimes-management",
"Icon": "FcClock",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.HR",
"Code": "App.HR.Payroll",
"DisplayName": "Bordro",
"Order": 9,
"Url": "/admin/hr/payroll",
"Icon": "FcMoneyTransfer",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.HR",
"Code": "App.HR.CostCenters",
"DisplayName": "Maliyet Merkezleri",
"Order": 10,
"Url": "/admin/hr/cost-centers",
"Icon": "FcSalesPerformance",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.HR",
"Code": "App.HR.EvaluationTemplates",
"DisplayName": "360 Şablonları",
"Order": 11,
"Url": "/admin/hr/360-templates",
"Icon": "FcInspection",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.HR",
"Code": "App.HR.Evaluation",
"DisplayName": "360 Değerlendirme",
"Order": 12,
"Url": "/admin/hr/360-evaluation",
"Icon": "FcSurvey",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": null,
"Code": "App.CRM",
"DisplayName": "CRM",
"Order": 1000,
"Url": null,
"Icon": "FcContacts",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.CRM",
"Code": "App.CRM.Customers",
"DisplayName": "Müşteriler",
"Order": 1,
"Url": "/admin/crm/customers",
"Icon": "FcBusinessman",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.CRM",
"Code": "App.CRM.SalesTeams",
"DisplayName": "Satış Ekipleri",
"Order": 2,
"Url": "/admin/crm/sales-teams",
"Icon": "FcCollaboration",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.CRM",
"Code": "App.CRM.LossReasons",
"DisplayName": "Kayıp Nedenleri",
"Order": 3,
"Url": "/admin/crm/loss-reasons",
"Icon": "FcHighPriority",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.CRM",
"Code": "App.CRM.Opportunities",
"DisplayName": "Fırsatlar",
"Order": 4,
"Url": "/admin/crm/opportunities",
"Icon": "FcIdea",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.CRM",
"Code": "App.CRM.Activities",
"DisplayName": "Aktiviteler",
"Order": 5,
"Url": "/admin/crm/activities",
"Icon": "FcCalendar",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.CRM",
"Code": "App.CRM.SalesOrders",
"DisplayName": "Satış Siparişleri",
"Order": 6,
"Url": "/admin/crm/sales-orders",
"Icon": "FcShop",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": null,
"Code": "App.MRP",
"DisplayName": "MRP",
"Order": 1100,
"Url": null,
"Icon": "FcServices",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.MRP",
"Code": "App.MRP.OperationTypes",
"DisplayName": "Operasyon Türleri",
"Order": 1,
"Url": "/admin/mrp/operation-types",
"Icon": "FcEngineering",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.MRP",
"Code": "App.MRP.Workcenters",
"DisplayName": "İş Merkezleri",
"Order": 2,
"Url": "/admin/mrp/workcenters",
"Icon": "FcWorkflow",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.MRP",
"Code": "App.MRP.Operations",
"DisplayName": "Operasyonlar",
"Order": 3,
"Url": "/admin/mrp/operations",
"Icon": "FcFlashOn",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.MRP",
"Code": "App.MRP.Bom",
"DisplayName": "Ürün Ağaçları",
"Order": 4,
"Url": "/admin/mrp/bom",
"Icon": "FcFlowChart",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.MRP",
"Code": "App.MRP.ProductionOrders",
"DisplayName": "Üretim Emirleri",
"Order": 5,
"Url": "/admin/mrp/production-orders",
"Icon": "FcFactory",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.MRP",
"Code": "App.MRP.WorkOrders",
"DisplayName": "İş Emirleri",
"Order": 6,
"Url": "/admin/mrp/work-orders",
"Icon": "FcList",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.MRP",
"Code": "App.MRP.DemandPlanning",
"DisplayName": "Talep Planlama",
"Order": 7,
"Url": "/admin/mrp/demand-planning",
"Icon": "FcPlanner",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.MRP",
"Code": "App.MRP.MaterialRequirements",
"DisplayName": "Malzeme İhtiyaçları",
"Order": 8,
"Url": "/admin/mrp/material-requirements",
"Icon": "FcDataSheet",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.MRP",
"Code": "App.MRP.PlanningGantt",
"DisplayName": "Planlama Gantt",
"Order": 9,
"Url": "/admin/mrp/planning-gantt",
"Icon": "FcTimeline",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": null,
"Code": "App.Accounting",
"DisplayName": "Muhasebe",
"Order": 1200,
"Url": null,
"Icon": "FcMoneyTransfer",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Accounting",
"Code": "App.Accounting.CurrentAccounts",
"DisplayName": "Cari Hesaplar",
"Order": 1,
"Url": "/admin/accounting/current-accounts",
"Icon": "FcDebt",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Accounting",
"Code": "App.Accounting.Waybills",
"DisplayName": "İrsaliyeler",
"Order": 2,
"Url": "/admin/accounting/waybills",
"Icon": "FcSurvey",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Accounting",
"Code": "App.Accounting.Invoices",
"DisplayName": "Faturalar",
"Order": 3,
"Url": "/admin/accounting/invoices",
"Icon": "FcSalesPerformance",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Accounting",
"Code": "App.Accounting.Cash",
"DisplayName": "Kasa",
"Order": 4,
"Url": "/admin/accounting/cash",
"Icon": "FcMoneyTransfer",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Accounting",
"Code": "App.Accounting.Bank",
"DisplayName": "Banka",
"Order": 5,
"Url": "/admin/accounting/bank",
"Icon": "FcSalesPerformance",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Accounting",
"Code": "App.Accounting.CheckNote",
"DisplayName": "Çek & Senet",
"Order": 6,
"Url": "/admin/accounting/check-note",
"Icon": "FcInspection",
"RequiredPermissionName": null,
"IsDisabled": false
} }
], ],
"Routes": [ "Routes": [

View file

@ -1,5 +1,5 @@
.menu-item { .menu-item {
@apply cursor-pointer font-semibold px-3 rounded-md flex items-center w-full whitespace-nowrap gap-x-2; @apply cursor-pointer font-semibold px-2 rounded-md flex items-center w-full whitespace-nowrap gap-x-2;
&.menu-item-light { &.menu-item-light {
@apply text-gray-600; @apply text-gray-600;

View file

@ -3,7 +3,7 @@
} }
.header-wrapper { .header-wrapper {
@apply flex relative items-center justify-between p-0 px-4 w-full; @apply flex relative items-center justify-between p-0 px-1 w-full;
} }
.header-action { .header-action {
@ -11,7 +11,7 @@
} }
.header-action-item { .header-action-item {
@apply cursor-pointer p-2 rounded-full mx-1; @apply cursor-pointer p-1 rounded-full mx-1;
} }
.header-action-item-hoverable { .header-action-item-hoverable {

View file

@ -20,7 +20,7 @@ const AiAssistant = () => {
<Tooltip title={translate('::Abp.Identity.Ai')}> <Tooltip title={translate('::Abp.Identity.Ai')}>
<div <div
onClick={() => navigate(ROUTES_ENUM.protected.admin.ai)} onClick={() => navigate(ROUTES_ENUM.protected.admin.ai)}
className="flex items-center justify-center w-9 h-9 m-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer transition-colors duration-200" className="flex items-center justify-center w-9 h-9 m-1 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer transition-colors duration-200"
> >
<FcHeadset size={24} /> <FcHeadset size={24} />
</div> </div>

View file

@ -22,7 +22,7 @@ const Header = (props: HeaderProps) => {
container && 'container mx-auto', container && 'container mx-auto',
)} )}
> >
<div className="header-action header-action-start">{headerStart}</div> <div className='flex'>{headerStart}</div>
{headerMiddle && <div className="header-action header-action-middle">{headerMiddle}</div>} {headerMiddle && <div className="header-action header-action-middle">{headerMiddle}</div>}
<div className="header-action header-action-end">{headerEnd}</div> <div className="header-action header-action-end">{headerEnd}</div>
</div> </div>

View file

@ -10,7 +10,6 @@ import { useStoreState } from '@/store'
import HorizontalMenuDropdownItem from './HorizontalMenuDropdownItem' import HorizontalMenuDropdownItem from './HorizontalMenuDropdownItem'
import HorizontalMenuItem from './HorizontalMenuItem' import HorizontalMenuItem from './HorizontalMenuItem'
import HorizontalMenuIcon from './HorizontalMenuIcon' import HorizontalMenuIcon from './HorizontalMenuIcon'
import { useLocalization } from '@/utils/hooks/useLocalization'
type HorizontalMenuContentProps = { type HorizontalMenuContentProps = {
manuVariant: NavMode manuVariant: NavMode
@ -21,7 +20,7 @@ const HorizontalMenuContent = ({ manuVariant }: HorizontalMenuContentProps) => {
const { mainMenu: navigationConfig } = useStoreState((state) => state.abpConfig.menu) const { mainMenu: navigationConfig } = useStoreState((state) => state.abpConfig.menu)
return ( return (
<span className="flex items-center"> <div className="flex flex-wrap justify-start items-center">
{navigationConfig.map((nav) => { {navigationConfig.map((nav) => {
if (nav.type === NAV_ITEM_TYPE_TITLE || nav.type === NAV_ITEM_TYPE_COLLAPSE) { if (nav.type === NAV_ITEM_TYPE_TITLE || nav.type === NAV_ITEM_TYPE_COLLAPSE) {
return ( return (
@ -54,23 +53,12 @@ const HorizontalMenuContent = ({ manuVariant }: HorizontalMenuContentProps) => {
} }
permissions={tertiarySubNav.authority} permissions={tertiarySubNav.authority}
> >
<HorizontalMenuDropdownItem <HorizontalMenuDropdownItem nav={tertiarySubNav} />
key={
tertiarySubNav.key ||
`ter-item-${tertiarySubNav.path || Math.random()}`
}
nav={tertiarySubNav}
/>
</PermissionCheck> </PermissionCheck>
))} ))}
</Dropdown.Menu> </Dropdown.Menu>
) : ( ) : (
<HorizontalMenuDropdownItem <HorizontalMenuDropdownItem nav={secondarySubNav} />
key={
secondarySubNav.key || `sec-item-${secondarySubNav.path || Math.random()}`
}
nav={secondarySubNav}
/>
)} )}
</PermissionCheck> </PermissionCheck>
))} ))}
@ -87,8 +75,9 @@ const HorizontalMenuContent = ({ manuVariant }: HorizontalMenuContentProps) => {
} }
return <></> return <></>
})} })}
</span> </div>
) )
} }
export default HorizontalMenuContent export default HorizontalMenuContent

View file

@ -19,7 +19,7 @@ const HorizontalMenuNavLink = ({
}: HorizontalMenuNavLinkProps) => { }: HorizontalMenuNavLinkProps) => {
return ( return (
<Link <Link
className={classNames('flex items-center justify-start w-full h-full', className)} className={classNames('flex items-center justify-start', className)}
to={path} to={path}
target={isExternalLink ? '_blank' : ''} target={isExternalLink ? '_blank' : ''}
> >

View file

@ -33,7 +33,7 @@ const _LanguageSelector = ({ className }: CommonProps) => {
<Spinner size={20} /> <Spinner size={20} />
) : ( ) : (
selectLangFlag && ( selectLangFlag && (
<Avatar size={24} shape="circle" src={`/img/countries/${selectLangFlag}.png`} /> <Avatar size={22} shape="circle" src={`/img/countries/${selectLangFlag}.png`} />
) )
)} )}
</div> </div>

View file

@ -33,14 +33,14 @@ const SecondaryHeader = (props: SecondaryHeaderProps) => {
{larger.md && ( {larger.md && (
<div <div
className={classNames( className={classNames(
'h-16 flex items-center', 'h-12 flex items-center',
headerColor(), headerColor(),
className className
)} )}
> >
<div <div
className={classNames( className={classNames(
'flex items-center px-4', 'flex items-center px-2',
contained && 'container mx-auto' contained && 'container mx-auto'
)} )}
> >

View file

@ -19,7 +19,7 @@ export const SPLITTED_SIDE_NAV_MINI_WIDTH = 80
export const SPLITTED_SIDE_NAV_SECONDARY_WIDTH = 250 export const SPLITTED_SIDE_NAV_SECONDARY_WIDTH = 250
export const SIDE_NAV_CONTENT_GUTTER = 'px-4' export const SIDE_NAV_CONTENT_GUTTER = 'px-4'
export const LOGO_X_GUTTER = 'px-4' export const LOGO_X_GUTTER = 'px-4'
export const HEADER_HEIGHT_CLASS = 'h-16' export const HEADER_HEIGHT_CLASS = 'h-14'
export const PAGE_CONTAINER_GUTTER_X = 'px-4 sm:px-6 md:px-8' export const PAGE_CONTAINER_GUTTER_X = 'px-4 sm:px-6 md:px-8'
export const PAGE_CONTAINER_GUTTER_Y = 'py-4 sm:py-6 md:px-8' export const PAGE_CONTAINER_GUTTER_Y = 'py-4 sm:py-6 md:px-8'

View file

@ -83,6 +83,145 @@ export const ROUTES_ENUM = {
planning: '/admin/classroom/planning/:id', planning: '/admin/classroom/planning/:id',
}, },
}, },
supplychain: {
materialTypes: '/admin/supplychain/materials/types',
materialGroups: '/admin/supplychain/materials/groups',
materials: '/admin/supplychain/materials',
materialsNew: '/admin/supplychain/materials/new',
materialsEdit: '/admin/supplychain/materials/edit/:id',
materialsDetail: '/admin/supplychain/materials/detail/:id',
suppliers: '/admin/supplychain/suppliers',
suppliersNew: '/admin/supplychain/suppliers/new',
suppliersEdit: '/admin/supplychain/suppliers/edit/:id',
suppliersDetail: '/admin/supplychain/suppliers/:id',
requests: '/admin/supplychain/requests',
requestsNew: '/admin/supplychain/requests/new',
requestsEdit: '/admin/supplychain/requests/edit/:id',
requestsView: '/admin/supplychain/requests/view/:id',
requisitions: '/admin/supplychain/requisitions',
requisitionsNew: '/admin/supplychain/requisitions/new',
requisitionsEdit: '/admin/supplychain/requisitions/edit/:id',
requisitionsDetail: '/admin/supplychain/requisitions/:id',
quotations: '/admin/supplychain/quotations',
quotationsNew: '/admin/supplychain/quotations/new',
quotationsEdit: '/admin/supplychain/quotations/edit/:id',
quotationsView: '/admin/supplychain/quotations/view/:id',
approvals: '/admin/supplychain/approvals',
orders: '/admin/supplychain/orders',
ordersNew: '/admin/supplychain/orders/new',
ordersEdit: '/admin/supplychain/orders/edit/:id',
ordersView: '/admin/supplychain/orders/view/:id',
delivery: '/admin/supplychain/delivery',
},
maintenance: {
equipment: '/admin/maintenance/equipment',
equipmentNew: '/admin/maintenance/equipment/new',
equipmentEdit: '/admin/maintenance/equipment/edit/:id',
equipmentDetail: '/admin/maintenance/equipment/:id',
workcenters: '/admin/maintenance/workcenters',
plans: '/admin/maintenance/plans',
calendar: '/admin/maintenance/calendar',
teams: '/admin/maintenance/teams',
faults: '/admin/maintenance/faults',
workorders: '/admin/maintenance/workorders',
workordersNew: '/admin/maintenance/workorders/new',
workordersDetail: '/admin/maintenance/workorders/:id',
},
warehouse: {
definitions: '/admin/warehouse/definitions',
tracking: '/admin/warehouse/tracking',
putaway: '/admin/warehouse/putaway',
receipt: '/admin/warehouse/receipt',
issue: '/admin/warehouse/issue',
transfer: '/admin/warehouse/transfer',
inventory: '/admin/warehouse/inventory',
movements: '/admin/warehouse/movements',
movementDetail: '/admin/warehouse/movements/:id',
stocklevel: '/admin/warehouse/stocklevel',
warehouses: '/admin/warehouse/warehouses',
warehouseNew: '/admin/warehouse/new',
warehouseEdit: '/admin/warehouse/edit/:id',
warehouseDetail: '/admin/warehouse/warehouses/:id',
},
projects: {
list: '/admin/projects',
new: '/admin/projects/new',
edit: '/admin/projects/edit/:id',
detail: '/admin/projects/:id',
tasks: '/admin/projects/tasks',
phases: '/admin/projects/phases',
activities: '/admin/projects/activities',
workload: '/admin/projects/workload',
costTracking: '/admin/projects/cost-tracking',
dailyUpdates: '/admin/projects/daily-updates',
},
hr: {
employees: '/admin/hr/employees',
employeesNew: '/admin/hr/employees/new',
employeesEdit: '/admin/hr/employees/edit/:id',
employeesDetail: '/admin/hr/employees/:id',
departments: '/admin/hr/departments',
jobPositions: '/admin/hr/job-positions',
employmentTypes: '/admin/hr/employment-types',
organization: '/admin/hr/organization',
badges: '/admin/hr/badges',
leaveManagement: '/admin/hr/leave-management',
overtimes: '/admin/hr/overtimes-management',
payroll: '/admin/hr/payroll',
costCenters: '/admin/hr/cost-centers',
evaluationTemplates: '/admin/hr/360-templates',
evaluation: '/admin/hr/360-evaluation',
},
crm: {
customers: '/admin/crm/customers',
customersNew: '/admin/crm/customers/new',
customersEdit: '/admin/crm/customers/edit/:id',
customersDetail: '/admin/crm/customers/:id',
salesTeams: '/admin/crm/sales-teams',
salesTeamsNew: '/admin/crm/sales-teams/new',
salesTeamsEdit: '/admin/crm/sales-teams/edit/:id',
salesTeamsDetail: '/admin/crm/sales-teams/:id',
lossReasons: '/admin/crm/loss-reasons',
opportunities: '/admin/crm/opportunities',
opportunitiesNew: '/admin/crm/opportunities/new',
opportunitiesEdit: '/admin/crm/opportunities/edit/:id',
opportunitiesDetail: '/admin/crm/opportunities/:id',
activities: '/admin/crm/activities',
salesOrders: '/admin/crm/sales-orders',
salesOrdersNew: '/admin/crm/sales-orders/new',
salesOrdersEdit: '/admin/crm/sales-orders/edit/:id',
salesOrdersDetail: '/admin/crm/sales-orders/:id',
},
mrp: {
operationTypes: '/admin/mrp/operation-types',
workcenters: '/admin/mrp/workcenters',
operations: '/admin/mrp/operations',
bom: '/admin/mrp/bom',
productionOrders: '/admin/mrp/production-orders',
productionOrderNew: '/admin/mrp/production-orders/new',
productionOrderEdit: '/admin/mrp/production-orders/:id/edit',
productionOrderDetail: '/admin/mrp/production-orders/:id',
workOrders: '/admin/mrp/work-orders',
demandPlanning: '/admin/mrp/demand-planning',
materialRequirements: '/admin/mrp/material-requirements',
planningGantt: '/admin/mrp/planning-gantt',
},
accounting: {
currentAccounts: '/admin/accounting/current-accounts',
waybills: '/admin/accounting/waybills',
invoices: '/admin/accounting/invoices',
invoicesNew: '/admin/accounting/invoices/new',
cash: '/admin/accounting/cash',
bank: '/admin/accounting/bank',
checkNote: '/admin/accounting/check-note',
},
accessDenied: '/admin/access-denied', accessDenied: '/admin/access-denied',
}, },
} }