You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Mods-for-HESK-Netsyms/install/mods-for-hesk/js/version-scripts.js

159 lines
5.4 KiB
JavaScript

var availableUpdates = [
createUpdate(2, 'p140', 'Pre 1.4.0'),
createUpdate(3, '140', '1.4.0'),
createUpdate(4, '141', '1.4.1'),
createUpdate(5, '150', '1.5.0'),
createUpdate(6, '160', '1.6.0'),
createUpdate(7, '161', '1.6.1'),
createUpdate(8, '170', '1.7.0'),
createUpdate(9, '200', '2.0.0'),
createUpdate(10, '201', '2.0.1'),
createUpdate(11, '210', '2.1.0'),
createUpdate(12, '211', '2.1.1'),
createUpdate(13, '220', '2.2.0'),
createUpdate(14, '221', '2.2.1'),
createUpdate(15, '230', '2.3.0'),
createUpdate(16, '231', '2.3.1'),
createUpdate(17, '232', '2.3.2'),
createUpdate(18, '240', '2.4.0'),
createUpdate(19, '241', '2.4.1'),
createUpdate(20, '242', '2.4.2'),
createUpdate(21, '250', '2.5.0'),
createUpdate(22, '251', '2.5.1'),
createUpdate(23, '252', '2.5.2'),
createUpdate(24, '253', '2.5.3'),
createUpdate(25, '254', '2.5.4'),
createUpdate(26, '255', '2.5.5'),
createUpdate(27, '260', '2.6.0'),
createUpdate(28, '261', '2.6.1'),
createUpdate(29, '262', '2.6.2'),
createUpdate(30, '263', '2.6.3'),
createUpdate(31, '264', '2.6.4'),
createUpdate(32, '300b1', '3.0.0 beta 1'),
createUpdate(33, '300rc1', '3.0.0 RC 1'),
createUpdate(34, '300', '3.0.0'),
createUpdate(35, '301', '3.0.1'),
createUpdate(36, '302', '3.0.2')
];
function createUpdate(buildNumber, cssClass, display) {
return {
buildNumber: buildNumber,
cssClass: cssClass,
display: display
};
}
function processUpdates(startingVersion) {
var ranInstall = false;
$.each(availableUpdates, function() {
if (startingVersion < this.buildNumber) {
ranInstall = true;
startVersionUpgrade(this.buildNumber, this.cssClass, this.display);
executeUpdate(this.buildNumber, this.cssClass, this.display);
}
});
if (!ranInstall) {
installationFinished();
}
}
function executeUpdate(version, cssclass, formattedVersion) {
appendToInstallConsole('<tr><td><span class="label label-info">INFO</span></td><td>Starting updates for ' + formattedVersion + '</td></tr>');
$.ajax({
type: 'POST',
url: 'ajax/install-database-ajax.php',
data: {version: version},
success: function () {
markUpdateAsSuccess(cssclass, formattedVersion);
if (version == 9) {
migrateIpEmailBans('banmigrate', 'banmigrate');
} else if (version == 18) {
initializeStatuses('initialize-statuses', 'initialize-statuses');
} else {
processUpdates(version);
}
},
error: function (data) {
appendToInstallConsole('<tr><td><span class="label label-danger">ERROR</span></td><td>' + data.responseText + '</td></tr>');
markUpdateAsFailure(cssclass);
}
});
}
function migrateIpEmailBans(version, cssclass) {
startVersionUpgrade(version);
appendToInstallConsole('<tr><td><span class="label label-info">INFO</span></td><td>Checking for IP / Email address bans to migrate</td></tr>');
$.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('<tr><td><span class="label label-warning">WARNING</span></td><td>Your response is needed. Please check above.</td></tr>');
markUpdateAsAttention(version);
prepareAttentionPanel(getContentForMigratePrompt(parsedData.users));
} else {
migrateComplete();
}
},
error: function (data) {
appendToInstallConsole('<tr><td><span class="label label-danger">ERROR</span></td><td>' + data.responseText + '</td></tr>');
markUpdateAsFailure(version);
}
});
}
function initializeStatuses(version, cssclass) {
startVersionUpgrade(version);
appendToInstallConsole('<tr><td><span class="label label-info">INFO</span></td><td>Initializing Statuses</td></tr>');
$.ajax({
type: 'POST',
url: 'ajax/task-ajax.php',
data: {task: 'initialize-statuses'},
success: function (data) {
markUpdateAsSuccess(cssclass, 'Initializing Statuses');
statusesInitialized();
},
error: function (data) {
appendToInstallConsole('<tr><td><span class="label label-danger">ERROR</span></td><td>' + data.responseText + '</td></tr>');
markUpdateAsFailure(version);
}
});
}
function statusesInitialized() {
processUpdates(18);
}
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(9);
}
jQuery(document).ready(loadJquery);