From e597552dc396b28e8735e225bf294655a180f5d6 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 5 Feb 2025 12:55:26 +0100 Subject: [PATCH 01/17] 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 08/17] 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 09/17] 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 10/17] 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 11/17] 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 12/17] 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 13/17] 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 cc2d1ed09dfc577a338388bc6667cde8de482933 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 12 Feb 2025 10:17:06 +0100 Subject: [PATCH 14/17] fix: refs #8372 correct comment syntax in routeList.spec.js --- test/cypress/integration/route/routeList.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cypress/integration/route/routeList.spec.js b/test/cypress/integration/route/routeList.spec.js index e2fe5e36f..81b09fafb 100644 --- a/test/cypress/integration/route/routeList.spec.js +++ b/test/cypress/integration/route/routeList.spec.js @@ -27,6 +27,6 @@ describe('Route', () => { 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'); */ + cy.get('.q-notification__message').should('have.text', 'Data saved'); }); }); From 1f8923337240bc0da67c8295909628b81b839aca Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 12 Feb 2025 10:34:02 +0100 Subject: [PATCH 15/17] refactor: refs #8372 simplify button click handlers in FormModelPopup.vue --- src/components/FormModelPopup.vue | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/components/FormModelPopup.vue b/src/components/FormModelPopup.vue index 152834f05..a8bed34f8 100644 --- a/src/components/FormModelPopup.vue +++ b/src/components/FormModelPopup.vue @@ -1,5 +1,5 @@