diff --git a/src/components/FilterItemForm.vue b/src/components/FilterItemForm.vue index 1cf36deeb..d1ceff4ce 100644 --- a/src/components/FilterItemForm.vue +++ b/src/components/FilterItemForm.vue @@ -50,25 +50,25 @@ const loading = ref(false); const tableColumns = computed(() => [ { - label: t('entry.buys.id'), + label: t('globals.id'), name: 'id', field: 'id', align: 'left', }, { - label: t('entry.buys.name'), + label: t('globals.name'), name: 'name', field: 'name', align: 'left', }, { - label: t('entry.buys.size'), + label: t('globals.size'), name: 'size', field: 'size', align: 'left', }, { - label: t('entry.buys.producer'), + label: t('globals.producer'), name: 'producerName', field: 'producer', align: 'left', @@ -152,10 +152,10 @@ const selectItem = ({ id }) => {

{{ t('Filter item') }}

- + { v-model="itemFilterParams.producerFk" /> [ { - label: t('entry.basicData.id'), + label: t('globals.id'), name: 'id', field: 'id', align: 'left', }, { - label: t('entry.basicData.warehouseOut'), + label: t('globals.warehouseOut'), name: 'warehouseOutFk', field: 'warehouseOutFk', align: 'left', @@ -62,7 +62,7 @@ const tableColumns = computed(() => [ warehousesOptions.value.find((warehouse) => warehouse.id === val).name, }, { - label: t('entry.basicData.warehouseIn'), + label: t('globals.warehouseIn'), name: 'warehouseInFk', field: 'warehouseInFk', align: 'left', @@ -70,14 +70,14 @@ const tableColumns = computed(() => [ warehousesOptions.value.find((warehouse) => warehouse.id === val).name, }, { - label: t('entry.basicData.shipped'), + label: t('globals.shipped'), name: 'shipped', field: 'shipped', align: 'left', format: (val) => toDate(val), }, { - label: t('entry.basicData.landed'), + label: t('globals.landed'), name: 'landed', field: 'landed', align: 'left', @@ -146,7 +146,7 @@ const selectTravel = ({ id }) => {

{{ t('Filter travels') }}

{ v-model="travelFilterParams.agencyModeFk" /> { v-model="travelFilterParams.warehouseOutFk" /> { v-model="travelFilterParams.warehouseInFk" /> diff --git a/src/components/ItemsFilterPanel.vue b/src/components/ItemsFilterPanel.vue index e89d32da4..938dceb4d 100644 --- a/src/components/ItemsFilterPanel.vue +++ b/src/components/ItemsFilterPanel.vue @@ -248,7 +248,7 @@ const removeTag = (index, params, search) => { > { if (!search.value) return items.value; + const normalizedSearch = normalize(search.value); return items.value.filter((item) => { - const locale = t(item.title).toLowerCase(); - return locale.includes(search.value.toLowerCase()); + const locale = normalize(t(item.title)); + return locale.includes(normalizedSearch); }); }); const filteredPinnedModules = computed(() => { if (!search.value) return pinnedModules.value; + const normalizedSearch = search.value + .normalize('NFD') + .replace(/[\u0300-\u036f]/g, '') + .toLowerCase(); const map = new Map(); for (const [key, pinnedModule] of pinnedModules.value) { - const locale = t(pinnedModule.title).toLowerCase(); - if (locale.includes(search.value.toLowerCase())) map.set(key, pinnedModule); + const locale = t(pinnedModule.title) + .normalize('NFD') + .replace(/[\u0300-\u036f]/g, '') + .toLowerCase(); + if (locale.includes(normalizedSearch)) map.set(key, pinnedModule); } return map; }); @@ -147,6 +155,13 @@ async function togglePinned(item, event) { const handleItemExpansion = (itemName) => { expansionItemElements[itemName].scrollToLastElement(); }; + +function normalize(text) { + return text + .normalize('NFD') + .replace(/[\u0300-\u036f]/g, '') + .toLowerCase(); +} @@ -114,7 +114,7 @@ onMounted(async () => await getInitialLdapConfig());
await getInitialLdapConfig()); /> diff --git a/src/pages/Account/AccountSamba.vue b/src/pages/Account/AccountSamba.vue index 7af9f4364..15b886f27 100644 --- a/src/pages/Account/AccountSamba.vue +++ b/src/pages/Account/AccountSamba.vue @@ -110,12 +110,12 @@ onMounted(async () => await getInitialSambaConfig()); - {{ t('samba.testConnection') }} + {{ t('account.card.testConnection') }} @@ -123,7 +123,7 @@ onMounted(async () => await getInitialSambaConfig());
{ diff --git a/src/pages/Account/Alias/Card/AliasBasicData.vue b/src/pages/Account/Alias/Card/AliasBasicData.vue index ba940cda5..c78dfb4df 100644 --- a/src/pages/Account/Alias/Card/AliasBasicData.vue +++ b/src/pages/Account/Alias/Card/AliasBasicData.vue @@ -11,8 +11,8 @@ const { t } = useI18n(); diff --git a/src/pages/Account/Alias/Card/AliasDescriptor.vue b/src/pages/Account/Alias/Card/AliasDescriptor.vue index 963f84547..713cecf75 100644 --- a/src/pages/Account/Alias/Card/AliasDescriptor.vue +++ b/src/pages/Account/Alias/Card/AliasDescriptor.vue @@ -71,7 +71,7 @@ const removeAlias = () => { diff --git a/src/pages/Account/Alias/Card/AliasSummary.vue b/src/pages/Account/Alias/Card/AliasSummary.vue index b2dc1f0fc..1f76fe7c2 100644 --- a/src/pages/Account/Alias/Card/AliasSummary.vue +++ b/src/pages/Account/Alias/Card/AliasSummary.vue @@ -42,8 +42,8 @@ const entityId = computed(() => $props.id || route.params.id); - - + + diff --git a/src/pages/Account/Card/AccountBasicData.vue b/src/pages/Account/Card/AccountBasicData.vue index f1cdaf9df..e6c9da6fe 100644 --- a/src/pages/Account/Card/AccountBasicData.vue +++ b/src/pages/Account/Card/AccountBasicData.vue @@ -36,7 +36,7 @@ watch(
- + diff --git a/src/pages/Account/Role/Card/RoleForm.vue b/src/pages/Account/Role/Card/RoleForm.vue index 382639beb..09a098085 100644 --- a/src/pages/Account/Role/Card/RoleForm.vue +++ b/src/pages/Account/Role/Card/RoleForm.vue @@ -22,15 +22,12 @@ const { t } = useI18n(); diff --git a/src/pages/Account/Role/Card/RoleSummary.vue b/src/pages/Account/Role/Card/RoleSummary.vue index 76c72e947..fef85f919 100644 --- a/src/pages/Account/Role/Card/RoleSummary.vue +++ b/src/pages/Account/Role/Card/RoleSummary.vue @@ -44,9 +44,9 @@ const filter = { - - - + + + diff --git a/src/pages/Account/locale/en.yml b/src/pages/Account/locale/en.yml index fe8707eb8..f2f563923 100644 --- a/src/pages/Account/locale/en.yml +++ b/src/pages/Account/locale/en.yml @@ -1,32 +1,15 @@ 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 - accountCreate: New user - aliasUsers: Users card: - name: Name nickname: User role: Role - email: Email alias: Alias lang: Language roleFk: Role newUser: New user ticketTracking: Ticket tracking + enableSync: Habilitar sincronización + groupDN: DN grupos + testConnection: Probar conexión privileges: delegate: Can delegate privileges enabled: Account enabled! @@ -74,11 +57,7 @@ account: search: Search user searchInfo: You can search by id, name or nickname create: - name: Name nickname: Nickname - email: Email - role: Role - password: Password active: Active mailForwarding: forwardingMail: Forward email @@ -86,50 +65,30 @@ account: enableMailForwarding: Enable mail forwarding mailInputInfo: All emails will be forwarded to the specified address. role: - pageTitles: - inheritedRoles: Inherited Roles - subRoles: Sub Roles - card: - description: Description - id: Id - name: Name newRole: New role searchRoles: Search role searchInfo: Search role by id or name - name: Name description: Description id: Id mailAlias: - pageTitles: - aliasUsers: Users search: Search mail alias searchInfo: Search alias by id or name - alias: Alias - description: Description - id: Id newAlias: New alias - name: Name isPublic: Public ldap: - enableSync: Enable synchronization server: Server rdn: RDN userDN: User DN filter: Filter - groupDN: Group DN - testConnection: Test connection success: LDAP connection established! password: Password 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! accounts: homedir: Homedir base @@ -147,8 +106,6 @@ connections: created: Created killSession: Kill session acls: - role: Role - accessType: Access type permissions: Permission search: Search acls searchInfo: Search acls by model name diff --git a/src/pages/Account/locale/es.yml b/src/pages/Account/locale/es.yml index 112ffe9cc..ba559f2c3 100644 --- a/src/pages/Account/locale/es.yml +++ b/src/pages/Account/locale/es.yml @@ -1,27 +1,7 @@ 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 - accountCreate: Nuevo usuario - aliasUsers: Usuarios card: nickname: Usuario - name: Nombre role: Rol - email: Mail alias: Alias lang: Idioma roleFk: Rol @@ -33,6 +13,9 @@ account: deactivated: ¡Usuario desactivado! newUser: Nuevo usuario twoFactor: Doble factor + enableSync: Habilitar sincronización + groupDN: DN grupos + testConnection: Probar conexión privileges: delegate: Puede delegar privilegios actions: @@ -73,11 +56,7 @@ account: search: Buscar usuario searchInfo: Puedes buscar por id, nombre o usuario create: - name: Nombre nickname: Nombre mostrado - email: Email - role: Rol - password: Contraseña active: Activo mailForwarding: forwardingMail: Dirección de reenvío @@ -85,51 +64,30 @@ account: enableMailForwarding: Habilitar redirección de correo mailInputInfo: Todos los correos serán reenviados a la dirección especificada, no se mantendrá copia de los mismos en el buzón del usuario. role: - pageTitles: - inheritedRoles: Roles heredados - subRoles: Subroles - newRole: Nuevo rol - card: - description: Descripción - id: Id - name: Nombre newRole: Nuevo rol searchRoles: Buscar roles searchInfo: Buscar rol por id o nombre - name: Nombre description: Descripción id: Id mailAlias: - pageTitles: - aliasUsers: Usuarios search: Buscar alias de correo searchInfo: Buscar alias por id o nombre - alias: Alias - description: Descripción - id: Id newAlias: Nuevo alias - name: Nombre isPublic: Público ldap: password: Contraseña - 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) verifyCertificate: Verificar certificado - testConnection: Probar conexión success: ¡Conexión con Samba establecida! accounts: homedir: Directorio base para carpetas de usuario @@ -147,8 +105,6 @@ connections: created: Creado killSession: Matar sesión acls: - role: Rol - accessType: Tipo de acceso permissions: Permiso search: Buscar acls searchInfo: Buscar acls por nombre diff --git a/src/pages/Customer/Card/CustomerBasicData.vue b/src/pages/Customer/Card/CustomerBasicData.vue index d31669b43..a77d2f865 100644 --- a/src/pages/Customer/Card/CustomerBasicData.vue +++ b/src/pages/Customer/Card/CustomerBasicData.vue @@ -55,7 +55,7 @@ const exprBuilder = (param, value) => { /> { { { { option-value="id" option-label="name" emit-value - :label="t('customer.basicData.contactChannel')" + :label="t('customer.summary.contactChannel')" map-options :rules="validate('client.contactChannelFk')" :input-debounce="0" diff --git a/src/pages/Customer/Card/CustomerDescriptor.vue b/src/pages/Customer/Card/CustomerDescriptor.vue index 40166aefe..e46d2cb29 100644 --- a/src/pages/Customer/Card/CustomerDescriptor.vue +++ b/src/pages/Customer/Card/CustomerDescriptor.vue @@ -53,11 +53,17 @@ const setData = (entity) => (data.value = useCardDescription(entity?.name, entit @@ -168,23 +174,6 @@ const setData = (entity) => (data.value = useCardDescription(entity?.name, entit > {{ t('Customer ticket list') }} - - {{ t('New ticket') }} - - {{ t('New order') }} - + + {{ t('globals.pageTitles.createTicket') }} + + + + + {{ t('globals.pageTitles.createOrder') }} + + {{ t('Send SMS') }} diff --git a/src/pages/Customer/Card/CustomerSummary.vue b/src/pages/Customer/Card/CustomerSummary.vue index 8e41119ef..46861d75e 100644 --- a/src/pages/Customer/Card/CustomerSummary.vue +++ b/src/pages/Customer/Card/CustomerSummary.vue @@ -87,7 +87,7 @@ const sumRisk = ({ clientRisks }) => { @@ -95,11 +95,17 @@ const sumRisk = ({ clientRisks }) => { { @@ -213,7 +219,7 @@ const sumRisk = ({ clientRisks }) => { :value="entity.defaultAddress.city" /> diff --git a/src/pages/Customer/Card/CustomerUnpaid.vue b/src/pages/Customer/Card/CustomerUnpaid.vue index d7f933a7f..ef3ff3b94 100644 --- a/src/pages/Customer/Card/CustomerUnpaid.vue +++ b/src/pages/Customer/Card/CustomerUnpaid.vue @@ -2,10 +2,9 @@ import { computed, onBeforeMount, ref, watch, nextTick } from 'vue'; import { useI18n } from 'vue-i18n'; import { useRoute } from 'vue-router'; - import VnInputDate from 'components/common/VnInputDate.vue'; import VnInput from 'src/components/common/VnInput.vue'; - +import VnRow from 'components/ui/VnRow.vue'; import axios from 'axios'; import useNotify from 'src/composables/useNotify'; import { useStateStore } from 'stores/useStateStore'; diff --git a/src/pages/Customer/CustomerFilter.vue b/src/pages/Customer/CustomerFilter.vue index 6c50cc9df..ae3a42514 100644 --- a/src/pages/Customer/CustomerFilter.vue +++ b/src/pages/Customer/CustomerFilter.vue @@ -34,7 +34,7 @@ defineProps({ @@ -43,7 +43,7 @@ defineProps({ diff --git a/src/pages/Customer/CustomerList.vue b/src/pages/Customer/CustomerList.vue index 815ec57fa..fefa7d15f 100644 --- a/src/pages/Customer/CustomerList.vue +++ b/src/pages/Customer/CustomerList.vue @@ -77,7 +77,7 @@ const columns = computed(() => [ }, { align: 'left', - label: t('customer.extendedList.tableVisibleColumns.credit'), + label: t('customer.summary.credit'), name: 'credit', columnFilter: { component: 'number', @@ -115,7 +115,7 @@ const columns = computed(() => [ }, { align: 'left', - label: t('customer.extendedList.tableVisibleColumns.mobile'), + label: t('customer.summary.mobile'), name: 'mobile', cardVisible: true, columnFilter: { @@ -162,17 +162,17 @@ const columns = computed(() => [ }, { align: 'left', - label: t('customer.extendedList.tableVisibleColumns.city'), + label: t('customer.summary.city'), name: 'city', }, { align: 'left', - label: t('customer.extendedList.tableVisibleColumns.postcode'), + label: t('customer.summary.postcode'), name: 'postcode', }, { align: 'left', - label: t('customer.extendedList.tableVisibleColumns.email'), + label: t('globals.params.email'), name: 'email', cardVisible: true, }, @@ -207,7 +207,7 @@ const columns = computed(() => [ }, { align: 'left', - label: t('customer.extendedList.tableVisibleColumns.payMethodFk'), + label: t('customer.summary.payMethodFk'), name: 'payMethodFk', columnFilter: { component: 'select', @@ -250,7 +250,7 @@ const columns = computed(() => [ }, { align: 'left', - label: t('customer.extendedList.tableVisibleColumns.isActive'), + label: t('customer.summary.isActive'), name: 'isActive', chip: { color: null, @@ -279,7 +279,7 @@ const columns = computed(() => [ }, { align: 'left', - label: t('customer.extendedList.tableVisibleColumns.isEqualizated'), + label: t('customer.summary.isEqualizated'), name: 'isEqualizated', create: true, columnFilter: { @@ -325,7 +325,7 @@ const columns = computed(() => [ }, { align: 'left', - label: t('customer.extendedList.tableVisibleColumns.hasLcr'), + label: t('customer.summary.hasLcr'), name: 'hasLcr', columnFilter: { inWhere: true, @@ -333,7 +333,7 @@ const columns = computed(() => [ }, { align: 'left', - label: t('customer.extendedList.tableVisibleColumns.hasCoreVnl'), + label: t('customer.summary.hasCoreVnl'), name: 'hasCoreVnl', columnFilter: { inWhere: true, @@ -424,7 +424,7 @@ function handleLocation(data, location) { { redirect="ticket" >