+
+
{{ t('components.userPanel.settings') }}
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+es:
+ Message: Mensaje
+ Send: Enviar
+ Characters remaining: Carácteres restantes
+ Special characters like accents counts as a multiple: Carácteres especiales como los acentos cuentan como varios
+ The destination can't be empty: El destinatario no puede estar vacio
+ The message can't be empty: El mensaje no puede estar vacio
+ The message it's too long: El mensaje es demasiado largo
+
diff --git a/src/components/common/VnBreadcrumbs.vue b/src/components/common/VnBreadcrumbs.vue
index 666f14c72..337507233 100644
--- a/src/components/common/VnBreadcrumbs.vue
+++ b/src/components/common/VnBreadcrumbs.vue
@@ -5,16 +5,16 @@ import { useQuasar } from 'quasar';
import { useI18n } from 'vue-i18n';
import { useCamelCase } from 'src/composables/useCamelCase';
-const router = useRouter();
-const quasar = useQuasar();
-const { t } = useI18n();
+const { currentRoute } = useRouter();
+const { screen } = useQuasar();
+const { t, te } = useI18n();
let matched = ref([]);
let breadcrumbs = ref([]);
let root = ref(null);
watchEffect(() => {
- matched.value = router.currentRoute.value.matched.filter(
+ matched.value = currentRoute.value.matched.filter(
(matched) => Object.keys(matched.meta).length
);
breadcrumbs.value.length = 0;
@@ -34,13 +34,17 @@ function getBreadcrumb(param) {
icon: param.meta.icon,
path: param.path,
root: root.value,
+ locale: t(`globals.pageTitles.${param.meta.title}`),
};
- if (quasar.screen.gt.sm) {
+ if (screen.gt.sm) {
breadcrumb.name = param.name;
breadcrumb.title = useCamelCase(param.meta.title);
}
+ const moduleLocale = `${breadcrumb.root}.pageTitles.${breadcrumb.title}`;
+ if (te(moduleLocale)) breadcrumb.locale = t(moduleLocale);
+
return breadcrumb;
}
@@ -50,7 +54,7 @@ function getBreadcrumb(param) {
v-for="(breadcrumb, index) of breadcrumbs"
:key="index"
:icon="breadcrumb.icon"
- :label="t(`${breadcrumb.root}.pageTitles.${breadcrumb.title}`)"
+ :label="breadcrumb.locale"
:to="breadcrumb.path"
/>
@@ -71,7 +75,7 @@ function getBreadcrumb(param) {
}
&--last,
&__separator {
- color: var(--vn-label);
+ color: var(--vn-label-color);
}
}
@media (max-width: $breakpoint-md) {
diff --git a/src/components/common/VnDms.vue b/src/components/common/VnDms.vue
index d5c59517d..08255f8a5 100644
--- a/src/components/common/VnDms.vue
+++ b/src/components/common/VnDms.vue
@@ -27,6 +27,10 @@ const $props = defineProps({
type: Object,
default: null,
},
+ url: {
+ type: String,
+ default: null,
+ },
});
const warehouses = ref();
@@ -65,14 +69,15 @@ function mapperDms(data) {
}
function getUrl() {
+ if ($props.url) return $props.url;
if ($props.formInitialData) return 'dms/' + $props.formInitialData.id + '/updateFile';
return `${$props.model}/${route.params.id}/uploadFile`;
}
async function save() {
const body = mapperDms(dms.value);
- await axios.post(getUrl(), body[0], body[1]);
- emit('onDataSaved', body[1].params);
+ const response = await axios.post(getUrl(), body[0], body[1]);
+ emit('onDataSaved', body[1].params, response);
}
function defaultData() {
diff --git a/src/components/common/VnDmsList.vue b/src/components/common/VnDmsList.vue
index 5057c0790..23e00f5d9 100644
--- a/src/components/common/VnDmsList.vue
+++ b/src/components/common/VnDmsList.vue
@@ -218,7 +218,6 @@ function parseDms(data) {
/>
diff --git a/src/components/common/VnInput.vue b/src/components/common/VnInput.vue
index 8a01e0bee..ec836f2cd 100644
--- a/src/components/common/VnInput.vue
+++ b/src/components/common/VnInput.vue
@@ -1,5 +1,5 @@
diff --git a/src/components/common/VnInputDate.vue b/src/components/common/VnInputDate.vue
index 8e0ef2890..66da9b7bf 100644
--- a/src/components/common/VnInputDate.vue
+++ b/src/components/common/VnInputDate.vue
@@ -1,6 +1,7 @@
-
@@ -76,7 +100,7 @@ const styleAttrs = computed(() => {
-
+
diff --git a/src/components/ui/CardDescriptor.vue b/src/components/ui/CardDescriptor.vue
index 345c8d088..97aa91728 100644
--- a/src/components/ui/CardDescriptor.vue
+++ b/src/components/ui/CardDescriptor.vue
@@ -1,9 +1,10 @@
-
-
-