115 lines
3.5 KiB
JavaScript
115 lines
3.5 KiB
JavaScript
/**
|
|
* Pages Authentication
|
|
*/
|
|
'use strict';
|
|
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
(() => {
|
|
const formAuthentication = document.querySelector('#formAuthentication');
|
|
|
|
// Form validation for Add new record
|
|
if (formAuthentication && typeof FormValidation !== 'undefined') {
|
|
FormValidation.formValidation(formAuthentication, {
|
|
fields: {
|
|
username: {
|
|
validators: {
|
|
notEmpty: {
|
|
message: 'Please enter username'
|
|
},
|
|
stringLength: {
|
|
min: 6,
|
|
message: 'Username must be more than 6 characters'
|
|
}
|
|
}
|
|
},
|
|
email: {
|
|
validators: {
|
|
notEmpty: {
|
|
message: 'Please enter your email'
|
|
},
|
|
emailAddress: {
|
|
message: 'Please enter a valid email address'
|
|
}
|
|
}
|
|
},
|
|
'email-username': {
|
|
validators: {
|
|
notEmpty: {
|
|
message: 'Please enter email / username'
|
|
},
|
|
stringLength: {
|
|
min: 6,
|
|
message: 'Username must be more than 6 characters'
|
|
}
|
|
}
|
|
},
|
|
password: {
|
|
validators: {
|
|
notEmpty: {
|
|
message: 'Please enter your password'
|
|
},
|
|
stringLength: {
|
|
min: 6,
|
|
message: 'Password must be more than 6 characters'
|
|
}
|
|
}
|
|
},
|
|
'confirm-password': {
|
|
validators: {
|
|
notEmpty: {
|
|
message: 'Please confirm password'
|
|
},
|
|
identical: {
|
|
compare: () => formAuthentication.querySelector('[name="password"]').value,
|
|
message: 'The password and its confirmation do not match'
|
|
},
|
|
stringLength: {
|
|
min: 6,
|
|
message: 'Password must be more than 6 characters'
|
|
}
|
|
}
|
|
},
|
|
terms: {
|
|
validators: {
|
|
notEmpty: {
|
|
message: 'Please agree to terms & conditions'
|
|
}
|
|
}
|
|
}
|
|
},
|
|
plugins: {
|
|
trigger: new FormValidation.plugins.Trigger(),
|
|
bootstrap5: new FormValidation.plugins.Bootstrap5({
|
|
eleValidClass: '',
|
|
rowSelector: '.form-control-validation'
|
|
}),
|
|
submitButton: new FormValidation.plugins.SubmitButton(),
|
|
defaultSubmit: new FormValidation.plugins.DefaultSubmit(),
|
|
autoFocus: new FormValidation.plugins.AutoFocus()
|
|
},
|
|
init: instance => {
|
|
instance.on('plugins.message.placed', e => {
|
|
if (e.element.parentElement.classList.contains('input-group')) {
|
|
e.element.parentElement.insertAdjacentElement('afterend', e.messageElement);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
// Two Steps Verification for numeral input mask
|
|
const numeralMaskElements = document.querySelectorAll('.numeral-mask');
|
|
|
|
// Format function for numeral mask
|
|
const formatNumeral = value => value.replace(/\D/g, ''); // Only keep digits
|
|
|
|
if (numeralMaskElements.length > 0) {
|
|
numeralMaskElements.forEach(numeralMaskEl => {
|
|
numeralMaskEl.addEventListener('input', event => {
|
|
numeralMaskEl.value = formatNumeral(event.target.value);
|
|
});
|
|
});
|
|
}
|
|
})();
|
|
});
|