From 8dbdb8b36764e4865729e9050c86a5657bc712d9 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Fri, 26 Jul 2024 23:47:16 +0200 Subject: [PATCH] show latest migration in log and make sure the log is in the correct order --- application/controllers/Migrate.php | 30 ++++--- install/includes/interface_assets/header.php | 38 +++++---- install/run.php | 88 ++++++++++---------- system/libraries/Migration.php | 2 +- 4 files changed, 84 insertions(+), 74 deletions(-) diff --git a/application/controllers/Migrate.php b/application/controllers/Migrate.php index 61e318a37..65bf69dba 100644 --- a/application/controllers/Migrate.php +++ b/application/controllers/Migrate.php @@ -1,18 +1,24 @@ load->library('Migration'); + public function index() { + $this->load->library('Migration'); - if (!$this->migration->latest()) { - show_error($this->migration->error_string()); - $result = 'error'; - } else { - while (file_exists(APPPATH . 'cache/.migration_running')) { - sleep(1); - } - $result = 'success'; + $result = array(); + $latest = $this->migration->latest(); + + if (!$latest) { + show_error($this->migration->error_string()); + log_message('error', 'Migration failed'); + $result['status'] = 'error'; + } else { + while (file_exists(APPPATH . 'cache/.migration_running')) { + sleep(1); + } + $result['status'] = 'success'; + $result['version'] = $latest; + } + header('Content-Type: application/json'); + echo json_encode($result); } - echo $result; - } } diff --git a/install/includes/interface_assets/header.php b/install/includes/interface_assets/header.php index a80111d12..371d71849 100644 --- a/install/includes/interface_assets/header.php +++ b/install/includes/interface_assets/header.php @@ -35,7 +35,7 @@ $languages = $gt_conf['languages']; // if we come with a get call we can switch the language cookie if (isset($_GET['lang'])) { switch_lang($_GET['lang']); - log_message('info', 'Manually switched language to "'.find_by('gettext',$_GET['lang'])['name_en'].'"'); + log_message('info', 'Manually switched language to "' . find_by('gettext', $_GET['lang'])['name_en'] . '"'); header("Location: " . strtok($_SERVER['REQUEST_URI'], '?')); exit(); } @@ -44,12 +44,12 @@ if (isset($_GET['lang'])) { if (!isset($_COOKIE[$gt_conf['lang_cookie']])) { log_message('info', 'Called Installer index.php'); - log_message('info', 'With URL: '.$http_scheme.'://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '/'); - log_message('info', 'From IP: '. $_SERVER['REMOTE_ADDR']); + log_message('info', 'With URL: ' . $http_scheme . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '/'); + log_message('info', 'From IP: ' . $_SERVER['REMOTE_ADDR']); $browser_language = _get_client_language(); setcookie($gt_conf['lang_cookie'], $browser_language['gettext']); - log_message('info', 'Set language cookie to "'.$browser_language['name_en'].'"'); + log_message('info', 'Set language cookie to "' . $browser_language['name_en'] . '"'); header("Location: " . $_SERVER['REQUEST_URI']); exit(); } @@ -67,19 +67,23 @@ $websiteurl = $http_scheme . '://' . str_replace("index.php", "", $_SERVER['HTTP diff --git a/install/run.php b/install/run.php index 7005ca735..339e08ec8 100644 --- a/install/run.php +++ b/install/run.php @@ -72,7 +72,7 @@ await update_dxcc(); await installer_lock(); - log_message('info', 'Finish. Installer went through successfully.'); + await log_message('info', 'Finish. Installer went through successfully.'); if ($('#logContainer').css('display') == 'none') { // after all install steps went through we can show a success message and redirect to the user/login @@ -138,17 +138,17 @@ data: { check_lockfile: 1 }, - success: function(response) { + success: async function(response) { if (response != 'installer_locked') { resolve(); } else { - log_message('error', 'Attention: Installer is locked. Redirect to user/login.'); + await log_message('error', 'Attention: Installer is locked. Redirect to user/login.'); reject(response); window.location.href = "" + "index.php/user/login"; } }, - error: function(error) { - log_message('error', "Install Lock Check went wrong..."); + error: async function(error) { + await log_message('error', "Install Lock Check went wrong..."); reject(error); window.location.href = "" + "index.php/user/login"; } @@ -161,7 +161,7 @@ var field = '#config_file'; running(field, true); - log_message('debug', 'Start writing config.php'); + await log_message('debug', 'Start writing config.php'); return new Promise((resolve, reject) => { $.ajax({ @@ -171,19 +171,19 @@ data: _POST, run_config_file: 1 }, - success: function(response) { + success: async function(response) { if (response == 'success') { running(field, false); - log_message('debug', 'File: config.php successfully written'); + await log_message('debug', 'File: config.php successfully written'); resolve(); } else { running(field, false, true); - log_message('error', 'File: Could not write file. Check Permissions.'); + await log_message('error', 'File: Could not write file. Check Permissions.'); reject(""); } }, - error: function(error) { - log_message('error', 'File: Could not write file. Ajax failed.'); + error: async function(error) { + await log_message('error', 'File: Could not write file. Ajax failed.'); running(field, false, true); reject(error); } @@ -196,7 +196,7 @@ var field = '#database_file'; running(field, true); - log_message('debug', 'Start writing database.php'); + await log_message('debug', 'Start writing database.php'); return new Promise((resolve, reject) => { $.ajax({ @@ -206,19 +206,19 @@ data: _POST, run_database_file: 1 }, - success: function(response) { + success: async function(response) { if (response == 'success') { running(field, false); - log_message('debug', 'File: database.php successfully written'); + await log_message('debug', 'File: database.php successfully written'); resolve(); } else { running(field, false, true); - log_message('error', 'File: Could not write file. Check Permissions.'); + await log_message('error', 'File: Could not write file. Check Permissions.'); reject(""); } }, - error: function(error) { - log_message('error', 'File: Could not write file. Ajax failed.'); + error: async function(error) { + await log_message('error', 'File: Could not write file. Ajax failed.'); running(field, false, true); reject(error); } @@ -230,7 +230,7 @@ var field = '#database_tables'; running(field, true); - log_message('debug', 'Start creating database structure with assets/install.sql'); + await log_message('debug', 'Start creating database structure with assets/install.sql'); return new Promise((resolve, reject) => { $.ajax({ @@ -240,20 +240,20 @@ data: _POST, run_database_tables: 1 }, - success: function(response) { + success: async function(response) { if (response == 'success') { - log_message('debug', 'Tables successfully created'); + await log_message('debug', 'Tables successfully created'); running(field, false); resolve(); } else { running(field, false, true); - log_message('error', 'Creating database tables from assets/install.sql failed. Response: '); + await log_message('error', 'Creating database tables from assets/install.sql failed. Response: ' + response); reject(""); } }, - error: function(error) { + error: async function(error) { running(field, false, true); - log_message('error', 'Creating database tables failed. Ajax crashed.'); + await log_message('error', 'Creating database tables failed. Ajax crashed.'); reject(error); } }); @@ -264,25 +264,26 @@ var field = '#database_migrations'; running(field, true); - log_message('debug', 'Start migrating database to the newest version.'); + await log_message('debug', 'Start migrating database to the newest version.'); return new Promise((resolve, reject) => { $.ajax({ url: "" + "index.php/migrate", - success: function(response) { - if (response == 'success') { + dataType: 'json', + success: async function(response) { + if (response.status == 'success') { running(field, false); - log_message('debug', 'Database successfully created.'); + await log_message('debug', 'Database successfully migrated. Latest Version: ' + response.version); resolve(); } else { running(field, false, true); - log_message('error', 'Could not migrate database.'); + await log_message('error', 'Could not migrate database. Response: ' + response.status); reject(""); } }, - error: function(error) { + error: async function(error) { running(field, false, true); - log_message('error', 'Could not migrate database. Ajax crashed.'); + await log_message('error', 'Could not migrate database. Ajax crashed.'); reject(error); } }); @@ -291,27 +292,26 @@ async function update_dxcc() { var field = '#update_dxcc'; + await log_message('debug', 'Start updating DXCC database. This can take a moment or two... Please wait'); + running(field, true); return new Promise((resolve, reject) => { - running(field, true); - log_message('debug', 'Start updating DXCC database. This can take a moment or two... Please wait'); - $.ajax({ url: "" + "index.php/update/dxcc", - success: function(response) { + success: async function(response) { if (response == 'success') { running(field, false); - log_message('debug', 'Successfully update DXCC database'); + await log_message('debug', 'Successfully update DXCC database'); resolve(); } else { running(field, false, true); - log_message('error', 'Could not update DXCC data.'); + await log_message('error', 'Could not update DXCC data.'); reject(""); } }, - error: function(error) { + error: async function(error) { running(field, false, true); - log_message('error', 'Could not update DXCC data. Ajax crashed.'); + await log_message('error', 'Could not update DXCC data. Ajax crashed.'); reject(error); } }); @@ -320,7 +320,7 @@ async function installer_lock() { var field = '#installer_lock'; - log_message('debug', 'Try to create .lock file for the installer'); + await log_message('debug', 'Try to create .lock file for the installer'); running(field, true); return new Promise((resolve, reject) => { @@ -330,20 +330,20 @@ data: { run_installer_lock: 1 }, - success: function(response) { + success: async function(response) { if (response == 'success') { running(field, false); - log_message('debug', 'Successfully created .lock file in folder /install'); + await log_message('debug', 'Successfully created .lock file in folder /install'); resolve(); } else { running(field, false, true); - log_message('error', 'Could not create .lock file.'); + await log_message('error', 'Could not create .lock file.'); reject(""); } }, - error: function(error) { + error: async function(error) { running(field, false, true); - log_message('error', 'Could not create .lock file. Ajax crashed'); + await log_message('error', 'Could not create .lock file. Ajax crashed'); reject(error); } }); diff --git a/system/libraries/Migration.php b/system/libraries/Migration.php index a8d41e1cd..d08f78b5e 100644 --- a/system/libraries/Migration.php +++ b/system/libraries/Migration.php @@ -235,7 +235,7 @@ class CI_Migration { else { // Well, there's nothing to migrate then ... - return TRUE; + return $current_version; } // Validate all available migrations within our target range.