gestion erreur simplifiée

This commit is contained in:
Fred Tempez 2024-09-25 21:41:08 +02:00
parent d0f779bb9b
commit 47a5ddb442

View File

@ -1,6 +1,12 @@
function step(i, data) { function step(i, data) {
var errors = ["<?php echo helper::translate('Préparation de la mise à jour'); ?>", "<?php echo helper::translate('Téléchargement et validation de l\'archive'); ?>", "<?php echo helper::translate('Installation'); ?>", "<?php echo helper::translate('Configuration'); ?>"]; var errors = [
$(".installUpdateProgressText").hide(), $(".installUpdateProgressText[data-id=" + i + "]").show(); "<?php echo helper::translate('Préparation de la mise à jour'); ?>",
"<?php echo helper::translate('Téléchargement et validation de l\'archive'); ?>",
"<?php echo helper::translate('Installation'); ?>",
"<?php echo helper::translate('Configuration'); ?>"
];
$(".installUpdateProgressText").hide();
$(".installUpdateProgressText[data-id=" + i + "]").show();
$("body").css("cursor", "wait"); $("body").css("cursor", "wait");
@ -12,7 +18,7 @@ function step(i, data) {
data: data data: data
}, },
success: function (result) { success: function (result) {
setTimeout((function () { setTimeout(function () {
if (4 === i) { if (4 === i) {
$("#installUpdateSuccess").show(); $("#installUpdateSuccess").show();
$("body").css("cursor", "default"); $("body").css("cursor", "default");
@ -21,58 +27,29 @@ function step(i, data) {
} else { } else {
step(i + 1, result.data); step(i + 1, result.data);
} }
}), 2e3) }, 2000);
}, },
error: function (xhr) { error: function (xhr) {
// Balance tout dans la console // Balance tout dans la console
console.log(i); console.log("Erreur à l'étape :", i);
console.log(xhr.responseText); console.log("Détails de l'erreur :", xhr.responseText);
console.log(errors); console.log("Messages d'erreurs :", errors);
// Appel de la fonction de gestion d'erreur // Appel de la nouvelle fonction d'erreur
showError(i, xhr.responseText, errors); showError(i, errors);
} }
}); });
} }
function showError(step, message, errors) { function showError(step, errors) {
$("body").css("cursor", "default"); $("body").css("cursor", "default");
$("#installUpdateErrorStep").text(errors[step] + " (étape n°" + step + ")"); $("#installUpdateErrorStep").text(errors[step] + " (étape n°" + step + ")");
$("#installUpdateError").show(); $("#installUpdateError").show();
$("#installUpdateEnd").removeClass("disabled"); $("#installUpdateEnd").removeClass("disabled");
$("#installUpdateProgress").hide(); $("#installUpdateProgress").hide();
if (typeof message !== 'object') { // Affiche un message générique demandant de consulter la console
const startOfArray = message.indexOf('{'); $("#installUpdateErrorMessage").html("Une erreur est survenue. Veuillez consulter la console du navigateur pour plus de détails.");
// Vérifier que l'accolade existe et n'est pas en première position
if (startOfArray !== -1 && startOfArray > 0) {
const warningMessage = message.substring(0, startOfArray).trim();
const jsonString = message.substring(startOfArray);
try {
const jsonData = JSON.parse(jsonString);
// Afficher les résultats si le parsing JSON est réussi
if (jsonData) {
$("#installUpdateErrorMessage").html("<strong>Détails de l'erreur :</strong><br> " +
jsonData.data.replace(/^"(.*)"$/, '$1') +
"<br>" +
warningMessage.replace(/<[^p].*?>/g, ""));
} }
} catch (e) {
// En cas d'erreur de parsing, afficher un message générique
console.error("Erreur de parsing JSON : ", e);
$("#installUpdateErrorMessage").html("Une erreur inattendue est survenue lors du traitement des détails de l'erreur.");
}
} else {
// Si pas de JSON détecté, afficher le message brut
$("#installUpdateErrorMessage").html("Message d'erreur : " + message);
}
} else {
$("#installUpdateErrorMessage").html(message);
}
}
$(window).on("load", function () { $(window).on("load", function () {
step(1, null); step(1, null);