diff --git a/core/module/install/view/update/update.js.php b/core/module/install/view/update/update.js.php index f15f9d30..0ed17c18 100644 --- a/core/module/install/view/update/update.js.php +++ b/core/module/install/view/update/update.js.php @@ -1,6 +1,12 @@ function step(i, data) { - var errors = ["", "", "", ""]; - $(".installUpdateProgressText").hide(), $(".installUpdateProgressText[data-id=" + i + "]").show(); + var errors = [ + "", + "", + "", + "" + ]; + $(".installUpdateProgressText").hide(); + $(".installUpdateProgressText[data-id=" + i + "]").show(); $("body").css("cursor", "wait"); @@ -12,7 +18,7 @@ function step(i, data) { data: data }, success: function (result) { - setTimeout((function () { + setTimeout(function () { if (4 === i) { $("#installUpdateSuccess").show(); $("body").css("cursor", "default"); @@ -21,15 +27,21 @@ function step(i, data) { } else { step(i + 1, result.data); } - }), 2e3) + }, 2000); }, error: function (xhr) { - // Balance tout dans la console console.log(i); console.log(xhr.responseText); console.log(errors); - // Appel de la fonction de gestion d'erreur - showError(i, xhr.responseText, errors); + + // Vérification du code d'erreur HTTP pour gérer la déconnexion + if (xhr.status === 401) { + alert("Votre session a expiré. Veuillez vous reconnecter."); + window.location.href = "/login"; // Redirige vers la page de connexion + } else { + // Appel de la fonction de gestion d'erreur + showError(i, xhr.responseText, errors); + } } }); } @@ -47,27 +59,37 @@ function showError(step, message, errors) { // Trouver la position du premier "{" pour repérer le début du tableau const startOfArray = message.indexOf('{'); - // Extraire le message du warning jusqu'au début du tableau - const warningMessage = message.substring(0, startOfArray).trim(); + if (startOfArray !== -1 && startOfArray > 0) { + // Extraire le message du warning jusqu'au début du tableau + const warningMessage = message.substring(0, startOfArray).trim(); - // Extraire le tableau JSON entre les accolades - const jsonString = message.substring(startOfArray); - const jsonData = JSON.parse(jsonString); + // Extraire le tableau JSON entre les accolades + const jsonString = message.substring(startOfArray); + + try { + const jsonData = JSON.parse(jsonString); - // Afficher les résultats - if (jsonData) { - $("#installUpdateErrorMessage").html("Détails de l'erreur :
" + - jsonData.data.replace(/^"(.*)"$/, '$1') + - "
" + - warningMessage.replace(/<[^p].*?>/g, "")); + // Afficher les résultats si le parsing JSON est réussi + if (jsonData) { + $("#installUpdateErrorMessage").html("Détails de l'erreur :
" + + jsonData.data.replace(/^"(.*)"$/, '$1') + + "
" + + warningMessage.replace(/<[^p].*?>/g, "")); + } + } catch (e) { + // Afficher un message générique en cas d'erreur de parsing + 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 { - // Vous pouvez également faire quelque chose d'autre ici, par exemple, afficher un message à l'utilisateur, etc. $("#installUpdateErrorMessage").html(message); } } $(window).on("load", function () { step(1, null); -}); \ No newline at end of file +});