From 9eaf2fc614a145aeb87a821ffcc4dcfcbf7a243d Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Wed, 31 Jan 2024 16:53:09 +0100 Subject: [PATCH] javascript --- install/index.php | 154 +++++++++++++++++++++++++++++----------------- 1 file changed, 96 insertions(+), 58 deletions(-) diff --git a/install/index.php b/install/index.php index c961f5a63..16a000c65 100644 --- a/install/index.php +++ b/install/index.php @@ -366,22 +366,28 @@ global $wavelog_url;

Configure some basic parameters for your wavelog instance. You can change them later in 'application/config/config.php'

- +
" class="form-control" name="directory" aria-describedby="main-url" />
-
+
" class="form-control" name="websiteurl" /> +
+ This field can't be empty! +
-
+
- + +
+ Type in a valid locator +
- +
- +
@@ -679,13 +685,6 @@ global $wavelog_url; tab.show(); } - if (nextTab.attr('id') !== lastTabId) { - $('#ContinueButton').css('display', 'block'); - $('#BackButton').css('display', 'block'); - } else { - $('#ContinueButton').css('display', 'none'); - } - if (nextTab.attr('id') == secondTabId) { if (allChecksPassed == 'failed') { if (root_mode == false) { @@ -697,6 +696,21 @@ global $wavelog_url; $('#ContinueButton').prop('disabled', false); } } + + if (nextTab.attr('id') == thirdTabId) { + if (root_mode == false) { + $('#ContinueButton').prop('disabled', true); + } else { + $('#ContinueButton').prop('disabled', false); + } + } + + if (nextTab.attr('id') !== lastTabId) { + $('#ContinueButton').css('display', 'block'); + $('#BackButton').css('display', 'block'); + } else { + $('#ContinueButton').css('display', 'none'); + } } function prevTab() { @@ -721,24 +735,8 @@ global $wavelog_url; $('#ContinueButton').on('click', nextTab); $('#BackButton').on('click', prevTab); - // We check if on the second Tab (Pre-Check) all checks passed or failed, Only of they failed we disable the continue button - // root_mode can override that - // if (allChecksPassed == 'failed') { - // if (activeTab.attr('id') == secondTabId) { - // if (root_mode == false) { - // $('#ContinueButton').prop('disabled', true); - // } else { - // $('#ContinueButton').prop('disabled', false); - // } - // } else { - // $('#ContinueButton').prop('disabled', false); - // } - // } - }); - - function db_connection_test() { var db_hostname = $('#db_hostname').val(); var db_username = $('#db_username').val(); @@ -820,6 +818,56 @@ global $wavelog_url; } + function isValidMaidenheadLocator(locator) { + const maidenheadRegex = /^[A-R]{2}[0-9]{2}[A-X]{2}$/; + return maidenheadRegex.test(locator); + } + + function isValidEmail(email) { + const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + return emailRegex.test(email); + } + + // Check various user input in tab 3 + // websiteURL + const websiteUrlField = $('#websiteurl'); + const LocatorField = $('#locator'); + + websiteUrlField.on('change', function() { + if (websiteUrlField.val() == '') { + websiteUrlField.addClass('is-invalid'); + websiteUrlField.removeClass('is-valid'); + if (root_mode == false) { + $('#ContinueButton').prop('disabled', true); + } + } else { + websiteUrlField.addClass('is-valid'); + websiteUrlField.removeClass('is-invalid'); + $('#ContinueButton').prop('disabled', false); + } + }); + + LocatorField.on('change', function() { + if (!isValidMaidenheadLocator(LocatorField.val()) && LocatorField != '') { + LocatorField.addClass('is-invalid'); + LocatorField.removeClass('is-valid'); + $('#userform_warnings').css('display', 'block'); + $('#userform_warnings').html("The grid locator is not valid. Use a 6-character locator, e.g. HA44AA. If you don't know your grid square then click here!"); + if (root_mode == false) { + $('#ContinueButton').prop('disabled', true); + } + + } else { + + LocatorField.removeClass('is-invalid'); + LocatorField.addClass('is-valid'); + $('#userform_warnings').css('display', 'none'); + $('#ContinueButton').prop('disabled', false); + + } + }); + + // Check various user input in tab 4 // user password var passwordField = $('#password'); @@ -837,7 +885,7 @@ global $wavelog_url; passwordField.addClass('is-valid'); cnfmPasswordField.addClass('is-valid'); - $('#form_warnings').css('display', 'none'); + $('#userform_warnings').css('display', 'none'); $('#ContinueButton').prop('disabled', false); } else { @@ -847,8 +895,8 @@ global $wavelog_url; passwordField.removeClass('is-valid'); cnfmPasswordField.removeClass('is-valid'); - $('#form_warnings').css('display', 'block'); - $('#form_warnings').html('Password should be at least 8 characters long') + $('#userform_warnings').css('display', 'block'); + $('#userform_warnings').html('Password should be at least 8 characters long') if (root_mode == false) { $('#ContinueButton').prop('disabled', true); @@ -863,8 +911,8 @@ global $wavelog_url; passwordField.removeClass('is-valid'); cnfmPasswordField.removeClass('is-valid'); - $('#form_warnings').css('display', 'block'); - $('#form_warnings').html('Passwords do not match'); + $('#userform_warnings').css('display', 'block'); + $('#userform_warnings').html('Passwords do not match'); if (root_mode == false) { $('#ContinueButton').prop('disabled', true); @@ -874,20 +922,15 @@ global $wavelog_url; }); // email verification - emailField = $('#user_email'); - - function isValidEmail(email) { - const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; - return emailRegex.test(email); - } + const emailField = $('#user_email'); emailField.on('change', function() { if (!isValidEmail(emailField.val()) && emailField != '') { emailField.addClass('is-invalid'); emailField.removeClass('is-valid'); - $('#form_warnings').css('display', 'block'); - $('#form_warnings').html('The E-Mail Address is not valid'); + $('#userform_warnings').css('display', 'block'); + $('#userform_warnings').html('The E-Mail Address is not valid'); if (root_mode == false) { $('#ContinueButton').prop('disabled', true); } @@ -896,36 +939,31 @@ global $wavelog_url; emailField.removeClass('is-invalid'); emailField.addClass('is-valid'); - $('#form_warnings').css('display', 'none'); + $('#userform_warnings').css('display', 'none'); $('#ContinueButton').prop('disabled', false); } }); // grid verification - locatorField = $('#userlocator'); + const userLocatorField = $('#userlocator'); - function isValidMaidenheadLocator(locator) { - const maidenheadRegex = /^[A-R]{2}[0-9]{2}[A-X]{2}$/; - return maidenheadRegex.test(locator); - } + userLocatorField.on('change', function() { + if (!isValidMaidenheadLocator(userLocatorField.val()) && userLocatorField != '') { - locatorField.on('change', function() { - if (!isValidMaidenheadLocator(locatorField.val()) && locatorField != '') { - - locatorField.addClass('is-invalid'); - locatorField.removeClass('is-valid'); - $('#form_warnings').css('display', 'block'); - $('#form_warnings').html("The grid locator is not valid. Use a 6-character locator, e.g. HA44AA. If you don't know your grid square then click here!"); + userLocatorField.addClass('is-invalid'); + userLocatorField.removeClass('is-valid'); + $('#userform_warnings').css('display', 'block'); + $('#userform_warnings').html("The grid locator is not valid. Use a 6-character locator, e.g. HA44AA. If you don't know your grid square then click here!"); if (root_mode == false) { $('#ContinueButton').prop('disabled', true); } } else { - locatorField.removeClass('is-invalid'); - locatorField.addClass('is-valid'); - $('#form_warnings').css('display', 'none'); + userLocatorField.removeClass('is-invalid'); + userLocatorField.addClass('is-valid'); + $('#userform_warnings').css('display', 'none'); $('#ContinueButton').prop('disabled', false); }