From bcfe2bbaa2b9da56d0704e25c47652d6a2c1e889 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 5 Mar 2020 23:01:18 +0000 Subject: [PATCH] --- ayanova/src/api/gzform.js | 32 +++++++++++++++++++++++++++++ ayanova/src/api/locale.js | 1 + ayanova/src/views/home-password.vue | 7 +++++++ 3 files changed, 40 insertions(+) diff --git a/ayanova/src/api/gzform.js b/ayanova/src/api/gzform.js index e0e58d46..98fc24f7 100644 --- a/ayanova/src/api/gzform.js +++ b/ayanova/src/api/gzform.js @@ -267,6 +267,38 @@ export default { } }, /////////////////////////////// + // Confirm password + // (two fields must match) + // + confirmMatch(vm, refFirst, refSecond) { + if (vm.formState.loading) { + return false; + } + var ctrlFirst = getControl(vm, refFirst); + if (typeof ctrlFirst == "undefined") { + return false; + } + + var ctrlSecond = getControl(vm, refSecond); + if (typeof ctrlSecond == "undefined") { + return false; + } + var valueFirst = getControlValue(ctrlFirst); + var valueSecond = getControlValue(ctrlSecond); + + if (valueFirst != valueSecond) { + var err = window.$gz.locale.get("ErrorNoMatch"); + //Update the form status + this.setFormState({ + vm: vm, + valid: false + }); + return err; + } else { + return false; + } + }, + /////////////////////////////// // INTEGER IS VALID // integerValid(vm, ref) { diff --git a/ayanova/src/api/locale.js b/ayanova/src/api/locale.js index 1ed4d6b8..66aba6da 100644 --- a/ayanova/src/api/locale.js +++ b/ayanova/src/api/locale.js @@ -145,6 +145,7 @@ export default { "ErrorServerUnresponsive", "ErrorUserNotAuthenticated", "ErrorUserNotAuthorized", + "ErrorNoMatch", "DeletePrompt", "AreYouSureUnsavedChanges", "Leave", diff --git a/ayanova/src/views/home-password.vue b/ayanova/src/views/home-password.vue index 7f4cfad1..34775bb5 100644 --- a/ayanova/src/views/home-password.vue +++ b/ayanova/src/views/home-password.vue @@ -28,6 +28,7 @@ spellcheck="false" v-focus :label="lt('UserLogin')" + :rules="[form().required(this, 'loginName')]" :error-messages="form().serverErrors(this, 'loginName')" ref="loginName" @change="onChange('loginName')" @@ -42,6 +43,7 @@ prepend-icon="fa-key" :label="lt('OldPassword')" :type="reveal ? 'text' : 'password'" + :rules="[form().required(this, 'oldPassword')]" :error-messages="form().serverErrors(this, 'oldPassword')" ref="oldPassword" @change="onChange('oldPassword')" @@ -57,6 +59,7 @@ prepend-icon="fa-key" :label="lt('NewPassword')" :type="reveal ? 'text' : 'password'" + :rules="[form().required(this, 'newPassword')]" :error-messages="form().serverErrors(this, 'newPassword')" ref="newPassword" @change="onChange('newPassword')" @@ -72,6 +75,10 @@ prepend-icon="fa-key" :label="lt('ConfirmPassword')" :type="reveal ? 'text' : 'password'" + :rules="[ + form().required(this, 'confirmPassword'), + form().confirmMatch(this, 'newPassword', 'confirmPassword') + ]" :error-messages="form().serverErrors(this, 'confirmPassword')" ref="confirmPassword" @change="onChange('confirmPassword')"