From bd46a5c78ad85f2981d3a3e1b7efbfeada396239 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Wed, 24 Jul 2024 21:14:06 +0200 Subject: [PATCH] hard fences --- install/index.php | 142 ++++++++++++++++++++++++++++------------------ 1 file changed, 86 insertions(+), 56 deletions(-) diff --git a/install/index.php b/install/index.php index c3cce9cba..9369192c5 100644 --- a/install/index.php +++ b/install/index.php @@ -325,7 +325,10 @@ if (!file_exists('.lock')) { ">
- + + - can't be empty
+ - have to end with a slash 'example/'
+ - have to start with 'http'"); ?>
@@ -1131,6 +1134,8 @@ if (!file_exists('.lock')) { field.removeClass('is-valid'); field.addClass('is-invalid'); } + + return check; } function websiteurl_check() { @@ -1153,61 +1158,68 @@ if (!file_exists('.lock')) { field.removeClass('is-valid'); field.addClass('is-invalid'); } + + return check; } function db_connection_test() { - var db_hostname = $('#db_hostname').val(); - var db_username = $('#db_username').val(); - var db_password = $('#db_password').val(); - var db_name = $('#db_name').val(); + return new Promise((resolve, reject) => { + var db_hostname = $('#db_hostname').val(); + var db_username = $('#db_username').val(); + var db_password = $('#db_password').val(); + var db_name = $('#db_name').val(); - if (db_hostname === '' || db_username === '' || db_name === '') { - $('#db_connection_testresult').addClass('alert-danger'); - $('#db_connection_testresult').html(''); - return; - } - - var originalButtonText = $('#db_connection_test_button').html(); - $('#db_connection_test_button').html(' ').prop('disabled', true); - - clear_db_testresult(); - - $.ajax({ - type: 'POST', - url: 'index.php', - data: { - db_hostname: db_hostname, - db_username: db_username, - db_password: db_password, - db_name: db_name, - database_check: 1 - }, - success: function(response) { - $('#db_connection_testresult').html(response); - if (response.indexOf('Error') !== -1) { - $('#db_connection_testresult').addClass('alert-danger'); - $('#db_connection_test_button').html(originalButtonText).prop('disabled', false); - } else { - - if (sql_version_checker(response) == true) { - $('#db_connection_testresult').addClass('alert-success'); - $('#db_connection_test_button').html(originalButtonText).prop('disabled', false); - $('#db_connection_testresult').html(' '); - } else { - $('#db_connection_testresult').addClass('alert-warning'); - $('#db_connection_test_button').html(originalButtonText).prop('disabled', false); - $('#db_connection_testresult').html(' '); - } - } - checklist_database(); - }, - error: function(error) { - $('#db_connection_testresult').html('Error: ' + error.statusText); - if ($('#db_connection_testresult').text().indexOf('Error') !== -1) { - $('#db_connection_testresult').addClass('alert-danger'); - } - checklist_database(); + if (db_hostname === '' || db_username === '' || db_name === '') { + $('#db_connection_testresult').addClass('alert-danger'); + $('#db_connection_testresult').html(''); + resolve(false); + return; } + + var originalButtonText = $('#db_connection_test_button').html(); + $('#db_connection_test_button').html(' ').prop('disabled', true); + + clear_db_testresult(); + + $.ajax({ + type: 'POST', + url: 'index.php', + data: { + db_hostname: db_hostname, + db_username: db_username, + db_password: db_password, + db_name: db_name, + database_check: 1 + }, + success: function(response) { + $('#db_connection_testresult').html(response); + if (response.indexOf('Error') !== -1) { + $('#db_connection_testresult').addClass('alert-danger'); + $('#db_connection_test_button').html(originalButtonText).prop('disabled', false); + resolve(false); + } else { + if (sql_version_checker(response) == true) { + $('#db_connection_testresult').addClass('alert-success'); + $('#db_connection_test_button').html(originalButtonText).prop('disabled', false); + $('#db_connection_testresult').html(' '); + } else { + $('#db_connection_testresult').addClass('alert-warning'); + $('#db_connection_test_button').html(originalButtonText).prop('disabled', false); + $('#db_connection_testresult').html(' '); + } + resolve(true); + } + checklist_database(); + }, + error: function(error) { + $('#db_connection_testresult').html('Error: ' + error.statusText); + if ($('#db_connection_testresult').text().indexOf('Error') !== -1) { + $('#db_connection_testresult').addClass('alert-danger'); + } + checklist_database(); + resolve(false); + } + }); }); } @@ -1369,10 +1381,29 @@ if (!file_exists('.lock')) { const activeTab = $('.nav-link.active'); - function nextTab() { + async function nextTab() { const activeTab = $('.nav-link.active'); const nextTab = activeTab.parent().next().find('.nav-link'); + if (nextTab.attr('id') == fourthTabId) { + if (!directory_check() || !websiteurl_check()) { + return; + } + } + + if (nextTab.attr('id') == fifthTabId) { + await db_connection_test(); + if ($('#db_connection_testresult').hasClass('alert-danger')) { + return; + } + } + + if (nextTab.attr('id') == lastTabId) { + if (!checklist_firstuser()) { + return; + } + } + if (nextTab.length > 0) { const tab = new bootstrap.Tab(nextTab[0]); tab.show(); @@ -1384,7 +1415,6 @@ if (!file_exists('.lock')) { } else { $('#ContinueButton').css('display', 'none'); } - } function prevTab() { @@ -1463,6 +1493,7 @@ if (!file_exists('.lock')) { let secondTabId = 'precheck-tab'; let thirdTabId = 'configuration-tab'; let fourthTabId = 'database-tab'; + let fifthTabId = 'firstuser-tab'; let lastTabId = 'finish-tab'; function openTab(tabId) { @@ -1516,7 +1547,6 @@ if (!file_exists('.lock')) { // comment: Checklist for Pre-Checks is handled in PHP. See '$prechecks_passed' function checklist_configuration() { - console.log('run checklist_configuration'); var checklist_configuration = true; if ($('#directory').hasClass('is-invalid')) { @@ -1597,7 +1627,7 @@ if (!file_exists('.lock')) { } if (checklist_firstuser) { - if($('#password').hasClass('has-warning')) { + if ($('#password').hasClass('has-warning')) { $('#checklist_firstuser').removeClass('fa-times-circle'); $('#checklist_firstuser').removeClass('fa-check-circle'); $('#checklist_firstuser').addClass('fa-exclamation-triangle').css('color', '#ffc107'); @@ -1612,6 +1642,7 @@ if (!file_exists('.lock')) { $('#checklist_firstuser').addClass('fa-times-circle').css('color', 'red'); } + return checklist_firstuser; } @@ -1622,7 +1653,6 @@ if (!file_exists('.lock')) { \ No newline at end of file