c927771795d3ebffceadfbfffa3aa4bd949d2480
ensureScrollable() (appelé par onFilterChanged() après chaque changement de filtre) appelle lui-même loadOlder()/loadNewer(), qui passent par le même _queueWindowOp -- en le chaînant *à l'intérieur* de l'opération déjà mise en file par onFilterChanged(), la file d'attente se retrouvait à attendre sa propre continuation dès qu'un filtre laissait trop peu de lignes pour remplir l'écran, gelant purement et simplement le tableau (recherche qui ne charge plus les lignes précédentes en scrollant, et même effacer le filtre ensuite ne faisait plus rien -- tout attendait derrière l'opération bloquée). Corrigé en chaînant ensureScrollable() après la résolution de l'opération mise en file, pas dedans -- ses propres appels à loadOlder()/loadNewer() s'empilent alors normalement sur la file, sans dépendance circulaire. Reproduit et vérifié en conditions réelles : recherche "Assurance local" (47 correspondances de 2023 à 2026) qui chargeait bien 2026 mais bloquait en scrollant vers le haut -- après correctif, chaque scroll vers le haut déclenche bien un nouveau chargement (vérifié sur 2 scrolls successifs), et effacer le filtre recharge immédiatement la vue complète.
Description
No description provided
1.2 MiB
Languages
php
44.6%
JavaScript
32.8%
CSS
13.4%
Twig
9.2%