From b6445fbf1862bf4ffc70c518e282d53b0f91c784 Mon Sep 17 00:00:00 2001 From: Hugo Zigha Date: Thu, 20 Feb 2025 09:54:09 +0100 Subject: [PATCH] MT#62145 Fix error handling in CscPageCustomerPhonebookAdd and in CscPageSubscriberPhonebookAdd Change-Id: I6ee8dbe7d71ed09c7b54e4a6c286abef50cff03f --- src/pages/CscPageCustomerPhonebookAdd.vue | 19 +++++++- src/pages/CscPageSubscriberPhonebookAdd.vue | 48 +++++++++++++++------ 2 files changed, 52 insertions(+), 15 deletions(-) diff --git a/src/pages/CscPageCustomerPhonebookAdd.vue b/src/pages/CscPageCustomerPhonebookAdd.vue index b6c268bd..8546a4b0 100644 --- a/src/pages/CscPageCustomerPhonebookAdd.vue +++ b/src/pages/CscPageCustomerPhonebookAdd.vue @@ -43,7 +43,7 @@ :label="$t('Number')" :error="numberError" :error-message="numberErrorMessage" - @update:model-value="v$.formData.number.$touch()" + @update:model-value="numberUpdated()" /> @@ -58,6 +58,7 @@ 0 && errorsTab[0].$validator === 'required') { + this.numberErrorMessage = this.$t('{field} is required', { + field: this.$t('Number') + }) + this.numberError = true + } else { + this.numberErrorMessage = '' + this.numberError = false + } + }, async confirm () { try { await this.createPhonebookCustomer(this.formData) diff --git a/src/pages/CscPageSubscriberPhonebookAdd.vue b/src/pages/CscPageSubscriberPhonebookAdd.vue index 34ef6438..4e466763 100644 --- a/src/pages/CscPageSubscriberPhonebookAdd.vue +++ b/src/pages/CscPageSubscriberPhonebookAdd.vue @@ -41,9 +41,9 @@ 0 && errorsTab[0].$validator === 'required') { - return this.$t('{field} is required', { - field: this.$t('Number') - }) - } - return '' } }, methods: { @@ -126,13 +120,39 @@ export default { shared: false } }, + disableSaveButton () { + return this.v$.formData.$invalid + }, + numberUpdated () { + this.v$.formData.number.$touch() + const errorsTab = this.v$.formData.number.$errors + if (errorsTab && errorsTab.length > 0 && errorsTab[0].$validator === 'required') { + this.numberErrorMessage = this.$t('{field} is required', { + field: this.$t('Number') + }) + this.numberError = true + } else { + this.numberErrorMessage = '' + this.numberError = false + } + }, cancel () { this.$router.push('/user/subscriber-phonebook/') this.$emit('cancel') }, async confirm () { - await this.createPhonebookSubscriber(this.formData) - await this.$router.push('/user/subscriber-phonebook/') + try { + await this.createPhonebookSubscriber(this.formData) + await this.$router.push('/user/subscriber-phonebook/') + } catch (error) { + if (error.response && error.response.status === 422) { + this.numberError = true + this.numberErrorMessage = this.$t('This number is already in use.') + } else { + // eslint-disable-next-line no-console + console.error('An error occurred:', error) + } + } } } }