function processUpdates(startingVersion) { if (startingVersion < 1) { startVersionUpgrade('p140'); executeUpdate(1, 'p140', 'Pre 1.4.0'); } else if (startingVersion < 140) { startVersionUpgrade('140'); executeUpdate(140, '140', '1.4.0'); } else if (startingVersion < 141) { startVersionUpgrade('141'); executeUpdate(141, '141', '1.4.1'); } else if (startingVersion < 150) { startVersionUpgrade('150'); executeUpdate(150, '150', '1.5.0'); } else if (startingVersion < 160) { startVersionUpgrade('160'); executeUpdate(160, '160', '1.6.0'); } else if (startingVersion < 161) { startVersionUpgrade('161'); executeUpdate(161, '161', '1.6.1'); } else if (startingVersion < 170) { startVersionUpgrade('170'); executeUpdate(170, '170', '1.7.0'); } else if (startingVersion < 200) { startVersionUpgrade('200'); executeUpdate(200, '200', '2.0.0'); } else if (startingVersion < 201) { startVersionUpgrade('201'); executeUpdate(201, '201', '2.0.1'); } else if (startingVersion < 210) { startVersionUpgrade('210'); executeUpdate(210, '210', '2.1.0'); } else if (startingVersion < 211) { startVersionUpgrade('211'); executeUpdate(211, '211', '2.1.1'); } else if (startingVersion < 220) { startVersionUpgrade('220'); executeUpdate(220, '220', '2.2.0'); } else if (startingVersion < 221) { startVersionUpgrade('221'); executeUpdate(221, '221', '2.2.1'); } else if (startingVersion < 230) { startVersionUpgrade('230'); executeUpdate(230, '230', '2.3.0'); } else if (startingVersion < 231) { startVersionUpgrade('231'); executeUpdate(231, '231', '2.3.1'); } else if (startingVersion < 232) { startVersionUpgrade('232'); executeUpdate(232, '232', '2.3.2'); } else if (startingVersion < 240) { startVersionUpgrade('240'); executeUpdate(240, '240', '2.4.0'); } else { installationFinished(); } } function executeUpdate(version, cssclass, formattedVersion) { appendToInstallConsole('INFOStarting updates for ' + formattedVersion + ''); $.ajax({ type: 'POST', url: 'ajax/install-database-ajax.php', data: { version: version }, success: function(data) { markUpdateAsSuccess(cssclass, formattedVersion); if (version == 200) { migrateIpEmailBans('banmigrate', 'banmigrate'); } else if (version == 240) { initializeStatuses('initialize-statuses', 'initialize-statuses'); } else { processUpdates(version); } }, error: function(data) { appendToInstallConsole('ERROR'+ data.responseText + ''); markUpdateAsFailure(cssclass); } }); } function migrateIpEmailBans(version, cssclass) { startVersionUpgrade(version); appendToInstallConsole('INFOChecking for IP / Email address bans to migrate'); $.ajax({ type: 'POST', url: 'ajax/task-ajax.php', data: { task: 'ip-email-bans' }, success: function(data) { var parsedData = $.parseJSON(data); if (parsedData.status == 'ATTENTION') { appendToInstallConsole('WARNINGYour response is needed. Please check above.'); markUpdateAsAttention(version); prepareAttentionPanel(getContentForMigratePrompt(parsedData.users)); } else { migrateComplete(); } }, error: function(data) { appendToInstallConsole('ERROR' + data.responseText + ''); markUpdateAsFailure(version); } }); } function initializeStatuses(version, cssclass) { startVersionUpgrade(version); appendToInstallConsole('INFOInitializing Statuses'); $.ajax({ type: 'POST', url: 'ajax/task-ajax.php', data: { task: 'initialize-statuses' }, success: function(data) { markUpdateAsSuccess(cssclass, 'Initializing Statuses'); statusesInitialized(); }, error: function(data) { appendToInstallConsole('ERROR' + data.responseText + ''); markUpdateAsFailure(version); } }); } function statusesInitialized() { processUpdates(240); } function runMigration() { // Get user ID that is selected var userId = $('#user-dropdown').val(); // Hide the div, switch back to in progress $('#attention-row').hide(); startVersionUpgrade('banmigrate'); $.ajax({ type: 'POST', url: 'ajax/task-ajax.php', data: { task: 'migrate-bans', user: userId }, success: function(data) { migrateComplete(); }, error: function(data) { appendToInstallConsole('ERROR: ' + data.responseText); markUpdateAsFailure('banmigrate'); } }) } function migrateComplete() { $('#attention-row').hide(); markUpdateAsSuccess('banmigrate', 'IP and Email address bans'); processUpdates(200); } jQuery(document).ready(loadJquery);