From e758df4a4c652bf74d1d82fe774a6c7bb78df1c2 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 18 Feb 2025 16:23:30 +0100 Subject: [PATCH 1/5] fix: refs #8372 correct isSaveAndContinue reference and streamline save logic in FormModelPopup --- src/components/FormModelPopup.vue | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/components/FormModelPopup.vue b/src/components/FormModelPopup.vue index 98b6117431e..4dbd1bb4498 100644 --- a/src/components/FormModelPopup.vue +++ b/src/components/FormModelPopup.vue @@ -27,10 +27,15 @@ const formModelRef = ref(null); const closeButton = ref(null); const isSaveAndContinue = ref(false); const onDataSaved = (formData, requestResponse) => { - if (closeButton.value && isSaveAndContinue) closeButton.value.click(); + if (closeButton.value && isSaveAndContinue.value) closeButton.value.click(); emit('onDataSaved', formData, requestResponse); }; +const onClick = async () => { + isSaveAndContinue.value = true; + formModelRef.value.save(); +}; + const isLoading = computed(() => formModelRef.value?.isLoading); const reset = computed(() => formModelRef.value?.reset); @@ -78,10 +83,7 @@ defineExpose({ :flat="showSaveAndContinueBtn" :label="t('globals.save')" :title="t('globals.save')" - @click=" - formModelRef.save(); - isSaveAndContinue = false; - " + @click="onClick" color="primary" class="q-ml-sm" :disabled="isLoading" @@ -99,10 +101,7 @@ defineExpose({ :loading="isLoading" data-cy="FormModelPopup_isSaveAndContinue" z-max - @click=" - isSaveAndContinue = true; - formModelRef.save(); - " + @click="onClick" /> From a289c548f84535435760f092e7cffa4fbde3beb2 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 18 Feb 2025 16:25:30 +0100 Subject: [PATCH 2/5] fix: refs #8372 ensure save operation completes before proceeding in FormModelPopup --- src/components/FormModelPopup.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/FormModelPopup.vue b/src/components/FormModelPopup.vue index 4dbd1bb4498..10bf8aae204 100644 --- a/src/components/FormModelPopup.vue +++ b/src/components/FormModelPopup.vue @@ -33,7 +33,7 @@ const onDataSaved = (formData, requestResponse) => { const onClick = async () => { isSaveAndContinue.value = true; - formModelRef.value.save(); + await formModelRef.value.save(); }; const isLoading = computed(() => formModelRef.value?.isLoading); From 52edf79716bba90c47e88e57833a535c28f3bc8c Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 18 Feb 2025 17:55:44 +0100 Subject: [PATCH 3/5] refactor: refs #8372 streamline form submission handling and improve keyup event logic in FormModel --- src/boot/qformMixin.js | 17 ----------- src/components/FormModel.vue | 28 +++++++++++++++---- .../components/CustomerNewPayment.vue | 4 +-- 3 files changed, 24 insertions(+), 25 deletions(-) diff --git a/src/boot/qformMixin.js b/src/boot/qformMixin.js index cb31391b33d..182c51e4793 100644 --- a/src/boot/qformMixin.js +++ b/src/boot/qformMixin.js @@ -30,22 +30,5 @@ export default { } catch (error) { console.error(error); } - form.addEventListener('keyup', function (evt) { - if (evt.key === 'Enter' && !that.$attrs['prevent-submit']) { - const input = evt.target; - if (input.type == 'textarea' && evt.shiftKey) { - evt.preventDefault(); - let { selectionStart, selectionEnd } = input; - input.value = - input.value.substring(0, selectionStart) + - '\n' + - input.value.substring(selectionEnd); - selectionStart = selectionEnd = selectionStart + 1; - return; - } - evt.preventDefault(); - that.onSubmit(); - } - }); }, }; diff --git a/src/components/FormModel.vue b/src/components/FormModel.vue index 633f1254d9e..5681ce11c85 100644 --- a/src/components/FormModel.vue +++ b/src/components/FormModel.vue @@ -1,6 +1,6 @@