fix(iexec): bouton '1 Lancer les verifs' disable des qu'une etape ulterieure est lancee

Avant: une fois les verifs faites, le bouton restait cliquable meme si on etait
passe au step 2 (snap), ce qui pouvait re-lancer les verifs et casser l'etat.

Apres: si snap/dry/pre/patch/reboot/recon/post a ete attemptee, le bouton step 1
est explicitement disabled avec un title explicatif. La couleur du badge reste
'done' ou 'failed' selon le verdict des verifs.
This commit is contained in:
Pierre & Lumière 2026-05-07 20:01:11 +02:00
parent fde554ad4f
commit 2559d58a54

View File

@ -511,10 +511,18 @@ function toggleDetails(){
const postAttempted = trs.some(tr => tr._postData);
const postOk = trs.filter(tr => tr._postData && tr._postData.ok).length;
// Step 1 (check) : toujours dispo. current si pas tenté, done si OK, failed si tenté KO
// Step 1 (check) : actif uniquement si on n'a pas encore lancé une étape ultérieure.
// Dès qu'on est passé à snap/dry/pre/patch/reboot/recon/post, on lock le bouton "Vérifs".
const anyLaterStarted = snapAttempted || dryAttempted || preAttempted
|| patchAttempted || rebootAttempted || reconAttempted || postAttempted;
const checkState = !checkAttempted ? 'current' : (ckOk > 0 ? 'done' : 'failed');
setBtnState(btnRun, checkState);
setStepState('check', checkState);
// Lock explicite si on est passé à la phase suivante
if (btnRun && anyLaterStarted) {
btnRun.disabled = true;
btnRun.title = 'Phase 1 verrouillée — étape suivante déjà démarrée';
}
// Cascade : chaque étape dépend du `done` de la précédente
const snapState = deriveState(ckOk, snapAttempted, snapOk);