MT#62145 Fix error handling in CscPageCustomerPhonebookAdd and in CscPageSubscriberPhonebookAdd

Change-Id: I6ee8dbe7d71ed09c7b54e4a6c286abef50cff03f
mr13.3
Hugo Zigha 3 months ago committed by Hugo Zigha
parent 1b70f20ee2
commit b6445fbf18

@ -43,7 +43,7 @@
:label="$t('Number')" :label="$t('Number')"
:error="numberError" :error="numberError"
:error-message="numberErrorMessage" :error-message="numberErrorMessage"
@update:model-value="v$.formData.number.$touch()" @update:model-value="numberUpdated()"
/> />
</q-list> </q-list>
</q-item> </q-item>
@ -58,6 +58,7 @@
<q-btn <q-btn
icon="check" icon="check"
:label="$t('Confirm')" :label="$t('Confirm')"
:disable="disableSaveButton()"
unelevated unelevated
text-color="primary" text-color="primary"
@click="confirm" @click="confirm"
@ -118,6 +119,22 @@ export default {
this.$router.push('/user/pbx-configuration/customer-phonebook/') this.$router.push('/user/pbx-configuration/customer-phonebook/')
this.$emit('cancel') this.$emit('cancel')
}, },
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
}
},
async confirm () { async confirm () {
try { try {
await this.createPhonebookCustomer(this.formData) await this.createPhonebookCustomer(this.formData)

@ -41,9 +41,9 @@
<q-input <q-input
v-model="formData.number" v-model="formData.number"
:label="$t('Number')" :label="$t('Number')"
:error="v$.formData.number.$errors.length > 0" :error="numberError"
:error-message="numberErrorMessage" :error-message="numberErrorMessage"
@update:model-value="v$.formData.number.$touch()" @update:model-value="numberUpdated()"
/> />
<q-toggle <q-toggle
v-model="formData.shared" v-model="formData.shared"
@ -62,6 +62,7 @@
<q-btn <q-btn
icon="check" icon="check"
:label="$t('Confirm')" :label="$t('Confirm')"
:disable="disableSaveButton()"
unelevated unelevated
text-color="primary" text-color="primary"
@click="confirm" @click="confirm"
@ -92,7 +93,9 @@ export default {
data () { data () {
return { return {
formData: this.getDefaultFormData(), formData: this.getDefaultFormData(),
v$: useValidate() v$: useValidate(),
numberErrorMessage: '',
numberError: false
} }
}, },
computed: { computed: {
@ -104,15 +107,6 @@ export default {
}) })
} }
return '' return ''
},
numberErrorMessage () {
const errorsTab = this.v$.formData.number.$errors
if (errorsTab && errorsTab.length > 0 && errorsTab[0].$validator === 'required') {
return this.$t('{field} is required', {
field: this.$t('Number')
})
}
return ''
} }
}, },
methods: { methods: {
@ -126,13 +120,39 @@ export default {
shared: false 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 () { cancel () {
this.$router.push('/user/subscriber-phonebook/') this.$router.push('/user/subscriber-phonebook/')
this.$emit('cancel') this.$emit('cancel')
}, },
async confirm () { async confirm () {
await this.createPhonebookSubscriber(this.formData) try {
await this.$router.push('/user/subscriber-phonebook/') 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)
}
}
} }
} }
} }

Loading…
Cancel
Save