"use strict"; /** * Login form enhancement * * Provides client-side validation for the login form */ class Login_Index { /** * Initialize the login page * This method is automatically called by RSX framework for any class with a static on_app_ready() method * No manual registration is required */ static on_app_ready() { // Check if we're on this specific page if (!$('.Login_Index').exists()) return; let $form = $('#login-form'); let $submit_button = $('#btn-submit'); // Add form validation $submit_button.on('click', async e => { e.preventDefault(); const $email = $form.find('#email'); const $password = $form.find('#password'); // Build validation errors object const errors = {}; if (!$email.val()) { errors.email = 'Email is required'; } else if (!is_email($email.val())) { errors.email = 'Please enter a valid email address'; } if (!$password.val()) { errors.password = 'Password is required'; } // If there are validation errors, display them if (Object.keys(errors).length > 0) { await Form_Utils.apply_form_errors($form, errors); return false; } // Clear any previous errors and submit form Form_Utils.reset_form_errors($form); // And away we go $form.trigger('submit'); }); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMb2dpbl9JbmRleCIsIm9uX2FwcF9yZWFkeSIsIiQiLCJleGlzdHMiLCIkZm9ybSIsIiRzdWJtaXRfYnV0dG9uIiwib24iLCJlIiwicHJldmVudERlZmF1bHQiLCIkZW1haWwiLCJmaW5kIiwiJHBhc3N3b3JkIiwiZXJyb3JzIiwidmFsIiwiZW1haWwiLCJpc19lbWFpbCIsInBhc3N3b3JkIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsIkZvcm1fVXRpbHMiLCJhcHBseV9mb3JtX2Vycm9ycyIsInJlc2V0X2Zvcm1fZXJyb3JzIiwidHJpZ2dlciJdLCJzb3VyY2VzIjpbInJzeC9hcHAvbG9naW4vbG9naW5faW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBMb2dpbiBmb3JtIGVuaGFuY2VtZW50XG4gKlxuICogUHJvdmlkZXMgY2xpZW50LXNpZGUgdmFsaWRhdGlvbiBmb3IgdGhlIGxvZ2luIGZvcm1cbiAqL1xuY2xhc3MgTG9naW5fSW5kZXgge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgdGhlIGxvZ2luIHBhZ2VcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBhdXRvbWF0aWNhbGx5IGNhbGxlZCBieSBSU1ggZnJhbWV3b3JrIGZvciBhbnkgY2xhc3Mgd2l0aCBhIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSBtZXRob2RcbiAgICAgKiBObyBtYW51YWwgcmVnaXN0cmF0aW9uIGlzIHJlcXVpcmVkXG4gICAgICovXG4gICAgc3RhdGljIG9uX2FwcF9yZWFkeSgpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgb24gdGhpcyBzcGVjaWZpYyBwYWdlXG4gICAgICAgIGlmICghJCgnLkxvZ2luX0luZGV4JykuZXhpc3RzKCkpIHJldHVybjtcblxuICAgICAgICBsZXQgJGZvcm0gPSAkKCcjbG9naW4tZm9ybScpO1xuICAgICAgICBsZXQgJHN1Ym1pdF9idXR0b24gPSAkKCcjYnRuLXN1Ym1pdCcpO1xuXG4gICAgICAgIC8vIEFkZCBmb3JtIHZhbGlkYXRpb25cbiAgICAgICAgJHN1Ym1pdF9idXR0b24ub24oJ2NsaWNrJywgYXN5bmMgKGUpID0+IHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgY29uc3QgJGVtYWlsID0gJGZvcm0uZmluZCgnI2VtYWlsJyk7XG4gICAgICAgICAgICBjb25zdCAkcGFzc3dvcmQgPSAkZm9ybS5maW5kKCcjcGFzc3dvcmQnKTtcblxuICAgICAgICAgICAgLy8gQnVpbGQgdmFsaWRhdGlvbiBlcnJvcnMgb2JqZWN0XG4gICAgICAgICAgICBjb25zdCBlcnJvcnMgPSB7fTtcblxuICAgICAgICAgICAgaWYgKCEkZW1haWwudmFsKCkpIHtcbiAgICAgICAgICAgICAgICBlcnJvcnMuZW1haWwgPSAnRW1haWwgaXMgcmVxdWlyZWQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghaXNfZW1haWwoJGVtYWlsLnZhbCgpKSkge1xuICAgICAgICAgICAgICAgIGVycm9ycy5lbWFpbCA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCEkcGFzc3dvcmQudmFsKCkpIHtcbiAgICAgICAgICAgICAgICBlcnJvcnMucGFzc3dvcmQgPSAnUGFzc3dvcmQgaXMgcmVxdWlyZWQnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgdmFsaWRhdGlvbiBlcnJvcnMsIGRpc3BsYXkgdGhlbVxuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IEZvcm1fVXRpbHMuYXBwbHlfZm9ybV9lcnJvcnMoJGZvcm0sIGVycm9ycyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDbGVhciBhbnkgcHJldmlvdXMgZXJyb3JzIGFuZCBzdWJtaXQgZm9ybVxuICAgICAgICAgICAgRm9ybV9VdGlscy5yZXNldF9mb3JtX2Vycm9ycygkZm9ybSk7XG5cbiAgICAgICAgICAgIC8vIEFuZCBhd2F5IHdlIGdvXG4gICAgICAgICAgICAkZm9ybS50cmlnZ2VyKCdzdWJtaXQnKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxXQUFXLENBQUM7RUFDZDtBQUNKO0FBQ0E7QUFDQTtBQUNBO0VBQ0ksT0FBT0MsWUFBWUEsQ0FBQSxFQUFHO0lBQ2xCO0lBQ0EsSUFBSSxDQUFDQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUNDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7SUFFakMsSUFBSUMsS0FBSyxHQUFHRixDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLElBQUlHLGNBQWMsR0FBR0gsQ0FBQyxDQUFDLGFBQWEsQ0FBQzs7SUFFckM7SUFDQUcsY0FBYyxDQUFDQyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU9DLENBQUMsSUFBSztNQUNwQ0EsQ0FBQyxDQUFDQyxjQUFjLENBQUMsQ0FBQztNQUVsQixNQUFNQyxNQUFNLEdBQUdMLEtBQUssQ0FBQ00sSUFBSSxDQUFDLFFBQVEsQ0FBQztNQUNuQyxNQUFNQyxTQUFTLEdBQUdQLEtBQUssQ0FBQ00sSUFBSSxDQUFDLFdBQVcsQ0FBQzs7TUFFekM7TUFDQSxNQUFNRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO01BRWpCLElBQUksQ0FBQ0gsTUFBTSxDQUFDSSxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQ2ZELE1BQU0sQ0FBQ0UsS0FBSyxHQUFHLG1CQUFtQjtNQUN0QyxDQUFDLE1BQU0sSUFBSSxDQUFDQyxRQUFRLENBQUNOLE1BQU0sQ0FBQ0ksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ2hDRCxNQUFNLENBQUNFLEtBQUssR0FBRyxvQ0FBb0M7TUFDdkQ7TUFFQSxJQUFJLENBQUNILFNBQVMsQ0FBQ0UsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUNsQkQsTUFBTSxDQUFDSSxRQUFRLEdBQUcsc0JBQXNCO01BQzVDOztNQUVBO01BQ0EsSUFBSUMsTUFBTSxDQUFDQyxJQUFJLENBQUNOLE1BQU0sQ0FBQyxDQUFDTyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2hDLE1BQU1DLFVBQVUsQ0FBQ0MsaUJBQWlCLENBQUNqQixLQUFLLEVBQUVRLE1BQU0sQ0FBQztRQUNqRCxPQUFPLEtBQUs7TUFDaEI7O01BRUE7TUFDQVEsVUFBVSxDQUFDRSxpQkFBaUIsQ0FBQ2xCLEtBQUssQ0FBQzs7TUFFbkM7TUFDQUEsS0FBSyxDQUFDbUIsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMzQixDQUFDLENBQUM7RUFDTjtBQUNKIiwiaWdub3JlTGlzdCI6W119