diff --git a/application/views/pages/recovery.php b/application/views/pages/recovery.php index 318ae94c..bf34501d 100644 --- a/application/views/pages/recovery.php +++ b/application/views/pages/recovery.php @@ -39,6 +39,8 @@ + + diff --git a/assets/js/http/recovery_http_client.js b/assets/js/http/recovery_http_client.js new file mode 100644 index 00000000..ddc96180 --- /dev/null +++ b/assets/js/http/recovery_http_client.js @@ -0,0 +1,41 @@ +/* ---------------------------------------------------------------------------- + * Easy!Appointments - Open Source Web Scheduler + * + * @package EasyAppointments + * @author A.Tselegidis + * @copyright Copyright (c) Alex Tselegidis + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org + * @since v1.5.0 + * ---------------------------------------------------------------------------- */ + +/** + * Recovery HTTP client. + * + * This module implements the account recovery related HTTP requests. + */ +App.Http.Recovery = (function () { + /** + * Perform an account recovery. + * + * @param {String} username + * @param {String} email + * + * @return {Object} + */ + function perform(username, email) { + const url = App.Utils.Url.siteUrl('recovery/perform'); + + const data = { + csrf_token: App.Vars.csrf_token, + username, + email + }; + + return $.post(url, data); + } + + return { + perform + }; +})(); diff --git a/assets/js/pages/recovery.js b/assets/js/pages/recovery.js index a5e66624..77b4cdf1 100644 --- a/assets/js/pages/recovery.js +++ b/assets/js/pages/recovery.js @@ -16,6 +16,9 @@ */ App.Pages.Recovery = (function () { const $form = $('form'); + const $username = $('#username'); + const $email = $('#email'); + const $getNewPassword = $('#get-new-password'); /** * Event: Login Button "Click" @@ -26,24 +29,19 @@ App.Pages.Recovery = (function () { 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); + $getNewPassword.prop('disabled', true); - $.post(url, data).done((response) => { + const username = $username.val(); + const email = $email.val(); + + App.Http.Recovery.perform(username, email).done((response) => { $alert.removeClass('d-none alert-danger alert-success'); - $('#get-new-password').prop('disabled', false); + $getNewPassword.prop('disabled', false); if (response.success) { $alert.addClass('alert-success');