Contexte
Sur la liste des risques (digiriskelement_risk.php), les modales d'ajout et d'édition de tâche (et leurs sélecteurs utilisateur) sont rendues inline dans le DOM pour chaque tâche, même fermées. Conséquences :
Proposition
Charger le contenu des modales de tâche à la demande (à l'ouverture), via AJAX, plutôt qu'inline :
- endpoint AJAX (
core/ajax/) renvoyant le HTML d'une modale (ajout/édition) pour un taskId / riskId donné ;
- JS : à l'ouverture (
modal-open), fetch + injection du contenu (s'appuyer sur le pattern modal Saturne existant data-url/refreshModal, cf. js/modules/modal.js) ;
select_dolusers et les autres requêtes ne s'exécutent alors que pour la modale réellement ouverte (0–1 par page au lieu de 18).
Bénéfices
- −17 requêtes SQL dupliquées par page.
- DOM et poids HTML nettement réduits, rendu initial plus rapide.
- Pattern réutilisable pour les autres modales inline lourdes.
Points d'attention
- Préserver le comportement actuel (création/édition/timespent, présélection de l'exécutant).
- Gérer le cas JS désactivé (dégradation) si nécessaire.
- À traiter comme une feature dédiée (pas un simple correctif de doublons).
Suivi
Fait suite au profilage SQL de la liste des risques (#4886 / PR #4887) : reliquat de doublons select_dolusers volontairement laissé, cette issue en trace la résolution propre.
Contexte
Sur la liste des risques (
digiriskelement_risk.php), les modales d'ajout et d'édition de tâche (et leurs sélecteurs utilisateur) sont rendues inline dans le DOM pour chaque tâche, même fermées. Conséquences :$form->select_dolusers()(dropdown « tous les utilisateurs ») est exécuté une fois par modale → ~18 requêtes SQL identiques par page (reliquat après l'optimisation Perf : requêtes SQL dupliquées sur la liste des risques (digiriskelement_risk.php) #4886).Proposition
Charger le contenu des modales de tâche à la demande (à l'ouverture), via AJAX, plutôt qu'inline :
core/ajax/) renvoyant le HTML d'une modale (ajout/édition) pour untaskId/riskIddonné ;modal-open), fetch + injection du contenu (s'appuyer sur le pattern modal Saturne existantdata-url/refreshModal, cf.js/modules/modal.js) ;select_doluserset les autres requêtes ne s'exécutent alors que pour la modale réellement ouverte (0–1 par page au lieu de 18).Bénéfices
Points d'attention
Suivi
Fait suite au profilage SQL de la liste des risques (#4886 / PR #4887) : reliquat de doublons
select_dolusersvolontairement laissé, cette issue en trace la résolution propre.