diff --git a/src/components/LeftMenuItem.vue b/src/components/LeftMenuItem.vue index 5e0ee461f..d12fb8428 100644 --- a/src/components/LeftMenuItem.vue +++ b/src/components/LeftMenuItem.vue @@ -20,7 +20,13 @@ const itemComputed = computed(() => { }); - + @@ -33,3 +39,9 @@ const itemComputed = computed(() => { + + diff --git a/src/components/ui/CardDescriptor.vue b/src/components/ui/CardDescriptor.vue index 0e74016cd..b83cca3f4 100644 --- a/src/components/ui/CardDescriptor.vue +++ b/src/components/ui/CardDescriptor.vue @@ -242,6 +242,7 @@ const emit = defineEmits(['onFetch']); width: 256px; .header { display: flex; + align-items: center; } .icons { margin: 0 10px; diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml index 95bd871aa..d27267223 100644 --- a/src/i18n/locale/en.yml +++ b/src/i18n/locale/en.yml @@ -101,6 +101,7 @@ globals: zonesList: Zones deliveryList: Delivery days upcomingList: Upcoming deliveries + role: Role created: Created worker: Worker now: Now @@ -1253,6 +1254,13 @@ monitor: pageTitles: monitors: Monitors list: List +zone: + pageTitles: + zones: Zones + zonesList: Zones + deliveryList: Delivery days + upcomingList: Upcoming deliveries + components: topbar: {} itemsFilterPanel: diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml index 0cbcc984b..e1c67c629 100644 --- a/src/i18n/locale/es.yml +++ b/src/i18n/locale/es.yml @@ -101,6 +101,7 @@ globals: zonesList: Zonas deliveryList: Días de entrega upcomingList: Próximos repartos + role: Role created: Fecha creación worker: Trabajador now: Ahora @@ -1240,14 +1241,21 @@ item/itemType: summary: Resumen zone: pageTitles: - zones: Zona - zonesList: Zonas + zones: Zonas + list: Zonas + deliveryList: Días de entrega + upcomingList: Próximos repartos +role: + pageTitles: + zones: Zonas + list: Zonas deliveryList: Días de entrega upcomingList: Próximos repartos monitor: pageTitles: monitors: Monitores list: Listado + components: topbar: {} itemsFilterPanel: diff --git a/src/pages/Account/AccountAccounts.vue b/src/pages/Account/AccountAccounts.vue new file mode 100644 index 000000000..dc6690487 --- /dev/null +++ b/src/pages/Account/AccountAccounts.vue @@ -0,0 +1,111 @@ + + + + + + TODO Cuentas + + + + + + + + + + {{ scope.opt?.nickname }} + + #{{ scope.opt?.id }} + + + + + + + + + + + + + + {{ scope.opt?.agencyModeName }} - + {{ scope.opt?.warehouseInName }} ({{ + toDate(scope.opt?.shipped) + }}) → + {{ scope.opt?.warehouseOutName }} ({{ + toDate(scope.opt?.landed) + }}) + + + + + + + + + + + + + + + diff --git a/src/pages/Account/AccountAcls.vue b/src/pages/Account/AccountAcls.vue new file mode 100644 index 000000000..8de4d3dc1 --- /dev/null +++ b/src/pages/Account/AccountAcls.vue @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + {{ row.clientName }} + + + + + + + + + + + + + + + {{ row.stateDescription }} + + + + + + + + + + + + + + + + diff --git a/src/pages/Account/AccountAlias.vue b/src/pages/Account/AccountAlias.vue new file mode 100644 index 000000000..dd484bc8c --- /dev/null +++ b/src/pages/Account/AccountAlias.vue @@ -0,0 +1,75 @@ + + + + + + + + + + + + {{ row.warehouse?.name }} + + + deleteWarehouse(row, rows, rowIndex) + ) + " + > + + {{ t('warehouses.delete') }} + + + + + + + + + + + + {{ t('warehouses.add') }} + + + + diff --git a/src/pages/Account/AccountConnections.vue b/src/pages/Account/AccountConnections.vue new file mode 100644 index 000000000..1128205b8 --- /dev/null +++ b/src/pages/Account/AccountConnections.vue @@ -0,0 +1,75 @@ + + + + + + + + + + + + {{ row.warehouse?.name }} + + + deleteWarehouse(row, rows, rowIndex) + ) + " + > + + {{ t('warehouses.delete') }} + + + + + + + + + + + + {{ t('warehouses.refresh') }} + + + + diff --git a/src/pages/Account/AccountCreate.vue b/src/pages/Account/AccountCreate.vue new file mode 100644 index 000000000..ca69fbb00 --- /dev/null +++ b/src/pages/Account/AccountCreate.vue @@ -0,0 +1,159 @@ + + + + (suppliersOptions = data)" + auto-load + /> + (travelsOptions = data)" + auto-load + /> + (companiesOptions = data)" + auto-load + /> + + + + + + + + + + + + + + + + {{ scope.opt?.nickname }} + + #{{ scope.opt?.id }} + + + + + + + + + + + + + + {{ scope.opt?.agencyModeName }} - + {{ scope.opt?.warehouseInName }} ({{ + toDate(scope.opt?.shipped) + }}) → + {{ scope.opt?.warehouseOutName }} ({{ + toDate(scope.opt?.landed) + }}) + + + + + + + + + + + + + + + + + + es: + Supplier: Proveedor + Travel: Envío + Company: Empresa + diff --git a/src/pages/Account/AccountFilter.vue b/src/pages/Account/AccountFilter.vue new file mode 100644 index 000000000..23b72266c --- /dev/null +++ b/src/pages/Account/AccountFilter.vue @@ -0,0 +1,225 @@ + + + + (states = data)" auto-load /> + (workers = data)" + auto-load + /> + + + + {{ t(`params.${tag.label}`) }}: + {{ formatFn(tag.value) }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +en: + params: + search: Contains + clientFk: Customer + clientName: Customer + salesPersonFk: Salesperson + attenderFk: Attender + accountResponsibleFk: Responsible + accountStateFk: State + created: Created + myTeam: My team +es: + params: + search: Contiene + clientFk: Cliente + clientName: Cliente + salesPersonFk: Comercial + attenderFk: Asistente + accountResponsibleFk: Responsable + accountStateFk: Estado + created: Creada + Customer ID: ID cliente + Client Name: Nombre del cliente + Salesperson: Comercial + Attender: Asistente + Responsible: Responsable + State: Estado + Item: Artículo + Created: Creada + More options: Más opciones + myTeam: Mi equipo + diff --git a/src/pages/Account/AccountLdap.vue b/src/pages/Account/AccountLdap.vue new file mode 100644 index 000000000..4d5fdfb34 --- /dev/null +++ b/src/pages/Account/AccountLdap.vue @@ -0,0 +1,65 @@ + + + + + + TODO LDAP + + + + + + {{ t('ldap.testConnection') }} + + + + + + + + + + + + + + + + + + + + + diff --git a/src/pages/Account/AccountList.vue b/src/pages/Account/AccountList.vue new file mode 100644 index 000000000..56d54a47d --- /dev/null +++ b/src/pages/Account/AccountList.vue @@ -0,0 +1,109 @@ + + + + + + + + + + + + {{ t('globals.collapseMenu') }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/pages/Account/AccountMain.vue b/src/pages/Account/AccountMain.vue new file mode 100644 index 000000000..f0dc2e500 --- /dev/null +++ b/src/pages/Account/AccountMain.vue @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/src/pages/Account/AccountSamba.vue b/src/pages/Account/AccountSamba.vue new file mode 100644 index 000000000..d04ba1ed5 --- /dev/null +++ b/src/pages/Account/AccountSamba.vue @@ -0,0 +1,82 @@ + + + + + + TODO SAMBA + + + + + {{ t('samba.testConnection') }} + + + + + {{ t('samba.verifyCertificate') }} + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/pages/Account/Card/AccountBasicData.vue b/src/pages/Account/Card/AccountBasicData.vue new file mode 100644 index 000000000..232e18d52 --- /dev/null +++ b/src/pages/Account/Card/AccountBasicData.vue @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/pages/Account/Card/AccountCard.vue b/src/pages/Account/Card/AccountCard.vue new file mode 100644 index 000000000..4fa3bad7f --- /dev/null +++ b/src/pages/Account/Card/AccountCard.vue @@ -0,0 +1,15 @@ + + + + diff --git a/src/pages/Account/Card/AccountDescriptor.vue b/src/pages/Account/Card/AccountDescriptor.vue new file mode 100644 index 000000000..55ae92b92 --- /dev/null +++ b/src/pages/Account/Card/AccountDescriptor.vue @@ -0,0 +1,121 @@ + + + + + + + + {{ t('Go to module index') }} + + + + + + + + + + + + + + + + {{ t('account.imageNotFound') }} + + + + + + + + + + + + + + {{ t('account.card.ticketTracking') }} + + + + + + + + en: + accountRate: Claming rate + es: + accountRate: Ratio de reclamación + diff --git a/src/pages/Account/Card/AccountDescriptorMenu.vue b/src/pages/Account/Card/AccountDescriptorMenu.vue new file mode 100644 index 000000000..bfec789ed --- /dev/null +++ b/src/pages/Account/Card/AccountDescriptorMenu.vue @@ -0,0 +1,115 @@ + + + + {{ t('account.card.actions.setPassword') }} + + + {{ t('account.card.actions.disableAccount.name') }} + + + {{ t('account.card.actions.disableUser.name') }} + + + {{ t('account.card.actions.sync.name') }} + + + + + + + + {{ t('account.card.actions.delete.name') }} + + + + +{ + "en": { + "pickupOrder": "Pickup order", + "openPickupOrder": "Open pickup order", + "sendPickupOrder": "Send pickup order", + "deleteAccount": "Delete account", + "confirmDeletion": "Confirm deletion", + "confirmDeletionMessage": "Are you sure you want to delete this account?" + }, + "es": { + "pickupOrder": "Orden de recogida", + "openPickupOrder": "Abrir orden de recogida", + "sendPickupOrder": "Enviar orden de recogida", + "deleteAccount": "Eliminar reclamación", + "confirmDeletion": "Confirmar eliminación", + "confirmDeletionMessage": "Seguro que quieres eliminar esta reclamación?" + } +} + diff --git a/src/pages/Account/Card/AccountInheritedRoles.vue b/src/pages/Account/Card/AccountInheritedRoles.vue new file mode 100644 index 000000000..d8a43c623 --- /dev/null +++ b/src/pages/Account/Card/AccountInheritedRoles.vue @@ -0,0 +1,256 @@ + + + (accountReasons = data)" + auto-load + /> + (accountResults = data)" + auto-load + /> + (accountResponsibles = data)" + auto-load + /> + (accountRedeliveries = data)" + auto-load + /> + (workers = data)" + auto-load + /> + + + + + + + + + + {{ scope.opt?.name }} + + {{ scope.opt?.nickname }} + {{ scope.opt?.code }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +es: + Reason: Motivo + Result: Consecuencia + Responsible: Responsable + Worker: Trabajador + Redelivery: Devolución + diff --git a/src/pages/Account/Card/AccountLog.vue b/src/pages/Account/Card/AccountLog.vue new file mode 100644 index 000000000..8f809dd87 --- /dev/null +++ b/src/pages/Account/Card/AccountLog.vue @@ -0,0 +1,6 @@ + + + + diff --git a/src/pages/Account/Card/AccountMailAlias.vue b/src/pages/Account/Card/AccountMailAlias.vue new file mode 100644 index 000000000..d8a43c623 --- /dev/null +++ b/src/pages/Account/Card/AccountMailAlias.vue @@ -0,0 +1,256 @@ + + + (accountReasons = data)" + auto-load + /> + (accountResults = data)" + auto-load + /> + (accountResponsibles = data)" + auto-load + /> + (accountRedeliveries = data)" + auto-load + /> + (workers = data)" + auto-load + /> + + + + + + + + + + {{ scope.opt?.name }} + + {{ scope.opt?.nickname }} + {{ scope.opt?.code }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +es: + Reason: Motivo + Result: Consecuencia + Responsible: Responsable + Worker: Trabajador + Redelivery: Devolución + diff --git a/src/pages/Account/Card/AccountMailForwarding.vue b/src/pages/Account/Card/AccountMailForwarding.vue new file mode 100644 index 000000000..d8a43c623 --- /dev/null +++ b/src/pages/Account/Card/AccountMailForwarding.vue @@ -0,0 +1,256 @@ + + + (accountReasons = data)" + auto-load + /> + (accountResults = data)" + auto-load + /> + (accountResponsibles = data)" + auto-load + /> + (accountRedeliveries = data)" + auto-load + /> + (workers = data)" + auto-load + /> + + + + + + + + + + {{ scope.opt?.name }} + + {{ scope.opt?.nickname }} + {{ scope.opt?.code }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +es: + Reason: Motivo + Result: Consecuencia + Responsible: Responsable + Worker: Trabajador + Redelivery: Devolución + diff --git a/src/pages/Account/Card/AccountPrivileges.vue b/src/pages/Account/Card/AccountPrivileges.vue new file mode 100644 index 000000000..f754ddc47 --- /dev/null +++ b/src/pages/Account/Card/AccountPrivileges.vue @@ -0,0 +1,338 @@ + + + + + + {{ t('Amount') }} + + {{ toCurrency(amount) }} + + + + + {{ t('Amount Accounted') }} + + {{ toCurrency(amountAccounted) }} + + + + + + + + + + + + + + + + + + {{ value }} {{ row }} + + + + + {{ value }} + + + + + + + + + + + + + + + + {{ column.label }} + + + + + + + + + + + {{ column.value }} + + + + + + {{ column.value }} + + + + + + + + + + + + + + + + + + + + + +en: + You are about to remove {count} rows: ' + You are about to remove {count} row | + You are about to remove {count} rows' +es: + Delivered: Entregado + Quantity: Cantidad + Accounted: Reclamada + Description: Descripción + Price: Precio + Discount: Descuento + Actions: Acciones + Amount: Total + Amount Accounted: Cantidad reclamada + Delete accounted sales: Eliminar ventas reclamadas + Discount updated: Descuento actualizado + Accounted quantity: Cantidad reclamada + You are about to remove {count} rows: ' + Vas a eliminar {count} línea | + Vas a eliminar {count} líneas' + diff --git a/src/pages/Account/Card/AccountSummary.vue b/src/pages/Account/Card/AccountSummary.vue new file mode 100644 index 000000000..fb2bf6a2a --- /dev/null +++ b/src/pages/Account/Card/AccountSummary.vue @@ -0,0 +1,108 @@ + + + + (account = data)" + > + {{ account.id }} - {{ account.nickname }} + + + + + {{ t('globals.pageTitles.basicData') }} + + + + + + + + + + + diff --git a/src/pages/Account/Role/AccountRoles.vue b/src/pages/Account/Role/AccountRoles.vue new file mode 100644 index 000000000..2109a3ab4 --- /dev/null +++ b/src/pages/Account/Role/AccountRoles.vue @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ t('account.pageTitles.newRole') }} + + + + + + New rol: Nuevo role + diff --git a/src/pages/Account/Role/AccountRolesFilter.vue b/src/pages/Account/Role/AccountRolesFilter.vue new file mode 100644 index 000000000..23b72266c --- /dev/null +++ b/src/pages/Account/Role/AccountRolesFilter.vue @@ -0,0 +1,225 @@ + + + + (states = data)" auto-load /> + (workers = data)" + auto-load + /> + + + + {{ t(`params.${tag.label}`) }}: + {{ formatFn(tag.value) }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +en: + params: + search: Contains + clientFk: Customer + clientName: Customer + salesPersonFk: Salesperson + attenderFk: Attender + accountResponsibleFk: Responsible + accountStateFk: State + created: Created + myTeam: My team +es: + params: + search: Contiene + clientFk: Cliente + clientName: Cliente + salesPersonFk: Comercial + attenderFk: Asistente + accountResponsibleFk: Responsable + accountStateFk: Estado + created: Creada + Customer ID: ID cliente + Client Name: Nombre del cliente + Salesperson: Comercial + Attender: Asistente + Responsible: Responsable + State: Estado + Item: Artículo + Created: Creada + More options: Más opciones + myTeam: Mi equipo + diff --git a/src/pages/Account/Role/Card/InheritedRoles.vue b/src/pages/Account/Role/Card/InheritedRoles.vue new file mode 100644 index 000000000..cfcf224c7 --- /dev/null +++ b/src/pages/Account/Role/Card/InheritedRoles.vue @@ -0,0 +1,6 @@ + + + + diff --git a/src/pages/Account/Role/Card/RoleBasicData.vue b/src/pages/Account/Role/Card/RoleBasicData.vue new file mode 100644 index 000000000..4607ef15c --- /dev/null +++ b/src/pages/Account/Role/Card/RoleBasicData.vue @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + diff --git a/src/pages/Account/Role/Card/RoleCard.vue b/src/pages/Account/Role/Card/RoleCard.vue new file mode 100644 index 000000000..7f5a45d8b --- /dev/null +++ b/src/pages/Account/Role/Card/RoleCard.vue @@ -0,0 +1,15 @@ + + + + diff --git a/src/pages/Account/Role/Card/RoleDescriptor.vue b/src/pages/Account/Role/Card/RoleDescriptor.vue new file mode 100644 index 000000000..2df191950 --- /dev/null +++ b/src/pages/Account/Role/Card/RoleDescriptor.vue @@ -0,0 +1,93 @@ + + + + + + + {{ t('Delete') }} + + + + + + + + + + en: + accountRate: Claming rate + es: + accountRate: Ratio de reclamación + diff --git a/src/pages/Account/Role/Card/RoleForm.vue b/src/pages/Account/Role/Card/RoleForm.vue new file mode 100644 index 000000000..0fef124c6 --- /dev/null +++ b/src/pages/Account/Role/Card/RoleForm.vue @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + es: + Create role: Crear role + diff --git a/src/pages/Account/Role/Card/RoleLog.vue b/src/pages/Account/Role/Card/RoleLog.vue new file mode 100644 index 000000000..48f5eb23a --- /dev/null +++ b/src/pages/Account/Role/Card/RoleLog.vue @@ -0,0 +1,6 @@ + + + + diff --git a/src/pages/Account/Role/Card/RoleSummary.vue b/src/pages/Account/Role/Card/RoleSummary.vue new file mode 100644 index 000000000..05fee63a2 --- /dev/null +++ b/src/pages/Account/Role/Card/RoleSummary.vue @@ -0,0 +1,98 @@ + + + + (role = data)" + > + {{ role.id }} - {{ role.name }} + + + + + {{ t('globals.pageTitles.basicData') }} + + + + + + + + + + + + diff --git a/src/pages/Account/Role/Card/SubRoles.vue b/src/pages/Account/Role/Card/SubRoles.vue new file mode 100644 index 000000000..48f5eb23a --- /dev/null +++ b/src/pages/Account/Role/Card/SubRoles.vue @@ -0,0 +1,6 @@ + + + + diff --git a/src/pages/Account/locale/en.yml b/src/pages/Account/locale/en.yml new file mode 100644 index 000000000..2464d3728 --- /dev/null +++ b/src/pages/Account/locale/en.yml @@ -0,0 +1,64 @@ +account: + pageTitles: + users: Users + list: Users + roles: Roles + alias: Mail aliasses + accounts: Accounts + ldap: LDAP + samba: Samba + acls: ACLs + connections: Connections + inheritedRoles: Inherited Roles + subRoles: Sub Roles + newRole: New role + privileges: Privileges + mailAlias: Mail Alias + mailForwarding: Mail Forwarding + card: + name: Name + nickname: User + role: Rol + email: Email + alias: Alias + lang: Language + actions: + setPassword: Set password + disableAccount: + name: Disable account + title: La cuenta será deshabilitada + subtitle: ¿Seguro que quieres continuar? + disableUser: Disable user + sync: Sync + delete: Delete + search: Search user +role: + pageTitles: + inheritedRoles: Inherited Roles + subRoles: Sub Roles + + card: + description: Description + id: Id + name: Name +ldap: + enableSync: Enable synchronization + server: Server + rdn: RDN + userDN: User DN + filter: Filter + groupDN: Group DN + testConnection: Test connection + success: LDAP connection established! + +samba: + enableSync: Enable synchronization + domainController: Domain controller + domainAD: AD domain + userAD: AD user + groupDN: Group DN + passwordAD: AD password + domainPart: User DN (without domain part) + verifyCertificate: Verify certificate + testConnection: Test connection + success: Samba connection established! diff --git a/src/pages/Account/locale/es.yml b/src/pages/Account/locale/es.yml new file mode 100644 index 000000000..dd242fe63 --- /dev/null +++ b/src/pages/Account/locale/es.yml @@ -0,0 +1,74 @@ +account: + pageTitles: + users: Usuarios + list: Usuarios + roles: Roles + alias: Alias de correo + accounts: Cuentas + ldap: LDAP + samba: Samba + acls: ACLs + connections: Conexiones + inheritedRoles: Roles heredados + newRole: Nuevo rol + subRoles: Subroles + privileges: Privilegios + mailAlias: Alias de correo + mailForwarding: Reenvío de correo + card: + nickname: Usuario + name: Nombre + role: Rol + email: Mail + alias: Alias + lang: dioma + actions: + setPassword: Establecer contraseña + disableAccount: + name: Deshabilitar cuenta + title: La cuenta será deshabilitada + subtitle: ¿Seguro que quieres continuar? + disableUser: + name: Desactivar usuario + title: El usuario será deshabilitado + subtitle: ¿Seguro que quieres continuar? + sync: + name: Sincronizar + title: El usuario será sincronizado + subtitle: ¿Seguro que quieres continuar? + delete: + name: Eliminar + title: El usuario será eliminado + subtitle: ¿Seguro que quieres continuar? + + search: Buscar usuario +role: + pageTitles: + inheritedRoles: Roles heredados + subRoles: Subroles + newRole: Nuevo rol + card: + description: Descripción + id: Idd + name: Nombre + +ldap: + enableSync: Habilitar sincronización + server: Servidor + rdn: RDN + userDN: DN usuarios + filter: Filtro + groupDN: DN grupos + testConnection: Probar conexión + success: ¡Conexión con LDAP establecida! +samba: + enableSync: Habilitar sincronización + domainController: Controlador de dominio + domainAD: Dominio AD + groupDN: DN grupos + userAD: Usuario AD + passwordAD: Contraseña AD + domainPart: DN usuarios (sin la parte del dominio) + Verify certificate: Verificar certificado + testConnection: Probar conexión + success: ¡Conexión con Samba establecida! diff --git a/src/router/modules/account.js b/src/router/modules/account.js new file mode 100644 index 000000000..0f38d8a40 --- /dev/null +++ b/src/router/modules/account.js @@ -0,0 +1,200 @@ +import { RouterView } from 'vue-router'; + +export default { + path: '/account', + name: 'Account', + meta: { + title: 'users', + icon: 'face', + moduleName: 'Account', + }, + component: RouterView, + redirect: { name: 'AccountMain' }, + menus: { + main: [ + 'AccountList', + 'AccountRoles', + 'AccountAlias', + 'AccountAccounts', + 'AccountLdap', + 'AccountSamba', + 'AccountConnections', + ], + card: [ + 'AccountBasicData', + 'AccountInheritedRoles', + 'AccountMailForwarding', + 'AccountMailAlias', + 'AccountPrivileges', + 'AccountLog', + ], + }, + children: [ + { + path: '', + name: 'AccountMain', + component: () => import('src/pages/Account/AccountMain.vue'), + redirect: { name: 'AccountList' }, + children: [ + { + path: 'list', + name: 'AccountList', + meta: { + title: 'list', + icon: 'view_list', + }, + component: () => import('src/pages/Account/AccountList.vue'), + }, + { + path: 'role', + name: 'AccountRoles', + meta: { + title: 'roles', + icon: 'group', + }, + component: () => import('src/pages/Account/Role/AccountRoles.vue'), + }, + { + path: 'alias', + name: 'AccountAlias', + meta: { + title: 'alias', + icon: 'email', + }, + component: () => import('src/pages/Account/AccountAlias.vue'), + }, + { + path: 'accounts', + name: 'AccountAccounts', + meta: { + title: 'accounts', + icon: 'accessibility', + }, + component: () => import('src/pages/Account/AccountAccounts.vue'), + }, + { + path: 'ldap', + name: 'AccountLdap', + meta: { + title: 'ldap', + icon: 'account_tree', + }, + component: () => import('src/pages/Account/AccountLdap.vue'), + }, + { + path: 'samba', + name: 'AccountSamba', + meta: { + title: 'samba', + icon: 'preview', + }, + component: () => import('src/pages/Account/AccountSamba.vue'), + }, + { + path: 'acls', + name: 'AccountAcls', + meta: { + title: 'acls', + icon: 'check', + }, + component: () => import('src/pages/Account/AccountAcls.vue'), + }, + { + path: 'connections', + name: 'AccountConnections', + meta: { + title: 'connections', + icon: 'check', + }, + component: () => import('src/pages/Account/AccountConnections.vue'), + }, + + { + path: 'create', + name: 'AccountCreate', + meta: { + title: 'accountCreate', + icon: 'add', + }, + component: () => import('src/pages/Account/AccountCreate.vue'), + }, + ], + }, + { + name: 'AccountCard', + path: ':id', + component: () => import('src/pages/Account/Card/AccountCard.vue'), + redirect: { name: 'AccountSummary' }, + children: [ + { + name: 'AccountSummary', + path: 'summary', + meta: { + title: 'summary', + icon: 'launch', + }, + component: () => import('src/pages/Account/Card/AccountSummary.vue'), + }, + { + name: 'AccountBasicData', + path: 'basic-data', + meta: { + title: 'basicData', + icon: 'vn:settings', + }, + component: () => + import('src/pages/Account/Card/AccountBasicData.vue'), + }, + { + name: 'AccountInheritedRoles', + path: 'inherited-oles', + meta: { + title: 'inheritedRoles', + icon: 'group', + }, + component: () => + import('src/pages/Account/Card/AccountInheritedRoles.vue'), + }, + { + name: 'AccountMailForwarding', + path: 'mail-forwarding', + meta: { + title: 'mailForwarding', + icon: 'forward', + }, + component: () => + import('src/pages/Account/Card/AccountMailForwarding.vue'), + }, + { + name: 'AccountMailAlias', + path: 'mail-alias', + meta: { + title: 'mailAlias', + icon: 'email', + }, + component: () => + import('src/pages/Account/Card/AccountMailAlias.vue'), + }, + { + name: 'AccountPrivileges', + path: 'privileges', + meta: { + title: 'privileges', + icon: 'badge', + }, + component: () => + import('src/pages/Account/Card/AccountPrivileges.vue'), + }, + { + name: 'AccountLog', + path: 'log', + meta: { + title: 'log', + icon: 'history', + }, + component: () => import('src/pages/Account/Card/AccountLog.vue'), + }, + ], + }, + ], +}; diff --git a/src/router/modules/index.js b/src/router/modules/index.js index 38bcd54d5..ca60c78d8 100644 --- a/src/router/modules/index.js +++ b/src/router/modules/index.js @@ -12,12 +12,14 @@ import Supplier from './Supplier'; import Travel from './travel'; import Order from './order'; import Department from './department'; +import Role from './role'; import Entry from './entry'; import roadmap from './roadmap'; import Parking from './parking'; import Agency from './agency'; import ItemType from './itemType'; import Zone from './zone'; +import Account from './account'; import Monitor from './monitor'; export default [ @@ -35,11 +37,13 @@ export default [ Order, invoiceIn, Department, + Role, Entry, roadmap, Parking, Agency, ItemType, Zone, + Account, Monitor, ]; diff --git a/src/router/modules/role.js b/src/router/modules/role.js new file mode 100644 index 000000000..6aab5f945 --- /dev/null +++ b/src/router/modules/role.js @@ -0,0 +1,76 @@ +import { RouterView } from 'vue-router'; + +export default { + path: '/role', + name: 'Role', + meta: { + title: 'role', + icon: 'vn:greuge', + moduleName: 'Role', + }, + component: RouterView, + redirect: { name: 'AccountRoles' }, + menus: { + main: [], + card: ['RoleBasicData', 'SubRoles', 'InheritedRoles', 'RoleLog'], + }, + children: [ + { + name: 'RoleCard', + path: '/role/:id', + component: () => import('src/pages/Account/Role/Card/RoleCard.vue'), + redirect: { name: 'RoleSummary' }, + children: [ + { + name: 'RoleSummary', + path: 'summary', + meta: { + title: 'summary', + icon: 'launch', + }, + component: () => + import('src/pages/Account/Role/Card/RoleSummary.vue'), + }, + { + name: 'RoleBasicData', + path: 'basic-data', + meta: { + title: 'basicData', + icon: 'vn:settings', + }, + component: () => + import('src/pages/Account/Role/Card/RoleBasicData.vue'), + }, + { + name: 'SubRoles', + path: 'sub-roles', + meta: { + title: 'subRoles', + icon: 'group', + }, + component: () => import('src/pages/Account/Role/Card/SubRoles.vue'), + }, + + { + name: 'InheritedRoles', + path: 'inherited-roles', + meta: { + title: 'inheritedRoles', + icon: 'account_tree', + }, + component: () => + import('src/pages/Account/Role/Card/InheritedRoles.vue'), + }, + { + name: 'RoleLog', + path: 'log', + meta: { + title: 'log', + icon: 'history', + }, + component: () => import('src/pages/Account/Role/Card/RoleLog.vue'), + }, + ], + }, + ], +}; diff --git a/src/router/modules/worker.js b/src/router/modules/worker.js index 384978d13..927d11802 100644 --- a/src/router/modules/worker.js +++ b/src/router/modules/worker.js @@ -24,7 +24,6 @@ export default { 'WorkerTimeControl', 'WorkerLocker', ], - departmentCard: ['BasicData'], }, children: [ { diff --git a/src/router/routes.js b/src/router/routes.js index 6a0430d51..60cc24a75 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -10,6 +10,7 @@ import supplier from './modules/Supplier'; import route from './modules/route'; import travel from './modules/travel'; import department from './modules/department'; +import role from './modules/role'; import ItemType from './modules/itemType'; import shelving from 'src/router/modules/shelving'; import order from 'src/router/modules/order'; @@ -18,6 +19,7 @@ import roadmap from 'src/router/modules/roadmap'; import parking from 'src/router/modules/parking'; import agency from 'src/router/modules/agency'; import zone from 'src/router/modules/zone'; +import account from './modules/account'; import monitor from 'src/router/modules/monitor'; const routes = [ @@ -73,12 +75,14 @@ const routes = [ supplier, travel, department, + role, roadmap, entry, parking, agency, ItemType, zone, + account, { path: '/:catchAll(.*)*', name: 'NotFound', diff --git a/src/stores/useNavigationStore.js b/src/stores/useNavigationStore.js index 263a9dec8..4dd5ed2ae 100644 --- a/src/stores/useNavigationStore.js +++ b/src/stores/useNavigationStore.js @@ -23,6 +23,7 @@ export const useNavigationStore = defineStore('navigationStore', () => { 'worker', 'wagon', 'zone', + 'account', ]; const pinnedModules = ref([]); const role = useRole();
TODO Cuentas
TODO LDAP
TODO SAMBA