easyappointments/assets/js/pages/recovery.js
2024-07-07 11:48:33 +02:00

64 lines
2.1 KiB
JavaScript

/* ----------------------------------------------------------------------------
* Easy!Appointments - Online Appointment 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');
const $username = $('#username');
const $email = $('#email');
const $getNewPassword = $('#get-new-password');
/**
* 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 $alert = $('.alert');
$alert.addClass('d-none');
$getNewPassword.prop('disabled', true);
const username = $username.val();
const email = $email.val();
App.Http.Recovery.perform(username, email)
.done((response) => {
$alert.removeClass('d-none alert-danger alert-success');
if (response.success) {
$alert.addClass('alert-success');
$alert.text(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.',
);
}
})
.always(() => {
$getNewPassword.prop('disabled', false);
});
}
$form.on('submit', onFormSubmit);
return {};
})();