diff --git a/src/components/UserPanel.vue b/src/components/UserPanel.vue
index 2f191691a..98334460a 100644
--- a/src/components/UserPanel.vue
+++ b/src/components/UserPanel.vue
@@ -164,7 +164,7 @@ const isEmployee = computed(() => useRole().isEmployee());
class="q-mt-sm q-px-md"
:to="`/worker/${user.id}`"
color="primary"
- :label="t('My account')"
+ :label="t('globals.myAccount')"
dense
/>
@@ -270,7 +270,3 @@ const isEmployee = computed(() => useRole().isEmployee());
}
}
-
-es:
- My account: Mi cuenta
-
diff --git a/src/components/ui/VnFilterPanel.vue b/src/components/ui/VnFilterPanel.vue
index 4fd511631..e3019663c 100644
--- a/src/components/ui/VnFilterPanel.vue
+++ b/src/components/ui/VnFilterPanel.vue
@@ -37,7 +37,7 @@ const $props = defineProps({
},
hiddenTags: {
type: Array,
- default: () => ['filter'],
+ default: () => ['filter', 'search', 'or', 'and'],
},
customTags: {
type: Array,
@@ -198,8 +198,10 @@ function formatValue(value) {
function sanitizer(params) {
for (const [key, value] of Object.entries(params)) {
- if (typeof value == 'object')
- params[key] = Object.values(value)[0].replaceAll('%', '');
+ if (typeof value == 'object') {
+ const param = Object.values(value)[0];
+ if (typeof param == 'string') params[key] = param.replaceAll('%', '');
+ }
}
return params;
}
diff --git a/src/components/ui/VnOutForm.vue b/src/components/ui/VnOutForm.vue
new file mode 100644
index 000000000..e7ad441d0
--- /dev/null
+++ b/src/components/ui/VnOutForm.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/ui/VnRow.vue b/src/components/ui/VnRow.vue
index 5c01d7216..34cdf88b8 100644
--- a/src/components/ui/VnRow.vue
+++ b/src/components/ui/VnRow.vue
@@ -9,6 +9,9 @@
> :deep(*) {
flex: 1;
}
+ &[wrap] {
+ flex-wrap: wrap;
+ }
}
@media screen and (max-width: 800px) {
.vn-row {
diff --git a/src/components/ui/VnSubToolbar.vue b/src/components/ui/VnSubToolbar.vue
index 5e2412437..5ded4be00 100644
--- a/src/components/ui/VnSubToolbar.vue
+++ b/src/components/ui/VnSubToolbar.vue
@@ -43,20 +43,9 @@ onBeforeUnmount(() => stateStore.toggleSubToolbar());
-
diff --git a/src/css/app.scss b/src/css/app.scss
index 3efe92db4..c233b14f0 100644
--- a/src/css/app.scss
+++ b/src/css/app.scss
@@ -190,6 +190,10 @@ select:-webkit-autofill {
font-size: medium;
}
+.q-toolbar {
+ background: var(--vn-section-color);
+}
+
.q-card__actions {
justify-content: center;
}
diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml
index 12680d0cb..7d3682525 100644
--- a/src/i18n/locale/en.yml
+++ b/src/i18n/locale/en.yml
@@ -251,6 +251,9 @@ globals:
privileges: Privileges
ldap: LDAP
samba: Samba
+ twoFactor: Two factor
+ recoverPassword: Recover password
+ resetPassword: Reset password
created: Created
worker: Worker
now: Now
@@ -263,6 +266,7 @@ globals:
title: Unsaved changes will be lost
subtitle: Are you sure exit without saving?
createInvoiceIn: Create invoice in
+ myAccount: My account
errors:
statusUnauthorized: Access denied
statusInternalServerError: An internal server error has ocurred
@@ -288,14 +292,17 @@ twoFactor:
explanation: >-
Please, enter the verification code that we have sent to your email in the
next 5 minutes
- pageTitles:
- twoFactor: Two-Factor
verifyEmail:
pageTitles:
verifyEmail: Email verification
-dashboard:
- pageTitles:
-
+recoverPassword:
+ userOrEmail: User or recovery email
+ explanation: >-
+ We will sent you an email to recover your password
+resetPassword:
+ repeatPassword: Repeat password
+ passwordNotMatch: Passwords don't match
+ passwordChanged: Password changed
customer:
list:
phone: Phone
diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml
index 747a10d51..8157f1803 100644
--- a/src/i18n/locale/es.yml
+++ b/src/i18n/locale/es.yml
@@ -253,6 +253,9 @@ globals:
packages: Bultos
ldap: LDAP
samba: Samba
+ twoFactor: Doble factor
+ recoverPassword: Recuperar contraseña
+ resetPassword: Restablecer contraseña
created: Fecha creación
worker: Trabajador
now: Ahora
@@ -265,7 +268,7 @@ globals:
title: Los cambios que no haya guardado se perderán
subtitle: ¿Seguro que quiere salir sin guardar?
createInvoiceIn: Crear factura recibida
-
+ myAccount: Mi cuenta
errors:
statusUnauthorized: Acceso denegado
statusInternalServerError: Ha ocurrido un error interno del servidor
@@ -289,14 +292,17 @@ twoFactor:
validate: Validar
insert: Introduce el código de verificación
explanation: Por favor introduce el código de verificación que te hemos enviado a tu email en los próximos 5 minutos
- pageTitles:
- twoFactor: Doble factor
verifyEmail:
pageTitles:
verifyEmail: Verificación de correo
-dashboard:
- pageTitles:
-
+recoverPassword:
+ userOrEmail: Usuario o correo de recuperación
+ explanation: >-
+ Te enviaremos un correo para restablecer tu contraseña
+resetPassword:
+ repeatPassword: Repetir contraseña
+ passwordNotMatch: Las contraseñas no coinciden
+ passwordChanged: Contraseña cambiada
customer:
list:
phone: Teléfono
@@ -876,7 +882,7 @@ worker:
card:
workerId: ID Trabajador
name: Nombre
- email: Email
+ email: Correo personal
phone: Teléfono
mobile: Móvil
active: Activo
diff --git a/src/pages/Account/AccountAcls.vue b/src/pages/Account/AccountAcls.vue
index ad8600786..fdb0ecee1 100644
--- a/src/pages/Account/AccountAcls.vue
+++ b/src/pages/Account/AccountAcls.vue
@@ -41,14 +41,12 @@ const columns = computed(() => [
name: 'id',
label: t('id'),
isId: true,
- field: 'id',
cardVisible: true,
},
{
align: 'left',
name: 'model',
label: t('model'),
- field: 'model',
cardVisible: true,
create: true,
},
@@ -56,15 +54,19 @@ const columns = computed(() => [
align: 'left',
name: 'principalId',
label: t('principalId'),
- field: 'principalId',
cardVisible: true,
+ component: 'select',
+ attrs: {
+ url: 'VnRoles',
+ optionLabel: 'name',
+ optionValue: 'name',
+ },
create: true,
},
{
align: 'left',
name: 'property',
label: t('property'),
- field: 'property',
cardVisible: true,
create: true,
},
@@ -72,7 +74,10 @@ const columns = computed(() => [
align: 'left',
name: 'accessType',
label: t('accessType'),
- field: 'accessType',
+ component: 'select',
+ attrs: {
+ options: ['READ', 'WRITE', '*'],
+ },
cardVisible: true,
create: true,
},
@@ -118,13 +123,6 @@ const deleteAcl = async ({ id }) => {
- (rolesOptions = data)"
- auto-load
- />
-
{
order="id DESC"
:columns="columns"
default-mode="table"
- auto-load
:right-search="true"
:is-editable="true"
:use-model="true"
@@ -162,4 +159,15 @@ es:
Are you sure you want to continue?: ¿Seguro que quieres continuar?
Remove ACL: Eliminar Acl
Do you want to remove this ACL?: ¿Quieres eliminar este ACL?
+ principalId: Rol
+ model: Modelo
+en:
+ New ACL: New ACL
+ ACL removed: ACL removed
+ ACL will be removed: ACL will be removed
+ Are you sure you want to continue?: Are you sure you want to continue?
+ Remove ACL: Remove ACL
+ Do you want to remove this ACL?: Do you want to remove this ACL?
+ principalId: Rol
+ model: Models
diff --git a/src/pages/Account/AccountAliasList.vue b/src/pages/Account/AccountAliasList.vue
index b86580017..b6f7b219c 100644
--- a/src/pages/Account/AccountAliasList.vue
+++ b/src/pages/Account/AccountAliasList.vue
@@ -60,7 +60,7 @@ const columns = computed(() => [
[
cardVisible: true,
create: true,
},
+ {
+ align: 'left',
+ name: 'email',
+ label: t('email'),
+ component: 'input',
+ create: true,
+ visible: false,
+ },
{
align: 'right',
label: '',
@@ -83,9 +91,9 @@ const exprBuilder = (param, value) => {
@@ -96,7 +104,6 @@ const exprBuilder = (param, value) => {
order="id DESC"
:columns="columns"
default-mode="table"
- auto-load
redirect="account"
:use-model="true"
/>
diff --git a/src/pages/Account/Alias/Card/AliasCard.vue b/src/pages/Account/Alias/Card/AliasCard.vue
index feb9b6240..65951b3bf 100644
--- a/src/pages/Account/Alias/Card/AliasCard.vue
+++ b/src/pages/Account/Alias/Card/AliasCard.vue
@@ -1,22 +1,8 @@
@@ -24,12 +10,12 @@ const searchBarDataKeys = {
data-key="Alias"
base-url="MailAliases"
:descriptor="AliasDescriptor"
- :search-data-key="searchBarDataKeys[routeName]"
+ search-data-key="AccountAliasList"
:searchbar-props="{
- redirect: !!customRouteRedirectName,
- customRouteRedirectName,
+ url: 'MailAliases',
info: t('mailAlias.searchInfo'),
label: t('mailAlias.search'),
+ searchUrl: 'table',
}"
/>
diff --git a/src/pages/Account/Card/AccountBasicData.vue b/src/pages/Account/Card/AccountBasicData.vue
index 42b77419f..f38299f9e 100644
--- a/src/pages/Account/Card/AccountBasicData.vue
+++ b/src/pages/Account/Card/AccountBasicData.vue
@@ -37,9 +37,11 @@ watch(
diff --git a/src/pages/Account/Card/AccountCard.vue b/src/pages/Account/Card/AccountCard.vue
index 6418e76d0..a9857b283 100644
--- a/src/pages/Account/Card/AccountCard.vue
+++ b/src/pages/Account/Card/AccountCard.vue
@@ -1,36 +1,21 @@