From 51afa21fa4a5acc986d0ae3a7dbbe9a90a115e06 Mon Sep 17 00:00:00 2001 From: jtubau Date: Mon, 10 Feb 2025 13:41:03 +0100 Subject: [PATCH 001/198] feat: refs #8440 add VehicleNotes component and update routing --- src/pages/Route/Vehicle/Card/VehicleNotes.vue | 34 +++++++++++++++++++ src/router/modules/route.js | 11 +++++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 src/pages/Route/Vehicle/Card/VehicleNotes.vue diff --git a/src/pages/Route/Vehicle/Card/VehicleNotes.vue b/src/pages/Route/Vehicle/Card/VehicleNotes.vue new file mode 100644 index 000000000..320e9150d --- /dev/null +++ b/src/pages/Route/Vehicle/Card/VehicleNotes.vue @@ -0,0 +1,34 @@ + + + \ No newline at end of file diff --git a/src/router/modules/route.js b/src/router/modules/route.js index 835324d20..86e0b39cc 100644 --- a/src/router/modules/route.js +++ b/src/router/modules/route.js @@ -166,7 +166,7 @@ const vehicleCard = { component: () => import('src/pages/Route/Vehicle/Card/VehicleCard.vue'), redirect: { name: 'VehicleSummary' }, meta: { - menu: ['VehicleBasicData'], + menu: ['VehicleBasicData', 'VehicleNotes'], }, children: [ { @@ -187,6 +187,15 @@ const vehicleCard = { }, component: () => import('src/pages/Route/Vehicle/Card/VehicleBasicData.vue'), }, + { + name: 'VehicleNotes', + path: 'notes', + meta: { + title: 'notes', + icon: 'vn:notes', + }, + component: () => import('src/pages/Route/Vehicle/Card/VehicleNotes.vue'), + } ], }; From 62e8b5b30749b95cc9cbb71f517ed62b581feca4 Mon Sep 17 00:00:00 2001 From: jtubau Date: Wed, 12 Feb 2025 14:40:17 +0100 Subject: [PATCH 002/198] feat: refs #8440 add delete functionality to notes and update required attributes --- src/components/ui/VnNotes.vue | 55 ++++++++++++++----- src/pages/Route/Vehicle/Card/VehicleNotes.vue | 3 +- 2 files changed, 43 insertions(+), 15 deletions(-) diff --git a/src/components/ui/VnNotes.vue b/src/components/ui/VnNotes.vue index ec6289a67..cc0f78532 100644 --- a/src/components/ui/VnNotes.vue +++ b/src/components/ui/VnNotes.vue @@ -25,13 +25,16 @@ const $attrs = computed(() => { return rest; }); -const isRequired = computed(() => { - return Object.keys($attrs).includes('required') +const isRequired = ref(() => { + return Object.keys($attrs).includes('required'); +}); +const isDeletable = ref(() => { + return Object.keys($attrs).includes('removable'); }); const $props = defineProps({ url: { type: String, default: null }, - saveUrl: {type: String, default: null}, + saveUrl: { type: String, default: null }, filter: { type: Object, default: () => {} }, body: { type: Object, default: () => {} }, addNote: { type: Boolean, default: false }, @@ -52,6 +55,11 @@ function handleClick(e) { else insert(); } +async function deleteNote(e) { + await axios.delete(`${$props.url}/${e.id}`); + await vnPaginateRef.value.fetch(); +} + async function insert() { if (!newNote.text || ($props.selectType && !newNote.observationTypeFk)) return; @@ -65,7 +73,7 @@ async function insert() { } function confirmAndUpdate() { - if(!newNote.text && originalText) + if (!newNote.text && originalText) quasar .dialog({ component: VnConfirm, @@ -88,11 +96,17 @@ async function update() { ...body, ...{ notes: newNote.text }, }; - await axios.patch(`${$props.saveUrl ?? `${$props.url}/${$props.body.workerFk}`}`, newBody); + await axios.patch( + `${$props.saveUrl ?? `${$props.url}/${$props.body.workerFk}`}`, + newBody, + ); } onBeforeRouteLeave((to, from, next) => { - if ((newNote.text && !$props.justInput) || (newNote.text !== originalText) && $props.justInput) + if ( + (newNote.text && !$props.justInput) || + (newNote.text !== originalText && $props.justInput) + ) quasar.dialog({ component: VnConfirm, componentProps: { @@ -104,12 +118,11 @@ onBeforeRouteLeave((to, from, next) => { else next(); }); -function fetchData([ data ]) { +function fetchData([data]) { newNote.text = data?.notes; originalText = data?.notes; emit('onFetch', data); } - From 3de0ebeccd7383d2f2f6fafaf7f7c31614a03e14 Mon Sep 17 00:00:00 2001 From: jtubau Date: Wed, 12 Feb 2025 14:52:05 +0100 Subject: [PATCH 003/198] refactor: refs #8440 remove unnecessary computed properties --- src/components/ui/VnNotes.vue | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/components/ui/VnNotes.vue b/src/components/ui/VnNotes.vue index cc0f78532..1663f6eb2 100644 --- a/src/components/ui/VnNotes.vue +++ b/src/components/ui/VnNotes.vue @@ -25,13 +25,6 @@ const $attrs = computed(() => { return rest; }); -const isRequired = ref(() => { - return Object.keys($attrs).includes('required'); -}); -const isDeletable = ref(() => { - return Object.keys($attrs).includes('removable'); -}); - const $props = defineProps({ url: { type: String, default: null }, saveUrl: { type: String, default: null }, From 158c0f684ab2c0cbc9958d02613a02191a76bf6b Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Thu, 20 Feb 2025 13:10:00 +0100 Subject: [PATCH 004/198] feat: refs #8006 copy paste rules --- .eslintrc.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.eslintrc.js b/.eslintrc.js index 5c33d2118..be2f2909b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -56,6 +56,23 @@ export default { // add your custom rules here rules: { + // allow async-await + 'generator-star-spacing': 'off', + // allow paren-less arrow functions + 'arrow-parens': 'off', + 'one-var': 'off', + 'no-void': 'off', + 'multiline-ternary': 'off', + + 'import/first': 'off', + 'import/named': 'error', + 'import/namespace': 'error', + 'import/default': 'error', + 'import/export': 'error', + 'import/extensions': 'off', + 'import/no-unresolved': 'off', + 'import/no-extraneous-dependencies': 'off', + 'prefer-promise-reject-errors': 'off', 'no-unused-vars': 'warn', 'vue/no-multiple-template-root': 'off', @@ -70,6 +87,12 @@ export default { // See https://github.com/cypress-io/eslint-plugin-cypress#rules 'plugin:cypress/recommended', ], + rules: { + semi: 'off', + 'space-before-function-paren': 'off', + 'prefer-promise-reject-errors': 'off', + 'vue/no-multiple-template-root': 'off', + }, }, ], }; From e797905764b50d31e5800bbe8fa12607c80f3f24 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Thu, 20 Feb 2025 13:10:09 +0100 Subject: [PATCH 005/198] feat: refs #8006 quasar viteConfig --- quasar.config.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/quasar.config.js b/quasar.config.js index 9467c92af..b367ff414 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -80,6 +80,12 @@ export default configure(function (/* ctx */) { viteConf.build.modulePreload = { polyfill: false, }; + + viteConf.build.rollupOptions = { + onwarn(warning, warn) { + throw new Error(warning.message); + }, + }; }, // viteVuePluginOptions: {}, From 95e69ff79b2b2713ea43200474099b3e20593f45 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Thu, 20 Feb 2025 13:10:19 +0100 Subject: [PATCH 006/198] fix: refs #8006 example --- src/pages/Customer/Card/CustomerDescriptor.vue | 3 ++- src/pages/Customer/Card/CustomerDescriptorProxy.vue | 3 +-- src/pages/Entry/Card/EntryDescriptorProxy.vue | 3 +-- src/pages/Travel/Card/TravelDescriptorProxy.vue | 2 +- src/pages/Worker/Card/WorkerDescriptorProxy.vue | 7 +++++-- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/pages/Customer/Card/CustomerDescriptor.vue b/src/pages/Customer/Card/CustomerDescriptor.vue index 89f9d9449..ff74d1afa 100644 --- a/src/pages/Customer/Card/CustomerDescriptor.vue +++ b/src/pages/Customer/Card/CustomerDescriptor.vue @@ -31,7 +31,7 @@ const $props = defineProps({ }, summary: { type: Object, - default: null, + default: CustomerSummary, }, }); @@ -51,6 +51,7 @@ const setData = (entity) => { const debtWarning = computed(() => { return customerDebt.value > customerCredit.value ? 'negative' : 'primary'; }); +import CustomerSummary from './CustomerSummary.vue';