# TODO - [x] Fix email addresses in about.php contacts section not using EmailObfuscator for link text - [x] Raise rate limits: SearchController 30→300, request-access 3→30, partage 5→50 - [x] Make Libre option toggleable in Degré d'ouverture fieldset, move to top, remove temporary note - [x] Mots-clés required (min 3) in partage form: red count < 3, accent ≥ 3 - [x] Language checkbox-list no longer required when language_autre pill is present - [x] Admin contenus: auto-save checkboxes via HTMX (Restrictions, Degré d'ouverture, Types de travaux), remove Enregistrer buttons - [x] Improve recapitulatif.php (partage): bottom margin/padding, center .thanks-success - [x] Display ALL submitted info in recapitulatif page + email recap - [x] Add "validate your info / contact xamxam@erg.be" note on recap page - [x] Fix CSV import: lecteur interne/externe + promoteurice ULB not imported with correct role/is_external/is_ulb flags - [x] Add "Terminé" button to import dialog on success (closes dialog + reloads page to clear form) - [x] Replace HTMX+PHP file upload queues with client-side JS - [x] Fix submit button on all forms — add JS/PHP debug logging - [x] Fix file-upload-queue.js: redirect detection broken due to opaque redirect (switched from fetch to XHR for reliable responseURL) - [x] Add `console.log` tracing on JS submit interception - [x] Add `error_log` entry-point logging to all 16 PHP action files - [x] Add double-submit guard (`_xamxamActiveSubmit`) - [x] Fix spurious HTMX console warnings from checkbox-list default hx-include - [x] Fix duplicate language entries (accented vs non-accented variants) - [x] Fix checkbox click in admin index navigating to recapitulatif instead of toggling - [x] Deduplicate getPredefinedLanguages() query - [x] Accent-tolerant getOrCreateLanguage() to prevent future duplicates - [x] Delete orphan non-accented language rows from DB - [x] Migrate file upload queues to FilePond - [x] Download filepond.min.js + filepond.min.css as local assets - [x] Create file-upload-filepond.js (init script for FilePond instances) - [x] Rewrite fichiers-fragment.php: replace custom picker/queue DOM with FilePond targets - [x] Rewrite fieldset-files.php: same migration (dead code but kept consistent) - [x] Update admin/add.php, admin/edit.php, partage/index.php: swap sortable+file-upload-queue for filepond - [x] Remove file-upload-queue.js and sortable.min.js - [x] Clean up CSS: remove .fq-*, .tfe-file-queue styles, add filepond.css + theme overrides - [x] Decouple format extras from main file inputs — slot-based HTMX swaps preserve FilePond instances - [x] Fix initFilePonds → window.XamxamInitFilePonds bug - [x] Verify backend $_FILES['queue_file'][*] data flow unchanged - [x] Add FilePond pools for couverture + note_intention (extracted from file-field.php inner