diff --git a/imports/ui/pages/changePassword.html b/imports/ui/pages/changePassword.html
index d01ff6b1..a3ed1f4d 100644
--- a/imports/ui/pages/changePassword.html
+++ b/imports/ui/pages/changePassword.html
@@ -15,7 +15,7 @@
diff --git a/imports/ui/pages/changePassword.js b/imports/ui/pages/changePassword.js
index 66d738c5..a0c25ef5 100644
--- a/imports/ui/pages/changePassword.js
+++ b/imports/ui/pages/changePassword.js
@@ -1,5 +1,5 @@
import { FlowRouter } from 'meteor/ostrio:flow-router-extra'
-import { showToast } from '../../utils/frontend_helpers.js'
+import { showToast, validatePassword } from '../../utils/frontend_helpers.js'
import './changePassword.html'
import { t } from '../../utils/i18n.js'
@@ -14,6 +14,14 @@ Template.changePassword.events({
return
}
if (FlowRouter.getParam('token') && templateInstance.$('#at-field-password').val() && templateInstance.$('#at-field-password-again').val()) {
+ const passwordValidation = validatePassword(templateInstance.$('#at-field-password').val())
+ if (!passwordValidation.valid) {
+ templateInstance.$('#at-field-password').addClass('is-invalid')
+ templateInstance.$('#at-field-password-again').addClass('is-invalid')
+ templateInstance.$('.notification').text(passwordValidation.message)
+ document.querySelector('.notification').classList.toggle('d-none')
+ return
+ }
Accounts.resetPassword(FlowRouter.getParam('token'), templateInstance.$('#at-field-password').val(), (error) => {
if (error) {
templateInstance.$('.notification').text(t(`login.${error.error}`))
@@ -24,6 +32,14 @@ Template.changePassword.events({
}
})
} else if (Meteor.user() && templateInstance.$('#at-field-current-password').val() && templateInstance.$('#at-field-password').val() && templateInstance.$('#at-field-password-again').val()) {
+ const passwordValidation = validatePassword(templateInstance.$('#at-field-password').val())
+ if (!passwordValidation.valid) {
+ templateInstance.$('#at-field-password').addClass('is-invalid')
+ templateInstance.$('#at-field-password-again').addClass('is-invalid')
+ templateInstance.$('.notification').text(passwordValidation.message)
+ document.querySelector('.notification').classList.toggle('d-none')
+ return
+ }
Accounts.changePassword(templateInstance.$('#at-field-current-password').val(), templateInstance.$('#at-field-password').val(), (error) => {
if (error) {
templateInstance.$('.notification').text(t(`login.${error.error}`))
@@ -35,6 +51,24 @@ Template.changePassword.events({
})
}
},
+ 'keyup #at-field-password': (event, templateInstance) => {
+ event.preventDefault()
+ const validetedPW = validatePassword(templateInstance.$('#at-field-password').val())
+ templateInstance.$('.js-password-feedback').text(validetedPW.message)
+ if (validetedPW.valid) {
+ templateInstance.$('#at-field-password').removeClass('is-invalid')
+ templateInstance.$('#at-field-password-again').removeClass('is-invalid')
+ templateInstance.$('.js-password-feedback').removeClass('invalid-feedback')
+ templateInstance.$('.js-password-feedback').addClass('valid-feedback')
+ templateInstance.$('.js-password-feedback').removeClass('hide')
+ } else {
+ templateInstance.$('#at-field-password').addClass('is-invalid')
+ templateInstance.$('.js-password-feedback').removeClass('valid-feedback')
+ templateInstance.$('.js-password-feedback').addClass('invalid-feedback')
+ templateInstance.$('.js-password-feedback').removeClass('hide')
+ templateInstance.$('.js-password-feedback').addClass('d-block')
+ }
+ },
})
Template.changePassword.helpers({
hasTokenSet: () => FlowRouter.getParam('token'),
diff --git a/imports/ui/pages/register.html b/imports/ui/pages/register.html
index 4264651a..b93156b8 100644
--- a/imports/ui/pages/register.html
+++ b/imports/ui/pages/register.html
@@ -26,14 +26,14 @@
{{t "login.register"}}
-
+