diff --git a/core/core.php b/core/core.php index d24a963d..513577cf 100644 --- a/core/core.php +++ b/core/core.php @@ -51,7 +51,7 @@ class common const ACCESS_TIMER = 1800; // Numéro de version - const ZWII_VERSION = '13.4.00.test5'; + const ZWII_VERSION = '13.4.00.test6'; // URL autoupdate const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/cms-update/raw/branch/master/'; diff --git a/core/module/install/view/update/update.js.php b/core/module/install/view/update/update.js.php index e4aea36a..0ed17c18 100644 --- a/core/module/install/view/update/update.js.php +++ b/core/module/install/view/update/update.js.php @@ -30,25 +30,64 @@ function step(i, data) { }, 2000); }, error: function (xhr) { - // Balance tout dans la console - console.log("Erreur à l'étape :", i); - console.log("Détails de l'erreur :", xhr.responseText); - console.log("Messages d'erreurs :", errors); - // Appel de la nouvelle fonction d'erreur - showError(i, errors); + console.log(i); + console.log(xhr.responseText); + console.log(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); + } } }); } -function showError(step, errors) { +function showError(step, message, errors) { $("body").css("cursor", "default"); $("#installUpdateErrorStep").text(errors[step] + " (étape n°" + step + ")"); $("#installUpdateError").show(); $("#installUpdateEnd").removeClass("disabled"); $("#installUpdateProgress").hide(); - // Affiche un message générique demandant de consulter la console - $("#installUpdateErrorMessage").html("Une erreur est survenue. Veuillez consulter la console du navigateur pour plus de détails."); + // Vérifier si l'accolade ouvrante est trouvée et qu'elle n'est pas en première position + if (typeof message !== 'object') { + + // Trouver la position du premier "{" pour repérer le début du tableau + const startOfArray = message.indexOf('{'); + + 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); + + try { + const jsonData = JSON.parse(jsonString); + + // 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 { + $("#installUpdateErrorMessage").html(message); + } } $(window).on("load", function () {