From 0cd0337a39bc16fcf5da4a4d9cd66f37ad733106 Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Thu, 12 Oct 2017 13:04:59 -0400 Subject: [PATCH] Added initial migration numbers, fixed some UI issues --- install/ajax/process-migration.php | 1 + install/index.php | 22 +++++++++++++++------- install/js/install-script.js | 17 +++++++++-------- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/install/ajax/process-migration.php b/install/ajax/process-migration.php index 7347bde3..c87ab9fd 100644 --- a/install/ajax/process-migration.php +++ b/install/ajax/process-migration.php @@ -11,6 +11,7 @@ require(HESK_PATH . 'install/migrations/core.php'); $allMigrations = getAllMigrations(); $json = file_get_contents('php://input'); $request = json_decode($json, true); +var_dump($request); /* @var $migration AbstractMigration */ $migration = $allMigrations[$request['migrationNumber']]; diff --git a/install/index.php b/install/index.php index ccc49022..f50b4cf2 100644 --- a/install/index.php +++ b/install/index.php @@ -21,25 +21,33 @@ if (hesk_dbNumRows($tableSql) > 0) { // They have installed at LEAST to version 1.6.0. Just pull the version number OR migration number $migrationNumberSql = hesk_dbQuery("SELECT `Value` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` WHERE `Key` = 'lastMigration'"); if ($migrationRow = hesk_dbFetchAssoc($migrationNumberSql)) { - $startingMigrationNumber = $migrationRow['Value']; + $startingMigrationNumber = intval($migrationRow['Value']) + 1; } else { $versionSql = hesk_dbQuery("SELECT `Value` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` WHERE `Key` = 'modsForHeskVersion'"); $versionRow = hesk_dbFetchAssoc($versionSql); - //TODO Actually map this - $startingMigrationNumber = $versionRow['Value']; + $migration_map = array( + // Pre-1.4.0 to 1.5.0 did not have a settings table + '1.6.0' => 16, '1.6.1' => 17, '1.7.0' => 21, '2.0.0' => 27, '2.0.1' => 28, '2.1.0' => 29, '2.1.1' => 31, + '2.2.0' => 34, '2.2.1' => 35, '2.3.0' => 41, '2.3.1' => 42, '2.3.2' => 43, '2.4.0' => 48, '2.4.1' => 49, + '2.4.2' => 50, '2.5.0' => 54, '2.5.1' => 55, '2.5.2' => 56, '2.5.3' => 57, '2.5.4' => 58, '2.5.5' => 59, + '2.6.0' => 66, '2.6.1' => 67, '2.6.2' => 69, '2.6.3' => 70, '2.6.4' => 71, '3.0.0' => 75, '3.0.1' => 76, + '3.0.2' => 78, '3.0.3' => 79, '3.0.4' => 80, '3.0.5' => 81, '3.0.6' => 82, '3.0.7' => 83, '3.1.0' => 90, + '3.1.1' => 91 + ); + $startingMigrationNumber = $migration_map[$versionRow['Value']]; } } else { // migration # => sql for checking $versionChecks = array( // 1.5.0 -> users.active - 1 => "SHOW COLUMNS FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` LIKE 'active'", + 9 => "SHOW COLUMNS FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` LIKE 'active'", // 1.4.1 -> denied_emails - 2 => "SHOW TABLES LIKE '" . hesk_dbEscape($hesk_settings['db_pfix']) . "denied_emails'", + 6 => "SHOW TABLES LIKE '" . hesk_dbEscape($hesk_settings['db_pfix']) . "denied_emails'", // 1.4.0 -> denied ips - 3 => "SHOW TABLES LIKE '" . hesk_dbEscape($hesk_settings['db_pfix']) . "denied_ips'", + 4 => "SHOW TABLES LIKE '" . hesk_dbEscape($hesk_settings['db_pfix']) . "denied_ips'", // Pre-1.4.0 but still something -> statuses - 4 => "SHOW TABLES LIKE '" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses'" + 2 => "SHOW TABLES LIKE '" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses'" ); foreach ($versionChecks as $migrationNumber => $sql) { diff --git a/install/js/install-script.js b/install/js/install-script.js index 65a320ae..13334d1c 100644 --- a/install/js/install-script.js +++ b/install/js/install-script.js @@ -60,7 +60,7 @@ function goToStep(step) { } function installOrUpdate() { - var startingMigrationNumber = $('input[name="starting-migration-number"]').val(); + var startingMigrationNumber = parseInt($('input[name="starting-migration-number"]').val()); var heskPath = $('p#hesk-path').text(); @@ -73,10 +73,8 @@ function installOrUpdate() { $('[data-step="install-or-update"] > .fa-spinner').hide(); $('[data-step="install-or-update"] > .progress').show(); - console.log(data.lastMigrationNumber); - // Recursive call that will increment by 1 each time - executeMigration(startingMigrationNumber, startingMigrationNumber, data.latestMigrationNumber, 'up'); + executeMigration(startingMigrationNumber, startingMigrationNumber, data.lastMigrationNumber, 'up'); } }) } @@ -87,18 +85,21 @@ function executeMigration(startingMigrationNumber, migrationNumber, latestMigrat $.ajax({ url: heskPath + 'install/ajax/process-migration.php', method: 'POST', - data: { + data: JSON.stringify({ migrationNumber: migrationNumber, direction: direction - }, + }), success: function(data) { + console.log('migrationNumber: ' + migrationNumber); + console.log('latestMigrationNumber: ' + latestMigrationNumber); + console.log(migrationNumber === latestMigrationNumber); if (migrationNumber === latestMigrationNumber) { updateProgressBar(migrationNumber, latestMigrationNumber, false, true); console.log('DONE'); } else { updateProgressBar(migrationNumber, latestMigrationNumber, false, false); var newMigrationNumber = direction === 'up' ? migrationNumber + 1 : migrationNumber - 1; - executeMigration(startingMigrationNumber, newMigrationNumber, latestMigrationNumber); + executeMigration(startingMigrationNumber, newMigrationNumber, latestMigrationNumber, direction); } }, error: function(data) { @@ -120,7 +121,7 @@ function updateProgressBar(migrationNumber, latestMigrationNumber, isError, isFi } if (isFinished) { - $progressBar.find('.progress-bar').hide(); + $progressBar.hide(); $('#finished-install').show(); } } \ No newline at end of file