diff options
author | Vitalii Lysak <v.lysak@dunice.net> | 2022-08-05 14:38:39 +0300 |
---|---|---|
committer | Vitalii Lysak <v.lysak@dunice.net> | 2022-08-05 14:38:39 +0300 |
commit | a0cb2a78e019662e57c73e77e8c4ba587bd0f14e (patch) | |
tree | 00eae25e3ca2648d8e4122e47b4f76512527f34d /src | |
parent | 1143e33c560c4349457426ed02b2390a9301b0bb (diff) | |
download | webui-vue-a0cb2a78e019662e57c73e77e8c4ba587bd0f14e.tar.xz |
SILABMC-223: ntp validation
Diffstat (limited to 'src')
-rw-r--r-- | src/utilities/_sila/regexConstants.js | 3 | ||||
-rw-r--r-- | src/views/_sila/Overview/DateTime/DateTime.vue | 32 |
2 files changed, 32 insertions, 3 deletions
diff --git a/src/utilities/_sila/regexConstants.js b/src/utilities/_sila/regexConstants.js new file mode 100644 index 00000000..dd796e86 --- /dev/null +++ b/src/utilities/_sila/regexConstants.js @@ -0,0 +1,3 @@ +export const isoDateRegex = /([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/; +export const isoTimeRegex = /^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/; +export const isoNtpRegex = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?|^((http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/; diff --git a/src/views/_sila/Overview/DateTime/DateTime.vue b/src/views/_sila/Overview/DateTime/DateTime.vue index 66871699..796a57ac 100644 --- a/src/views/_sila/Overview/DateTime/DateTime.vue +++ b/src/views/_sila/Overview/DateTime/DateTime.vue @@ -145,6 +145,9 @@ @blur="$v.form.ntp.firstAddress.$touch()" /> <b-form-invalid-feedback role="alert"> + <div v-if="!$v.form.ntp.firstAddress.pattern"> + {{ $t('global.form.invalidFormat') }} + </div> <div v-if="!$v.form.ntp.firstAddress.required"> {{ $t('global.form.fieldRequired') }} </div> @@ -161,9 +164,16 @@ <b-form-input id="input-ntp-2" v-model="form.ntp.secondAddress" + :state="getValidationState($v.form.ntp.secondAddress)" :disabled="manualOptionSelected" data-test-id="dateTime-input-ntpServer2" + @blur="$v.form.ntp.secondAddress.$touch()" /> + <b-form-invalid-feedback role="alert"> + <div v-if="!$v.form.ntp.secondAddress.pattern"> + {{ $t('global.form.invalidFormat') }} + </div> + </b-form-invalid-feedback> </b-input-group> </b-form-group> </b-col> @@ -176,9 +186,16 @@ <b-form-input id="input-ntp-3" v-model="form.ntp.thirdAddress" + :state="getValidationState($v.form.ntp.thirdAddress)" :disabled="manualOptionSelected" data-test-id="dateTime-input-ntpServer3" + @blur="$v.form.ntp.thirdAddress.$touch()" /> + <b-form-invalid-feedback role="alert"> + <div v-if="!$v.form.ntp.thirdAddress.pattern"> + {{ $t('global.form.invalidFormat') }} + </div> + </b-form-invalid-feedback> </b-input-group> </b-form-group> </b-col> @@ -208,13 +225,15 @@ import LoadingBarMixin, { } from '@/components/_sila/Mixins/LoadingBarMixin'; import LocalTimezoneLabelMixin from '@/components/_sila/Mixins/LocalTimezoneLabelMixin'; import VuelidateMixin from '@/components/_sila/Mixins/VuelidateMixin.js'; +import { + isoDateRegex, + isoTimeRegex, + isoNtpRegex, +} from '@/utilities/_sila/regexConstants'; import { mapState } from 'vuex'; import { requiredIf, helpers } from 'vuelidate/lib/validators'; -const isoDateRegex = /([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/; -const isoTimeRegex = /^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/; - export default { name: 'DateTime', components: { Alert, IconCalendar, PageTitle, PageSection }, @@ -264,6 +283,13 @@ export default { required: requiredIf(function () { return this.form.configurationSelected === 'ntp'; }), + pattern: helpers.regex('pattern', isoNtpRegex), + }, + secondAddress: { + pattern: helpers.regex('pattern', isoNtpRegex), + }, + thirdAddress: { + pattern: helpers.regex('pattern', isoNtpRegex), }, }, }, |