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
// Vérifier si l'accolade ouvrante est trouvée et qu'elle n'est pas en première position
if ( typeof message !== 'object' ) {
2023-07-24 11:25:26 +02:00
2023-07-23 18:23:33 +02:00
// Trouver la position du premier "{" pour repérer le début du tableau
const startOfArray = message . indexOf ( '{' );
2023-07-22 22:22:40 +02:00
2023-07-23 18:23:33 +02:00
// Extraire le message du warning jusqu'au début du tableau
const warningMessage = message . substring ( 0 , startOfArray ) . trim ();
2023-07-22 22:22:40 +02:00
2023-07-23 18:23:33 +02:00
// Extraire le tableau JSON entre les accolades
const jsonString = message . substring ( startOfArray );
const jsonData = JSON . parse ( jsonString );
2023-07-22 22:22:40 +02:00
2023-07-23 18:23:33 +02:00
// Afficher les résultats
2024-02-01 18:57:38 +01:00
if ( jsonData ) {
$ ( " #installUpdateErrorMessage " ) . html ( " <strong>Détails de l'erreur :</strong><br> " +
jsonData . data . replace ( /^ " (.*) " $ / , '$1' ) +
" <br> " +
warningMessage . replace ( /< [ ^ p ] .* ?> /g, ""));
}
2023-07-23 18:23:33 +02:00
} else {
// Vous pouvez également faire quelque chose d'autre ici, par exemple, afficher un message à l'utilisateur, etc.
$ ( " #installUpdateErrorMessage " ) . html ( message );
}
2023-03-16 15:13:52 +01: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
});