easyappointments/assets/js/pages/recovery.js
2022-01-14 09:26:44 +01:00

64 lines
2 KiB
JavaScript

/* ----------------------------------------------------------------------------
* Easy!Appointments - Open Source Web Scheduler
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) Alex Tselegidis
* @license https://opensource.org/licenses/GPL-3.0 - GPLv3
* @link https://easyappointments.org
* @since v1.5.0
* ---------------------------------------------------------------------------- */
/**
* Recovery page.
*
* This module implements the functionality of the recovery page.
*/
App.Pages.Recovery = (function () {
const $form = $('form');
/**
* Event: Login Button "Click"
*
* Make an HTTP request to the server and check whether the user's credentials are right. If yes then redirect the
* user to the destination page, otherwise display an error message.
*/
function onFormSubmit(event) {
event.preventDefault();
const url = GlobalVariables.baseUrl + '/index.php/recovery/perform';
const data = {
csrf_token: GlobalVariables.csrfToken,
username: $('#username').val(),
email: $('#email').val()
};
const $alert = $('.alert');
$alert.addClass('d-none');
$('#get-new-password').prop('disabled', true);
$.post(url, data).done((response) => {
$alert.removeClass('d-none alert-danger alert-success');
$('#get-new-password').prop('disabled', false);
if (response.success) {
$alert.addClass('alert-success');
$alert.text(App.Lang.new_password_sent_with_email);
} else {
$alert.addClass('alert-danger');
$alert.text(
'The operation failed! Please enter a valid username ' +
'and email address in order to get a new password.'
);
}
});
}
$form.on('submit', onFormSubmit);
return {};
})();