"use strict"; // Class definition var XYSignInSecurity = function () { // Elements var form; var validation; // Init validation var initValidation = () => { // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/ validation = FormValidation.formValidation( form, { fields: { username: { validators: { notEmpty: { message: language[ISO].username_empty, } } }, password: { validators: { notEmpty: { message: language[ISO].password_empty, } } } }, plugins: { trigger: new FormValidation.plugins.Trigger(), bootstrap: new FormValidation.plugins.Bootstrap5({ rowSelector: ".fv-row", eleInvalidClass: "", eleValidClass: "" }) } } ); } // Handle form var handleForm = () => { // Handle form submit const submitButton = form.querySelector('[data-form-action="submit"]'); submitButton.addEventListener('click', function (e) { // Prevent button default action e.preventDefault(); // Validate form validation.validate().then(function (status) { if (status == 'Valid') { // Show loading indication controlIndicator(submitButton, true); // Simulate ajax request ajaxRequest('auth/api/login', 'POST', new FormData(form), TIME_OUT, submitButton, () => { form.querySelector('[name="password"]').value = ''; }, () => { }); } else { // Show error popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/ sweetAlert(null, language[ISO].form_validation_error, 'error', true, language[ISO].ok); } }); }); } // Public functions return { // Initialization init: function () { form = document.querySelector('[data-form-target="sign_in"]'); if (!form) { return; } initValidation(); handleForm(); } }; }(); // Webpack support if (typeof module !== 'undefined') { module.exports = XYSignInSecurity; } // On document ready KTUtil.onDOMContentLoaded(function () { XYSignInSecurity.init(); });