diff --git a/src/boot/quasar.js b/src/boot/quasar.js
index e2035c880..5db6edd24 100644
--- a/src/boot/quasar.js
+++ b/src/boot/quasar.js
@@ -2,9 +2,15 @@ import { boot } from 'quasar/wrappers';
import qFormMixin from './qformMixin';
import mainShortcutMixin from './mainShortcutMixin';
import keyShortcut from './keyShortcut';
+import useNotify from 'src/composables/useNotify.js';
+const { notify } = useNotify();
export default boot(({ app }) => {
app.mixin(qFormMixin);
app.mixin(mainShortcutMixin);
app.directive('shortcut', keyShortcut);
+ app.config.errorHandler = function (err) {
+ console.error(err);
+ notify('globals.error', 'negative', 'error');
+ };
});
diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml
index e27dc7bd4..2e2365f7b 100644
--- a/src/i18n/locale/en.yml
+++ b/src/i18n/locale/en.yml
@@ -103,6 +103,7 @@ globals:
ticket: Ticket
campaign: Campaign
weight: Weight
+ error: Ups! Something went wrong
pageTitles:
logIn: Login
addressEdit: Update address
diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml
index ed34c8761..53b487e9f 100644
--- a/src/i18n/locale/es.yml
+++ b/src/i18n/locale/es.yml
@@ -105,6 +105,7 @@ globals:
ticket: Ticket
campaign: Campaña
weight: Peso
+ error: ¡Ups! Algo salió mal
pageTitles:
logIn: Inicio de sesión
addressEdit: Modificar consignatario
diff --git a/src/pages/Wagon/Type/WagonTypeList.vue b/src/pages/Wagon/Type/WagonTypeList.vue
index 2f0d55fbe..c0943c58e 100644
--- a/src/pages/Wagon/Type/WagonTypeList.vue
+++ b/src/pages/Wagon/Type/WagonTypeList.vue
@@ -103,7 +103,7 @@ async function remove(row) {
url-create="WagonTypes"
model="WagonType"
:form-initial-data="initialData"
- @on-data-saved="window.location.reload()"
+ @on-data-saved="tableRef.reload()"
auto-load
>
diff --git a/src/pages/Wagon/WagonList.vue b/src/pages/Wagon/WagonList.vue
index 129e803f5..02e3b6d16 100644
--- a/src/pages/Wagon/WagonList.vue
+++ b/src/pages/Wagon/WagonList.vue
@@ -5,7 +5,7 @@ import { useArrayData } from 'src/composables/useArrayData';
import { useI18n } from 'vue-i18n';
import { useRouter } from 'vue-router';
import VnTable from 'src/components/VnTable/VnTable.vue';
-import { computed } from 'vue';
+import { computed, ref } from 'vue';
import VnSelect from 'src/components/common/VnSelect.vue';
import VnInput from 'src/components/common/VnInput.vue';
@@ -14,7 +14,7 @@ const arrayData = useArrayData('WagonList');
const store = arrayData.store;
const router = useRouter();
const { t } = useI18n();
-
+const tableRef = ref();
const filter = {
include: {
relation: 'type',
@@ -107,9 +107,7 @@ async function remove(row) {
:create="{
urlCreate: 'Wagons',
title: t('Create new wagon'),
- onDataSaved: () => {
- window.location.reload();
- },
+ onDataSaved: () => tableRef.reload(),
formInitialData: {},
}"
>
diff --git a/src/pages/Worker/Card/WorkerDescriptor.vue b/src/pages/Worker/Card/WorkerDescriptor.vue
index be30537df..3675d40f8 100644
--- a/src/pages/Worker/Card/WorkerDescriptor.vue
+++ b/src/pages/Worker/Card/WorkerDescriptor.vue
@@ -152,7 +152,11 @@ const refetch = async () => await cardDescriptorRef.value.getData();
-
+
-import { ref, onMounted, computed } from 'vue';
+import { ref, onBeforeMount, computed } from 'vue';
import { useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n';
+import axios from 'axios';
import { dashIfEmpty, toDate } from 'src/filters';
-import { getUrl } from 'src/composables/getUrl';
import VnLv from 'src/components/ui/VnLv.vue';
import VnLinkPhone from 'src/components/ui/VnLinkPhone.vue';
import CardSummary from 'components/ui/CardSummary.vue';
@@ -11,6 +11,7 @@ import VnUserLink from 'src/components/ui/VnUserLink.vue';
import VnTitle from 'src/components/common/VnTitle.vue';
import RoleDescriptorProxy from 'src/pages/Account/Role/Card/RoleDescriptorProxy.vue';
import DepartmentDescriptorProxy from 'src/pages/Department/Card/DepartmentDescriptorProxy.vue';
+import { useRole } from 'src/composables/useRole';
const route = useRoute();
const { t } = useI18n();
@@ -23,64 +24,27 @@ const $props = defineProps({
});
const entityId = computed(() => $props.id || route.params.id);
-const workerUrl = ref();
+const basicDataUrl = ref(null);
+const isHr = computed(() => useRole().hasAny(['hr']));
+const advancedSummary = ref();
-onMounted(async () => {
- workerUrl.value = (await getUrl('')) + `worker/${entityId.value}/`;
+onBeforeMount(async () => {
+ if (isHr.value) {
+ advancedSummary.value = (
+ await axios.get('Workers/advancedSummary', {
+ params: { filter: { where: { id: entityId.value } } },
+ })
+ ).data[0];
+ basicDataUrl.value = `#/worker/${entityId.value}/basic-data`;
+ }
});
-
-const filter = {
- include: [
- {
- relation: 'user',
- scope: {
- fields: ['name', 'nickname', 'roleFk'],
-
- include: [
- {
- relation: 'role',
- scope: {
- fields: ['name'],
- },
- },
- {
- relation: 'emailUser',
- scope: {
- fields: ['email'],
- },
- },
- ],
- },
- },
- {
- relation: 'department',
- scope: {
- include: {
- relation: 'department',
- scope: {
- fields: ['name'],
- },
- },
- },
- },
- {
- relation: 'boss',
- },
- {
- relation: 'client',
- },
- {
- relation: 'sip',
- },
- ],
-};
@@ -88,10 +52,7 @@ const filter = {
-
+
@@ -128,13 +89,9 @@ const filter = {
-
-
-
+
+
-