From 73bff34a7f804523678c913c430e33acb5006443 Mon Sep 17 00:00:00 2001 From: Bill Tomczak Date: Tue, 14 Jun 2022 09:03:03 -0700 Subject: [PATCH 01/18] Initial move away from Joomla core form validation --- src/media/css/frontend.css | 5 +- src/media/js/jquery.osdownloads.bundle.js | 110 +- src/media/js/jquery.osdownloads.bundle.min.js | 9 +- src/media/js/jquery.osdownloads.js | 110 +- src/media/js/jquery.validate.js | 1657 +++++++++++++++++ src/media/js/jquery.validate.min.js | 4 + .../layouts/osdownloads/buttons/download.php | 33 +- 7 files changed, 1720 insertions(+), 208 deletions(-) create mode 100644 src/media/js/jquery.validate.js create mode 100644 src/media/js/jquery.validate.min.js diff --git a/src/media/css/frontend.css b/src/media/css/frontend.css index 1c9c2959..02ac360d 100644 --- a/src/media/css/frontend.css +++ b/src/media/css/frontend.css @@ -246,11 +246,14 @@ Example markup } .osdownloads-modal .error { - margin-bottom: 20px; font-style: italic; color: #d85030; } +.osdownloads-modal label.error { + margin-bottom: 20px; +} + .osdownloads-modal label { width: 100%; } diff --git a/src/media/js/jquery.osdownloads.bundle.js b/src/media/js/jquery.osdownloads.bundle.js index 57f78efe..c54482a1 100644 --- a/src/media/js/jquery.osdownloads.bundle.js +++ b/src/media/js/jquery.osdownloads.bundle.js @@ -174,59 +174,11 @@ // Move the popup containers to the body $popup.appendTo($('body')); - let isValidForm = function() { - let email = $fieldEmail.val().trim(), - emailRegex = /^([A-Za-z0-9_\-.+])+@([A-Za-z0-9_\-.])+\.([A-Za-z]{2,25})$/, - hasError = false; - - if (requireAgree) { - if ($fieldAgree.is(':checked')) { - $errorAgreeTerms.hide(); - - } else { - hasError = true; - $errorAgreeTerms.show(); - } - } - - switch (requireEmail) { - case 1: - // email required - if (email === '' || !emailRegex.test(email)) { - hasError = true; - $errorInvalidEmail.show(); - - } else { - $errorInvalidEmail.hide(); - } - break; - - case 2: - // email optional - if (email !== '' && !emailRegex.test(email)) { - hasError = true; - $errorInvalidEmail.show(); - - } else { - $errorInvalidEmail.hide(); - } - break; - } - - if (hasError) { - return false; - } - - // Validate the form for custom fields before submitting - if ($form.length > 0) { - $form.prop('target', 'osdownloads-tmp-iframe-' + $form.prop('id')); - - return document.formvalidator.isValid($form[0]); - - } else { - return true; + $form.validate({ + submitHandler: function(form) { + download(); } - }; + }); let showPopup = function(selector) { $(selector).reveal({ @@ -247,7 +199,7 @@ .addClass('osdownloads-modal'); $iframe = $('