mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
128 lines
3.7 KiB
Twig
128 lines
3.7 KiB
Twig
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
|
|
{# @license http://opensource.org/licenses/AGPL-3.0 #}
|
|
|
|
function UpdateProgress(sMessage, iPercent) {
|
|
$('#setup_msg').html(sMessage);
|
|
$('#progress').progression({
|
|
Current: iPercent,
|
|
Maximum: 100,
|
|
aBackgroundImg: "{{ sProgressImage }}",
|
|
aTextColor: '#000000'
|
|
});
|
|
}
|
|
|
|
var oGetCurrentVersion = {
|
|
method: "POST",
|
|
url: "{{ sAjaxURL|raw }}",
|
|
data: {
|
|
route: "core_update_ajax.get_current_version",
|
|
maintenance: true
|
|
},
|
|
dataType: "json",
|
|
success: function(data)
|
|
{
|
|
var oCurrentVersion = $(".ibo-update-core--current-version");
|
|
if (oCurrentVersion)
|
|
{
|
|
oCurrentVersion.html(data.sVersion);
|
|
}
|
|
}
|
|
}
|
|
|
|
function GetAjaxRequest(sOperation)
|
|
{
|
|
oAjaxRequest = {
|
|
method: "POST",
|
|
url: "{{ sAjaxURL|raw }}",
|
|
data: {
|
|
route: sOperation,
|
|
authent: "{{ sSetupToken }}",
|
|
maintenance: true
|
|
},
|
|
dataType: "json"
|
|
};
|
|
|
|
if (sOperation === "core_update_ajax.backup")
|
|
{
|
|
oAjaxRequest.success = function() {
|
|
$("#do_backup_done").removeClass("ibo-is-hidden");
|
|
};
|
|
}
|
|
|
|
if (sOperation === "core_update_ajax.files_archive")
|
|
{
|
|
oAjaxRequest.success = function() {
|
|
$("#do_files_archive_done").removeClass("ibo-is-hidden");
|
|
};
|
|
}
|
|
|
|
return oAjaxRequest;
|
|
}
|
|
|
|
{% set aSteps = ['EnterMaintenance', 'Backup', 'FilesArchive', 'CopyFiles', 'CheckCompile', 'Compile', 'UpdateDatabase', 'ExitMaintenance', 'UpdateDone'] %}
|
|
|
|
aStepsName = [];
|
|
|
|
{% for sStep in aSteps %}
|
|
aStepsName.push({{ ('iTopUpdate:UI:SetupMessage:' ~ sStep)|dict_s|json_encode|raw }});
|
|
{% endfor %}
|
|
|
|
var sBackupStep;
|
|
{% if bDoBackup %}
|
|
sBackupStep = "backup";
|
|
{% endif %}
|
|
|
|
var sFilesArchiveStep;
|
|
{% if bDoFilesArchive %}
|
|
sFilesArchiveStep = "files_archive";
|
|
{% endif %}
|
|
|
|
var aStepsAjaxOperation = ["enter_maintenance", sBackupStep, sFilesArchiveStep, "copy_files", "check_compile", "compile", "update_database", "exit_maintenance", null];
|
|
|
|
var iNextStep = 0;
|
|
var oInstallationProgress = $('#installation_progress')
|
|
function ExecNextStep() {
|
|
if (iNextStep < aStepsAjaxOperation.length)
|
|
{
|
|
var sAjaxOperation = aStepsAjaxOperation[iNextStep];
|
|
var iPercent = (iNextStep + 1) * 100 / aStepsAjaxOperation.length;
|
|
UpdateProgress(aStepsName[iNextStep], iPercent);
|
|
iNextStep++;
|
|
if (sAjaxOperation) {
|
|
$.ajax(GetAjaxRequest("core_update_ajax." + sAjaxOperation))
|
|
.done(function () {
|
|
setTimeout(ExecNextStep, 500);
|
|
})
|
|
.fail(function ( jqXHR) {
|
|
if (jqXHR && jqXHR.responseJSON) {
|
|
$("#setup_error").html({{ 'iTopUpdate:Error:UpdateFailed'|dict_s|json_encode|raw }}+" "+jqXHR.responseJSON.sError);
|
|
}
|
|
else
|
|
{
|
|
$("#setup_error").html({{ 'iTopUpdate:Error:UpdateFailed'|dict_s|json_encode|raw }});
|
|
}
|
|
$('#progress').addClass("ibo-is-hidden");
|
|
$("#setup_error_outer").removeClass("ibo-is-hidden");
|
|
$("#run_setup").removeClass("ibo-is-hidden");
|
|
$("#setup_continue").addClass("ibo-is-hidden");
|
|
});
|
|
}
|
|
else
|
|
{
|
|
setTimeout(ExecNextStep, 500);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$.ajax(oGetCurrentVersion);
|
|
$("#setup_continue").prop("disabled", false);
|
|
oInstallationProgress.hide(300);
|
|
$('#new_version').removeClass("ibo-is-hidden");
|
|
$('#current_version').addClass("ibo-is-hidden");
|
|
}
|
|
}
|
|
|
|
oInstallationProgress.show();
|
|
ExecNextStep();
|
|
|