easyappointments/assets/js/pages/recovery.js

65 lines
2.1 KiB
JavaScript
Raw Normal View History

/* ----------------------------------------------------------------------------
2022-01-18 15:05:42 +03:00
* Easy!Appointments - Online Appointment Scheduler
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
2021-12-18 19:43:45 +03:00
* @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');
2020-06-18 21:37:11 +03:00
$alert.addClass('d-none');
$getNewPassword.prop('disabled', true);
const username = $username.val();
const email = $email.val();
2024-07-04 13:47:24 +03:00
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 {};
})();