2022-10-03 15:42:57 +02:00
function step ( i , data ) {
2022-10-08 08:14:14 +02:00
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'); ?> " ];
2023-03-16 15:13:52 +01:00
$ ( " .installUpdateProgressText " ) . hide (), $ ( " .installUpdateProgressText[data-id= " + i + " ] " ) . show ();
2024-02-01 18:57:38 +01:00
2023-07-28 16:14:49 +02:00
$ ( " body " ) . css ( " cursor " , " wait " );
2023-03-16 15:13:52 +01:00
$ . ajax ({
2022-10-03 15:42:57 +02:00
type : " POST " ,
url : " <?php echo helper::baseUrl(false); ?>?install/steps " ,
data : {
step : i ,
data : data
},
success : function ( result ) {
setTimeout (( function () {
2023-03-16 15:13:52 +01:00
if ( 4 === i ) {
$ ( " #installUpdateSuccess " ) . show ();
2023-07-28 16:14:49 +02:00
$ ( " body " ) . css ( " cursor " , " default " );
2023-03-16 15:13:52 +01:00
$ ( " #installUpdateEnd " ) . removeClass ( " disabled " );
$ ( " #installUpdateProgress " ) . hide ();
} else {
step ( i + 1 , result . data );
}
2022-10-03 15:42:57 +02:00
}), 2e3 )
},
error : function ( xhr ) {
2023-07-31 20:24:04 +02:00
// Balance tout dans la console
console . log ( i );
console . log ( xhr . responseText );
console . log ( errors );
2023-03-16 15:13:52 +01:00
// Appel de la fonction de gestion d'erreur
2023-07-31 14:59:00 +02:00
showError ( i , xhr . responseText , errors );
2022-10-03 15:42:57 +02:00
}
2023-03-16 15:13:52 +01:00
});
2022-10-03 15:42:57 +02:00
}
2023-03-16 15:13:52 +01:00
function showError ( step , message , errors ) {
2023-07-28 16:14:49 +02:00
$ ( " body " ) . css ( " cursor " , " default " );
2023-07-24 11:32:58 +02:00
$ ( " #installUpdateErrorStep " ) . text ( errors [ step ] + " (étape n° " + step + " ) " );
2023-03-16 15:13:52 +01:00
$ ( " #installUpdateError " ) . show ();
$ ( " #installUpdateEnd " ) . removeClass ( " disabled " );
$ ( " #installUpdateProgress " ) . hide ();
2023-07-22 22:22:40 +02:00
2023-07-23 18:23:33 +02:00
if ( typeof message !== 'object' ) {
const startOfArray = message . indexOf ( '{' );
2023-07-22 22:22:40 +02:00
2024-09-25 21:13:04 +02:00
// 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 );
2023-07-22 22:22:40 +02:00
2024-09-25 21:13:04 +02:00
try {
const jsonData = JSON . parse ( jsonString );
2023-07-22 22:22:40 +02:00
2024-09-25 21:13:04 +02:00
// 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 );
2024-02-01 18:57:38 +01:00
}
2023-07-23 18:23:33 +02:00
} else {
$ ( " #installUpdateErrorMessage " ) . html ( message );
}
2023-03-16 15:13:52 +01:00
}
2024-09-25 21:13:04 +02:00
2023-07-22 22:22:40 +02:00
$ ( window ) . on ( " load " , function () {
2023-03-16 15:13:52 +01:00
step ( 1 , null );
2023-07-22 22:22:40 +02:00
});