Vérification pour éviter une boucle infini lors de l sélection du role
Browse files- templates/index.html +21 -5
templates/index.html
CHANGED
|
@@ -423,8 +423,11 @@
|
|
| 423 |
});
|
| 424 |
|
| 425 |
// si on a déjà enregistré un rôle, envoyer automatiquement au back seulement si le rôle n'est pas encore confirmé
|
| 426 |
-
|
|
|
|
|
|
|
| 427 |
console.log('Role déjà présent en localStorage:', selectedRole);
|
|
|
|
| 428 |
// lancer en tâche de fond, sans bloquer
|
| 429 |
fetch('/api/ask', {
|
| 430 |
method: 'POST',
|
|
@@ -432,14 +435,27 @@
|
|
| 432 |
body: JSON.stringify({ role_selection: selectedRole }),
|
| 433 |
credentials: 'include'
|
| 434 |
})
|
| 435 |
-
.then(resp =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 436 |
.then(data => {
|
| 437 |
-
|
| 438 |
-
|
| 439 |
window.location.href = window.location.origin + '/';
|
| 440 |
}
|
| 441 |
})
|
| 442 |
-
.catch(err =>
|
|
|
|
|
|
|
|
|
|
| 443 |
}
|
| 444 |
}
|
| 445 |
|
|
|
|
| 423 |
});
|
| 424 |
|
| 425 |
// si on a déjà enregistré un rôle, envoyer automatiquement au back seulement si le rôle n'est pas encore confirmé
|
| 426 |
+
// et qu'on n'a pas déjà essayé cette session
|
| 427 |
+
const autoSubmitAttempted = sessionStorage.getItem("auto_submit_attempted");
|
| 428 |
+
if (selectedRole && document.querySelector('.role-selection-container') && !autoSubmitAttempted) {
|
| 429 |
console.log('Role déjà présent en localStorage:', selectedRole);
|
| 430 |
+
sessionStorage.setItem("auto_submit_attempted", "true");
|
| 431 |
// lancer en tâche de fond, sans bloquer
|
| 432 |
fetch('/api/ask', {
|
| 433 |
method: 'POST',
|
|
|
|
| 435 |
body: JSON.stringify({ role_selection: selectedRole }),
|
| 436 |
credentials: 'include'
|
| 437 |
})
|
| 438 |
+
.then(resp => {
|
| 439 |
+
if (resp.status === 429) {
|
| 440 |
+
console.log('Trop de requêtes, réessai dans 5 secondes...');
|
| 441 |
+
sessionStorage.removeItem("auto_submit_attempted"); // permettre un nouvel essai
|
| 442 |
+
setTimeout(() => {
|
| 443 |
+
window.location.reload();
|
| 444 |
+
}, 5000);
|
| 445 |
+
return;
|
| 446 |
+
}
|
| 447 |
+
return resp.json();
|
| 448 |
+
})
|
| 449 |
.then(data => {
|
| 450 |
+
if (data && data.status === 'role_selected') {
|
| 451 |
+
console.log('Auto-enregistrement rôle réussi');
|
| 452 |
window.location.href = window.location.origin + '/';
|
| 453 |
}
|
| 454 |
})
|
| 455 |
+
.catch(err => {
|
| 456 |
+
console.error('Erreur auto-role:', err);
|
| 457 |
+
sessionStorage.removeItem("auto_submit_attempted"); // permettre un nouvel essai en cas d'erreur
|
| 458 |
+
});
|
| 459 |
}
|
| 460 |
}
|
| 461 |
|