From 1fe6765638d6b51b78c410601faef7ffb6991a3a 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 (cherry picked from commit b6445fbf1862bf4ffc70c518e282d53b0f91c784) --- src/pages/CscPageCustomerPhonebookAdd.vue | 22 ++++++++- src/pages/CscPageSubscriberPhonebookAdd.vue | 52 ++++++++++++++------- 2 files changed, 55 insertions(+), 19 deletions(-) diff --git a/src/pages/CscPageCustomerPhonebookAdd.vue b/src/pages/CscPageCustomerPhonebookAdd.vue index 219c5faf..01d6bb39 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) @@ -128,7 +146,7 @@ export default { this.numberError = true this.numberErrorMessage = this.$t('This number is already in use.') } else { - console.error('An error occurred:', error) + showGlobalError(this.$t('An error occurred:', error.response.data.message)) } } } diff --git a/src/pages/CscPageSubscriberPhonebookAdd.vue b/src/pages/CscPageSubscriberPhonebookAdd.vue index 87507e19..b39408ab 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') - }) - } else { - return '' } + return '' } }, methods: { @@ -128,13 +121,38 @@ 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 { + showGlobalError(this.$t('An error occurred:', error.response.data.message)) + } + } } } }