From e597552dc396b28e8735e225bf294655a180f5d6 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 5 Feb 2025 12:55:26 +0100 Subject: [PATCH 01/24] fix: refs #8372 remove trailing commas in various files --- src/boot/qformMixin.js | 9 ++++----- src/components/FormModel.vue | 11 +++++------ src/pages/Customer/components/CustomerNewPayment.vue | 3 +-- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/boot/qformMixin.js b/src/boot/qformMixin.js index 97d80c670..ed21c4137 100644 --- a/src/boot/qformMixin.js +++ b/src/boot/qformMixin.js @@ -9,19 +9,19 @@ export default { if (!form) return; try { const inputsFormCard = form.querySelectorAll( - `input:not([disabled]):not([type="checkbox"])` + `input:not([disabled]):not([type="checkbox"])`, ); if (inputsFormCard.length) { focusFirstInput(inputsFormCard[0]); } const textareas = document.querySelectorAll( - 'textarea:not([disabled]), [contenteditable]:not([disabled])' + 'textarea:not([disabled]), [contenteditable]:not([disabled])', ); if (textareas.length) { focusFirstInput(textareas[textareas.length - 1]); } const inputs = document.querySelectorAll( - 'form#formModel input:not([disabled]):not([type="checkbox"])' + 'form#formModel input:not([disabled]):not([type="checkbox"])', ); const input = inputs[0]; if (!input) return; @@ -31,7 +31,7 @@ export default { console.error(error); } form.addEventListener('keyup', function (evt) { - if (evt.key === 'Enter' && !that.$attrs['prevent-submit']) { + if (evt.key === 'Enter') { const input = evt.target; if (input.type == 'textarea' && evt.shiftKey) { evt.preventDefault(); @@ -44,7 +44,6 @@ export default { return; } evt.preventDefault(); - that.onSubmit(); } }); }, diff --git a/src/components/FormModel.vue b/src/components/FormModel.vue index 2e580257c..747f52a45 100644 --- a/src/components/FormModel.vue +++ b/src/components/FormModel.vue @@ -97,7 +97,7 @@ const $props = defineProps({ }); const emit = defineEmits(['onFetch', 'onDataSaved']); const modelValue = computed( - () => $props.model ?? `formModel_${route?.meta?.title ?? route.name}` + () => $props.model ?? `formModel_${route?.meta?.title ?? route.name}`, ).value; const componentIsRendered = ref(false); const arrayData = useArrayData(modelValue); @@ -148,7 +148,7 @@ onMounted(async () => { JSON.stringify(newVal) !== JSON.stringify(originalData.value); isResetting.value = false; }, - { deep: true } + { deep: true }, ); } }); @@ -156,7 +156,7 @@ onMounted(async () => { if (!$props.url) watch( () => arrayData.store.data, - (val) => updateAndEmit('onFetch', val) + (val) => updateAndEmit('onFetch', val), ); watch( @@ -165,7 +165,7 @@ watch( originalData.value = null; reset(); await fetch(); - } + }, ); onBeforeRouteLeave((to, from, next) => { @@ -254,7 +254,7 @@ function filter(value, update, filterOptions) { (ref) => { ref.setOptionIndex(-1); ref.moveOptionSelection(1, true); - } + }, ); } @@ -293,7 +293,6 @@ defineExpose({ class="q-pa-md" :style="maxWidth ? 'max-width: ' + maxWidth : ''" id="formModel" - :prevent-submit="$attrs['prevent-submit']" > diff --git a/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue b/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue index dfb89d632..b5b6b7fbf 100644 --- a/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue +++ b/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue @@ -52,7 +52,7 @@ function deleteFile(dmsFk) { invoiceInRef.value.formData.dmsFk = null; invoiceInRef.value.formData.dms = undefined; invoiceInRef.value.hasChanges = true; - invoiceInRef.value.save({ prevent: false }); + invoiceInRef.value.save(false); }); } @@ -281,7 +281,7 @@ function deleteFile(dmsFk) { invoiceInRef.formData.dmsFk = dmsData.id; invoiceInRef.formData.dms = dmsData; invoiceInRef.hasChanges = true; - invoiceInRef.save({ prevent: false }); + invoiceInRef.save(false); } " /> From c2facd5f99e49a2990e30b85b166a260053c9cae Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 7 Feb 2025 16:40:18 +0100 Subject: [PATCH 09/24] fix: refs #8372 remove prevent option from save method calls in form components --- src/components/FormModelPopup.vue | 2 +- src/pages/Customer/components/CustomerNewPayment.vue | 2 +- src/pages/InvoiceIn/Card/InvoiceInBasicData.vue | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/FormModelPopup.vue b/src/components/FormModelPopup.vue index f718b0d90..a27cffa42 100644 --- a/src/components/FormModelPopup.vue +++ b/src/components/FormModelPopup.vue @@ -67,7 +67,7 @@ defineExpose({ diff --git a/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue b/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue index b5b6b7fbf..0cc9ac2c9 100644 --- a/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue +++ b/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue @@ -52,7 +52,7 @@ function deleteFile(dmsFk) { invoiceInRef.value.formData.dmsFk = null; invoiceInRef.value.formData.dms = undefined; invoiceInRef.value.hasChanges = true; - invoiceInRef.value.save(false); + invoiceInRef.value.save(); }); } @@ -281,7 +281,7 @@ function deleteFile(dmsFk) { invoiceInRef.formData.dmsFk = dmsData.id; invoiceInRef.formData.dms = dmsData; invoiceInRef.hasChanges = true; - invoiceInRef.save(false); + invoiceInRef.save(); } " /> From e1605e06106061bb57b25c533d6dd4a2ad505681 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 7 Feb 2025 16:48:21 +0100 Subject: [PATCH 10/24] fix: refs #8372 update save method to default prevent option to false --- src/boot/qformMixin.js | 2 +- src/components/FormModel.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/boot/qformMixin.js b/src/boot/qformMixin.js index b4da69b62..cb31391b3 100644 --- a/src/boot/qformMixin.js +++ b/src/boot/qformMixin.js @@ -44,7 +44,7 @@ export default { return; } evt.preventDefault(); - that.onSubmit(false); + that.onSubmit(); } }); }, diff --git a/src/components/FormModel.vue b/src/components/FormModel.vue index 1f5cd518f..5a59f301e 100644 --- a/src/components/FormModel.vue +++ b/src/components/FormModel.vue @@ -207,7 +207,7 @@ async function fetch() { } } -async function save(prevent = true) { +async function save(prevent = false) { if (prevent) return; if ($props.observeFormChanges && !hasChanges.value) return notify('globals.noChanges', 'negative'); From 9a946c0f3962c1934009186e1fb9765818a40936 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 7 Feb 2025 17:18:57 +0100 Subject: [PATCH 11/24] fix: refs #8372 update save method calls in FormModel tests to use prevent option directly --- src/components/__tests__/FormModel.spec.js | 12 ++++++------ .../integration/invoiceIn/invoiceInBasicData.spec.js | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/__tests__/FormModel.spec.js b/src/components/__tests__/FormModel.spec.js index 481c910e1..06e41f7a2 100644 --- a/src/components/__tests__/FormModel.spec.js +++ b/src/components/__tests__/FormModel.spec.js @@ -6,7 +6,7 @@ describe('FormModel', () => { const model = 'mockModel'; const url = 'mockUrl'; const formInitialData = { mockKey: 'mockVal' }; - const defaultSaveOpts = { prevent: false }; + const prevent = findLastKey; describe('modelValue', () => { it('should use the provided model', () => { @@ -88,7 +88,7 @@ describe('FormModel', () => { it('should not call if there are not changes', async () => { const { vm } = mount({ propsData: { url, model } }); - await vm.save(defaultSaveOpts); + await vm.save(prevent); expect(vm.hasChanges).toBe(false); }); @@ -97,7 +97,7 @@ describe('FormModel', () => { const { vm } = mount({ propsData: { url, model } }); vm.formData.mockKey = 'newVal'; await vm.$nextTick(); - await vm.save(defaultSaveOpts); + await vm.save(prevent); expect(spy).toHaveBeenCalled(); vm.formData.mockKey = 'mockVal'; }); @@ -110,7 +110,7 @@ describe('FormModel', () => { await vm.$nextTick(); vm.formData.mockKey = 'newVal'; await vm.$nextTick(); - await vm.save(defaultSaveOpts); + await vm.save(prevent); expect(spy).toHaveBeenCalled(); vm.formData.mockKey = 'mockVal'; }); @@ -124,7 +124,7 @@ describe('FormModel', () => { await vm.$nextTick(); vm.formData.mockKey = 'newVal'; await vm.$nextTick(); - await vm.save(defaultSaveOpts); + await vm.save(prevent); expect(spyPatch).not.toHaveBeenCalled(); expect(spySaveFn).toHaveBeenCalled(); vm.formData.mockKey = 'mockVal'; @@ -138,7 +138,7 @@ describe('FormModel', () => { vm.formData.mockKey = 'newVal'; await vm.$nextTick(); - await vm.save(defaultSaveOpts); + await vm.save(prevent); vm.formData.mockKey = 'mockVal'; }); }); diff --git a/test/cypress/integration/invoiceIn/invoiceInBasicData.spec.js b/test/cypress/integration/invoiceIn/invoiceInBasicData.spec.js index 80cc805d9..fa87b8e75 100644 --- a/test/cypress/integration/invoiceIn/invoiceInBasicData.spec.js +++ b/test/cypress/integration/invoiceIn/invoiceInBasicData.spec.js @@ -20,7 +20,7 @@ describe('InvoiceInBasicData', () => { cy.get(formInputs).eq(1).invoke('val').should('eq', '4739'); }); - it.only('should edit, remove and create the dms data', () => { + it('should edit, remove and create the dms data', () => { const firtsInput = 'Ticket:65'; const secondInput = "I don't know what posting here!"; From 8101e014f5c0fb2ee74114993bfd9e721106aa5b Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 7 Feb 2025 17:21:29 +0100 Subject: [PATCH 12/24] fix: refs #8372 update prevent option in FormModel tests to use false directly --- src/components/__tests__/FormModel.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/__tests__/FormModel.spec.js b/src/components/__tests__/FormModel.spec.js index 06e41f7a2..f46fbed62 100644 --- a/src/components/__tests__/FormModel.spec.js +++ b/src/components/__tests__/FormModel.spec.js @@ -6,7 +6,7 @@ describe('FormModel', () => { const model = 'mockModel'; const url = 'mockUrl'; const formInitialData = { mockKey: 'mockVal' }; - const prevent = findLastKey; + const prevent = false; describe('modelValue', () => { it('should use the provided model', () => { From c3fb92e26d156723ced77cfff317c9b4a58af063 Mon Sep 17 00:00:00 2001 From: jorgep Date: Sun, 9 Feb 2025 08:39:51 +0100 Subject: [PATCH 13/24] fix: refs #8372 row selection for editing --- test/cypress/integration/route/routeList.spec.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/cypress/integration/route/routeList.spec.js b/test/cypress/integration/route/routeList.spec.js index 4da43ce8e..81b09fafb 100644 --- a/test/cypress/integration/route/routeList.spec.js +++ b/test/cypress/integration/route/routeList.spec.js @@ -10,22 +10,22 @@ describe('Route', () => { it('Route list create route', () => { cy.addBtnClick(); - cy.get('input[name="description"]').type('routeTestOne{enter}'); + cy.get('input[name="description"]').type('first mock{enter}'); cy.get('.q-notification__message').should('have.text', 'Data created'); cy.url().should('include', '/summary'); }); it('Route list search and edit', () => { cy.get('#searchbar input').type('{enter}'); - cy.get('input[name="description"]').type('routeTestOne{enter}'); + cy.get('input[name="description"]').type('first{enter}'); cy.get('.q-table tr') .its('length') .then((rowCount) => { expect(rowCount).to.be.greaterThan(0); }); - cy.get(getRowColumn(1, 3) + getVnSelect).type('{downArrow}{enter}'); - cy.get(getRowColumn(1, 4) + getVnSelect).type('{downArrow}{enter}'); - cy.get(getRowColumn(1, 5) + getVnSelect).type('{downArrow}{enter}'); + cy.get(getRowColumn(2, 3) + getVnSelect).type('{downArrow}{enter}'); + cy.get(getRowColumn(2, 4) + getVnSelect).type('{downArrow}{enter}'); + cy.get(getRowColumn(2, 5) + getVnSelect).type('{downArrow}{enter}'); cy.get('button[title="Save"]').click(); cy.get('.q-notification__message').should('have.text', 'Data saved'); }); From 115b60751a7a987dca38fef52a9afb0b4de74b76 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 11 Feb 2025 09:31:03 +0100 Subject: [PATCH 14/24] chore: refs #8372 remove unnecessary param --- src/components/__tests__/FormModel.spec.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/components/__tests__/FormModel.spec.js b/src/components/__tests__/FormModel.spec.js index f46fbed62..17812f146 100644 --- a/src/components/__tests__/FormModel.spec.js +++ b/src/components/__tests__/FormModel.spec.js @@ -6,7 +6,6 @@ describe('FormModel', () => { const model = 'mockModel'; const url = 'mockUrl'; const formInitialData = { mockKey: 'mockVal' }; - const prevent = false; describe('modelValue', () => { it('should use the provided model', () => { @@ -88,7 +87,7 @@ describe('FormModel', () => { it('should not call if there are not changes', async () => { const { vm } = mount({ propsData: { url, model } }); - await vm.save(prevent); + await vm.save(); expect(vm.hasChanges).toBe(false); }); @@ -97,7 +96,7 @@ describe('FormModel', () => { const { vm } = mount({ propsData: { url, model } }); vm.formData.mockKey = 'newVal'; await vm.$nextTick(); - await vm.save(prevent); + await vm.save(); expect(spy).toHaveBeenCalled(); vm.formData.mockKey = 'mockVal'; }); @@ -110,7 +109,7 @@ describe('FormModel', () => { await vm.$nextTick(); vm.formData.mockKey = 'newVal'; await vm.$nextTick(); - await vm.save(prevent); + await vm.save(); expect(spy).toHaveBeenCalled(); vm.formData.mockKey = 'mockVal'; }); @@ -124,7 +123,7 @@ describe('FormModel', () => { await vm.$nextTick(); vm.formData.mockKey = 'newVal'; await vm.$nextTick(); - await vm.save(prevent); + await vm.save(); expect(spyPatch).not.toHaveBeenCalled(); expect(spySaveFn).toHaveBeenCalled(); vm.formData.mockKey = 'mockVal'; @@ -138,7 +137,7 @@ describe('FormModel', () => { vm.formData.mockKey = 'newVal'; await vm.$nextTick(); - await vm.save(prevent); + await vm.save(); vm.formData.mockKey = 'mockVal'; }); }); From 701cb875d3b3b7f1b19c5c66e4677faa0e8dfddf Mon Sep 17 00:00:00 2001 From: Jon Date: Tue, 11 Feb 2025 16:44:55 +0100 Subject: [PATCH 15/24] refactor: refs #7451 deleted module prop in CardSummary and modules --- src/components/ui/CardDescriptor.vue | 8 +++----- src/pages/Account/Alias/Card/AliasDescriptor.vue | 1 - src/pages/Account/Card/AccountDescriptor.vue | 1 - src/pages/Account/Role/Card/RoleDescriptor.vue | 1 - src/pages/Claim/Card/ClaimDescriptor.vue | 1 - src/pages/Customer/Card/CustomerDescriptor.vue | 1 - src/pages/Entry/Card/EntryDescriptor.vue | 1 - src/pages/InvoiceIn/Card/InvoiceInDescriptor.vue | 1 - src/pages/InvoiceOut/Card/InvoiceOutDescriptor.vue | 1 - src/pages/Item/Card/ItemDescriptor.vue | 1 - src/pages/Item/ItemType/Card/ItemTypeDescriptor.vue | 1 - src/pages/Order/Card/OrderDescriptor.vue | 1 - src/pages/Route/Agency/Card/AgencyDescriptor.vue | 1 - src/pages/Route/Card/RouteDescriptor.vue | 1 - src/pages/Route/Roadmap/RoadmapDescriptor.vue | 7 +------ src/pages/Route/Vehicle/Card/VehicleDescriptor.vue | 1 - src/pages/Shelving/Card/ShelvingDescriptor.vue | 1 - src/pages/Shelving/Parking/Card/ParkingDescriptor.vue | 1 - src/pages/Supplier/Card/SupplierDescriptor.vue | 1 - src/pages/Ticket/Card/TicketDescriptor.vue | 1 - src/pages/Travel/Card/TravelDescriptor.vue | 1 - src/pages/Worker/Card/WorkerDescriptor.vue | 1 - src/pages/Worker/Card/WorkerDescriptorProxy.vue | 7 +------ src/pages/Worker/Department/Card/DepartmentDescriptor.vue | 1 - src/pages/Zone/Card/ZoneDescriptor.vue | 7 +------ 25 files changed, 6 insertions(+), 44 deletions(-) diff --git a/src/components/ui/CardDescriptor.vue b/src/components/ui/CardDescriptor.vue index 8f834b426..03c4f346d 100644 --- a/src/components/ui/CardDescriptor.vue +++ b/src/components/ui/CardDescriptor.vue @@ -29,10 +29,6 @@ const $props = defineProps({ type: String, default: null, }, - module: { - type: String, - default: null, - }, summary: { type: Object, default: null, @@ -148,7 +144,9 @@ const toModule = computed(() => {{ t('components.smartCard.openSummary') }} - + { diff --git a/src/pages/Account/Card/AccountDescriptor.vue b/src/pages/Account/Card/AccountDescriptor.vue index 728d2ced3..49328fe87 100644 --- a/src/pages/Account/Card/AccountDescriptor.vue +++ b/src/pages/Account/Card/AccountDescriptor.vue @@ -24,7 +24,6 @@ onMounted(async () => { ref="descriptor" :url="`VnUsers/preview`" :filter="{ ...filter, where: { id: entityId } }" - module="Account" data-key="Account" title="nickname" > diff --git a/src/pages/Account/Role/Card/RoleDescriptor.vue b/src/pages/Account/Role/Card/RoleDescriptor.vue index dfcc8efc8..517517af0 100644 --- a/src/pages/Account/Role/Card/RoleDescriptor.vue +++ b/src/pages/Account/Role/Card/RoleDescriptor.vue @@ -35,7 +35,6 @@ const removeRole = async () => { diff --git a/src/pages/Claim/Card/ClaimDescriptor.vue b/src/pages/Claim/Card/ClaimDescriptor.vue index 3749b0c7c..4551c58fe 100644 --- a/src/pages/Claim/Card/ClaimDescriptor.vue +++ b/src/pages/Claim/Card/ClaimDescriptor.vue @@ -46,7 +46,6 @@ onMounted(async () => { diff --git a/src/pages/Customer/Card/CustomerDescriptor.vue b/src/pages/Customer/Card/CustomerDescriptor.vue index a4da925fa..89f9d9449 100644 --- a/src/pages/Customer/Card/CustomerDescriptor.vue +++ b/src/pages/Customer/Card/CustomerDescriptor.vue @@ -55,7 +55,6 @@ const debtWarning = computed(() => {