diff options
author | Surya Venkatesan <suryav@ami.com> | 2024-09-19 12:36:49 +0300 |
---|---|---|
committer | Surya Venkatesan <suryav@ami.com> | 2024-09-23 15:57:31 +0300 |
commit | 815a22e6b54d50b4e9f256574bfc558039663a6f (patch) | |
tree | 013f69f5d7b39e57409aed2c68ec9c6bf0efb80d | |
parent | 52ed88529c764b6c4f60c6bd93fd1bcc532fc084 (diff) | |
download | webui-vue-815a22e6b54d50b4e9f256574bfc558039663a6f.tar.xz |
Network page validation and i18n issue fix
In network page invalid if condition changed, added validations and i18n
function changed based on the vue 3 support.
Change-Id: If5b9c00f6da722984f1c568cfbcb6b34537c3df1
Signed-off-by: Surya Venkatesan <suryav@ami.com>
-rw-r--r-- | src/store/modules/Settings/NetworkStore.js | 24 | ||||
-rw-r--r-- | src/views/Settings/Network/ModalDefaultGateway.vue | 25 | ||||
-rw-r--r-- | src/views/Settings/Network/ModalDns.vue | 4 | ||||
-rw-r--r-- | src/views/Settings/Network/ModalHostname.vue | 8 | ||||
-rw-r--r-- | src/views/Settings/Network/ModalIpv4.vue | 12 | ||||
-rw-r--r-- | src/views/Settings/Network/ModalIpv6.vue | 35 | ||||
-rw-r--r-- | src/views/Settings/Network/ModalMacAddress.vue | 8 | ||||
-rw-r--r-- | src/views/Settings/Network/TableDns.vue | 3 | ||||
-rw-r--r-- | src/views/Settings/Network/TableIpv6.vue | 31 |
9 files changed, 87 insertions, 63 deletions
diff --git a/src/store/modules/Settings/NetworkStore.js b/src/store/modules/Settings/NetworkStore.js index 9dc006e5..d4174e3d 100644 --- a/src/store/modules/Settings/NetworkStore.js +++ b/src/store/modules/Settings/NetworkStore.js @@ -145,15 +145,15 @@ const NetworkStore = { ) .then(dispatch('getEthernetData')) .then(() => { - return i18n.t('pageNetwork.toast.successSaveNetworkSettings', { - setting: i18n.t('pageNetwork.dhcp6'), + return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { + setting: i18n.global.t('pageNetwork.dhcp6'), }); }) .catch((error) => { console.log(error); throw new Error( - i18n.t('pageNetwork.toast.errorSaveNetworkSettings', { - setting: i18n.t('pageNetwork.dhcp6'), + i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { + setting: i18n.global.t('pageNetwork.dhcp6'), }), ); }); @@ -335,15 +335,15 @@ const NetworkStore = { ) .then(dispatch('getEthernetData')) .then(() => { - return i18n.t('pageNetwork.toast.successSaveNetworkSettings', { - setting: i18n.t('pageNetwork.ipv6'), + return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { + setting: i18n.global.t('pageNetwork.ipv6'), }); }) .catch((error) => { console.log(error); throw new Error( - i18n.t('pageNetwork.toast.errorSaveNetworkSettings', { - setting: i18n.t('pageNetwork.ipv6'), + i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { + setting: i18n.global.t('pageNetwork.ipv6'), }), ); }); @@ -377,15 +377,15 @@ const NetworkStore = { ) .then(dispatch('getEthernetData')) .then(() => { - return i18n.t('pageNetwork.toast.successSaveNetworkSettings', { - setting: i18n.t('pageNetwork.ipv6'), + return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { + setting: i18n.global.t('pageNetwork.ipv6'), }); }) .catch((error) => { console.log(error); throw new Error( - i18n.t('pageNetwork.toast.errorSaveNetworkSettings', { - setting: i18n.t('pageNetwork.ipv6'), + i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { + setting: i18n.global.t('pageNetwork.ipv6'), }), ); }); diff --git a/src/views/Settings/Network/ModalDefaultGateway.vue b/src/views/Settings/Network/ModalDefaultGateway.vue index 968b5597..d54ddc2f 100644 --- a/src/views/Settings/Network/ModalDefaultGateway.vue +++ b/src/views/Settings/Network/ModalDefaultGateway.vue @@ -17,14 +17,14 @@ v-model.trim="form.defaultGateway" data-test-id="network-input-gateway" type="text" - :state="getValidationState($v.form.defaultGateway)" - @change="$v.form.defaultGateway.$touch()" + :state="getValidationState(v$.form.defaultGateway)" + @change="v$.form.defaultGateway.$touch()" /> <b-form-invalid-feedback role="alert"> - <div v-if="!$v.form.defaultGateway.required"> + <div v-if="v$.form.defaultGateway.required.$invalid"> {{ $t('global.form.fieldRequired') }} </div> - <div v-if="!$v.form.defaultGateway.validateGateway"> + <div v-if="v$.form.defaultGateway.validateGateway.$invalid"> {{ $t('global.form.invalidFormat') }} </div> </b-form-invalid-feedback> @@ -50,7 +50,10 @@ <script> import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js'; -import { required, helpers } from '@vuelidate/validators'; +import { required } from '@vuelidate/validators'; +import { helpers } from 'vuelidate/lib/validators'; +import { useVuelidate } from '@vuelidate/core'; +import { useI18n } from 'vue-i18n'; const validateGateway = helpers.regex( 'validateGateway', @@ -65,8 +68,14 @@ export default { default: '', }, }, + setup() { + return { + v$: useVuelidate(), + }; + }, data() { return { + $t: useI18n().t, form: { defaultGateway: '', }, @@ -89,8 +98,8 @@ export default { }, methods: { handleSubmit() { - this.$v.$touch(); - if (this.$v.$invalid) return; + this.v$.$touch(); + if (this.v$.$invalid) return; this.$emit('ok', { IPv6DefaultGateway: this.form.defaultGateway }); this.closeModal(); }, @@ -101,7 +110,7 @@ export default { }, resetForm() { this.form.defaultGateway = this.defaultGateway; - this.$v.$reset(); + this.v$.$reset(); this.$emit('hidden'); }, onOk(bvModalEvt) { diff --git a/src/views/Settings/Network/ModalDns.vue b/src/views/Settings/Network/ModalDns.vue index 0e1bd881..179d831f 100644 --- a/src/views/Settings/Network/ModalDns.vue +++ b/src/views/Settings/Network/ModalDns.vue @@ -20,10 +20,10 @@ @input="v$.form.staticDns.$touch()" /> <b-form-invalid-feedback role="alert"> - <template v-if="!v$.form.staticDns.required"> + <template v-if="v$.form.staticDns.required.$invalid"> {{ $t('global.form.fieldRequired') }} </template> - <template v-if="!v$.form.staticDns.ipAddress"> + <template v-if="v$.form.staticDns.ipAddress.$invalid"> {{ $t('global.form.invalidFormat') }} </template> </b-form-invalid-feedback> diff --git a/src/views/Settings/Network/ModalHostname.vue b/src/views/Settings/Network/ModalHostname.vue index b2155b7a..5eeffb3a 100644 --- a/src/views/Settings/Network/ModalHostname.vue +++ b/src/views/Settings/Network/ModalHostname.vue @@ -20,10 +20,10 @@ @input="v$.form.hostname.$touch()" /> <b-form-invalid-feedback role="alert"> - <template v-if="!v$.form.hostname.required"> + <template v-if="v$.form.hostname.required.$invalid"> {{ $t('global.form.fieldRequired') }} </template> - <template v-if="!v$.form.hostname.validateHostname"> + <template v-if="v$.form.hostname.validateHostname.$invalid"> {{ $t('global.form.lengthMustBeBetween', { min: 1, max: 64 }) }} </template> </b-form-invalid-feedback> @@ -50,8 +50,8 @@ <script> import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js'; import { useVuelidate } from '@vuelidate/core'; - -import { required, helpers } from '@vuelidate/validators'; +import { helpers } from 'vuelidate/lib/validators'; +import { required } from '@vuelidate/validators'; import { useI18n } from 'vue-i18n'; const validateHostname = helpers.regex('validateHostname', /^\S{0,64}$/); diff --git a/src/views/Settings/Network/ModalIpv4.vue b/src/views/Settings/Network/ModalIpv4.vue index a3b54826..7b4c62e9 100644 --- a/src/views/Settings/Network/ModalIpv4.vue +++ b/src/views/Settings/Network/ModalIpv4.vue @@ -20,10 +20,10 @@ @input="v$.form.ipAddress.$touch()" /> <b-form-invalid-feedback role="alert"> - <template v-if="!v$.form.ipAddress.required"> + <template v-if="v$.form.ipAddress.required.$invalid"> {{ $t('global.form.fieldRequired') }} </template> - <template v-if="!v$.form.ipAddress.ipAddress"> + <template v-if="v$.form.ipAddress.ipAddress.$invalid"> {{ $t('global.form.invalidFormat') }} </template> </b-form-invalid-feedback> @@ -42,10 +42,10 @@ @input="v$.form.gateway.$touch()" /> <b-form-invalid-feedback role="alert"> - <template v-if="!v$.form.gateway.required"> + <template v-if="v$.form.gateway.required.$invalid"> {{ $t('global.form.fieldRequired') }} </template> - <template v-if="!v$.form.gateway.ipAddress"> + <template v-if="v$.form.gateway.ipAddress.$invalid"> {{ $t('global.form.invalidFormat') }} </template> </b-form-invalid-feedback> @@ -66,10 +66,10 @@ @input="v$.form.subnetMask.$touch()" /> <b-form-invalid-feedback role="alert"> - <template v-if="!v$.form.subnetMask.required"> + <template v-if="v$.form.subnetMask.required.$invalid"> {{ $t('global.form.fieldRequired') }} </template> - <template v-if="!v$.form.subnetMask.ipAddress"> + <template v-if="v$.form.subnetMask.ipAddress.$invalid"> {{ $t('global.form.invalidFormat') }} </template> </b-form-invalid-feedback> diff --git a/src/views/Settings/Network/ModalIpv6.vue b/src/views/Settings/Network/ModalIpv6.vue index 5b2e1c20..78f803af 100644 --- a/src/views/Settings/Network/ModalIpv6.vue +++ b/src/views/Settings/Network/ModalIpv6.vue @@ -16,14 +16,14 @@ id="ipAddress" v-model="form.ipAddress" type="text" - :state="getValidationState($v.form.ipAddress)" - @input="$v.form.ipAddress.$touch()" + :state="getValidationState(v$.form.ipAddress)" + @input="v$.form.ipAddress.$touch()" /> <b-form-invalid-feedback role="alert"> - <template v-if="!$v.form.ipAddress.required"> + <template v-if="v$.form.ipAddress.required.$invalid"> {{ $t('global.form.fieldRequired') }} </template> - <template v-if="!$v.form.ipAddress.validateIpv6"> + <template v-if="v$.form.ipAddress.validateIpv6.$invalid"> {{ $t('global.form.invalidFormat') }} </template> </b-form-invalid-feedback> @@ -38,14 +38,16 @@ id="prefixLength" v-model="form.prefixLength" type="text" - :state="getValidationState($v.form.prefixLength)" - @input="$v.form.prefixLength.$touch()" + :state="getValidationState(v$.form.prefixLength)" + @input="v$.form.prefixLength.$touch()" /> <b-form-invalid-feedback role="alert"> - <template v-if="!$v.form.prefixLength.required"> + <template v-if="v$.form.prefixLength.required.$invalid"> {{ $t('global.form.fieldRequired') }} </template> - <template v-if="!$v.form.prefixLength.validatePrefixLength"> + <template + v-if="v$.form.prefixLength.validatePrefixLength.$invalid" + > {{ $t('global.form.invalidFormat') }} </template> </b-form-invalid-feedback> @@ -66,7 +68,10 @@ <script> import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js'; -import { required, helpers } from '@vuelidate/validators'; +import { required } from '@vuelidate/validators'; +import { helpers } from 'vuelidate/lib/validators'; +import { useI18n } from 'vue-i18n'; +import { useVuelidate } from '@vuelidate/core'; const validateIpv6 = helpers.regex( 'validateIpv6', @@ -80,8 +85,14 @@ const validatePrefixLength = helpers.regex( export default { mixins: [VuelidateMixin], + setup() { + return { + v$: useVuelidate(), + }; + }, data() { return { + $t: useI18n().t, form: { ipAddress: '', prefixLength: '', @@ -104,8 +115,8 @@ export default { }, methods: { handleSubmit() { - this.$v.$touch(); - if (this.$v.$invalid) return; + this.v$.$touch(); + if (this.v$.$invalid) return; this.$emit('ok', { Address: this.form.ipAddress, PrefixLength: parseInt(this.form.prefixLength), @@ -120,7 +131,7 @@ export default { resetForm() { this.form.ipAddress = null; this.form.prefixLength = null; - this.$v.$reset(); + this.v$.$reset(); this.$emit('hidden'); }, onOk(bvModalEvt) { diff --git a/src/views/Settings/Network/ModalMacAddress.vue b/src/views/Settings/Network/ModalMacAddress.vue index f3fcc02e..137a3591 100644 --- a/src/views/Settings/Network/ModalMacAddress.vue +++ b/src/views/Settings/Network/ModalMacAddress.vue @@ -21,10 +21,10 @@ @change="v$.form.macAddress.$touch()" /> <b-form-invalid-feedback role="alert"> - <div v-if="!v$.form.macAddress.required"> + <div v-if="v$.form.macAddress.required.$invalid"> {{ $t('global.form.fieldRequired') }} </div> - <div v-if="!v$.form.macAddress.macAddress"> + <div v-if="v$.form.macAddress.macAddress.$invalid"> {{ $t('global.form.invalidFormat') }} </div> </b-form-invalid-feedback> @@ -51,8 +51,8 @@ <script> import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js'; import { useVuelidate } from '@vuelidate/core'; - -import { macAddress, required } from '@vuelidate/validators'; +import { required } from '@vuelidate/validators'; +import { macAddress } from 'vuelidate/lib/validators'; import { useI18n } from 'vue-i18n'; export default { diff --git a/src/views/Settings/Network/TableDns.vue b/src/views/Settings/Network/TableDns.vue index 0de1dcab..b0e5d807 100644 --- a/src/views/Settings/Network/TableDns.vue +++ b/src/views/Settings/Network/TableDns.vue @@ -47,6 +47,7 @@ import PageSection from '@/components/Global/PageSection'; import TableRowAction from '@/components/Global/TableRowAction'; import { mapState } from 'vuex'; import { useI18n } from 'vue-i18n'; +import i18n from '@/i18n'; export default { name: 'DNSTable', @@ -83,7 +84,7 @@ export default { dnsTableFields: [ { key: 'address', - label: 'pageNetwork.table.ipAddress', + label: i18n.global.t('pageNetwork.table.ipAddress'), }, { key: 'actions', label: '', tdClass: 'text-right' }, ], diff --git a/src/views/Settings/Network/TableIpv6.vue b/src/views/Settings/Network/TableIpv6.vue index 5a16e9dc..bdebc277 100644 --- a/src/views/Settings/Network/TableIpv6.vue +++ b/src/views/Settings/Network/TableIpv6.vue @@ -92,6 +92,8 @@ import PageSection from '@/components/Global/PageSection'; import TableRowAction from '@/components/Global/TableRowAction'; import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin'; import { mapState } from 'vuex'; +import i18n from '@/i18n'; +import { useI18n } from 'vue-i18n'; export default { name: 'Ipv6Table', @@ -111,31 +113,32 @@ export default { }, data() { return { + $t: useI18n().t, form: { ipv6TableItems: [], }, actions: [ { value: 'edit', - title: this.$t('global.action.edit'), + title: i18n.global.t('global.action.edit'), }, { value: 'delete', - title: this.$t('global.action.delete'), + title: i18n.global.t('global.action.delete'), }, ], ipv6TableFields: [ { key: 'Address', - label: this.$t('pageNetwork.table.ipAddress'), + label: i18n.global.t('pageNetwork.table.ipAddress'), }, { key: 'PrefixLength', - label: this.$t('pageNetwork.table.prefixLength'), + label: i18n.global.t('pageNetwork.table.prefixLength'), }, { key: 'AddressOrigin', - label: this.$t('pageNetwork.table.addressOrigin'), + label: i18n.global.t('pageNetwork.table.addressOrigin'), }, { key: 'actions', label: '', tdClass: 'text-right' }, ], @@ -212,7 +215,7 @@ export default { actions: [ { value: 'delete', - title: this.$t('pageNetwork.table.deleteIpv6'), + title: i18n.global.t('pageNetwork.table.deleteIpv6'), }, ], }; @@ -254,19 +257,19 @@ export default { this.$bvModal .msgBoxConfirm( state - ? this.$t('pageNetwork.modal.confirmEnableDhcp') - : this.$t('pageNetwork.modal.confirmDisableDhcp'), + ? i18n.global.t('pageNetwork.modal.confirmEnableDhcp') + : i18n.global.t('pageNetwork.modal.confirmDisableDhcp'), { - title: this.$t('pageNetwork.modal.dhcpConfirmTitle', { + title: i18n.global.t('pageNetwork.modal.dhcpConfirmTitle', { dhcpState: state - ? this.$t('global.action.enable') - : this.$t('global.action.disable'), + ? i18n.global.t('global.action.enable') + : i18n.global.t('global.action.disable'), }), okTitle: state - ? this.$t('global.action.enable') - : this.$t('global.action.disable'), + ? i18n.global.t('global.action.enable') + : i18n.global.t('global.action.disable'), okVariant: 'danger', - cancelTitle: this.$t('global.action.cancel'), + cancelTitle: i18n.global.t('global.action.cancel'), }, ) .then((dhcpEnableConfirmed) => { |