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
+});