Files
iTop/datamodels/2.x/itop-core-update/templates/UpdateCoreFiles.ready.js.twig
2024-05-06 18:35:31 +02:00

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();