Vu qu’il n’y a rien d’intéressant à la télé ce soir
,
j’en profite pour pousser un fix à tester / valider (avec une évolution visuelle en bonus)
- Le filtre met à jour la liste des scénarios filtrés sans modifier la sélection en cours
- Même comportement que les autres filtres : il faut sélectionner un élément de la liste pour modifier la sélection courante
Il faut modifier le fichier du suivant scenario.default.html :
const input = document.querySelector('.expressionAttr[data-uid="#uid#"][data-l1key="options"][data-l2key="filter"]')
const allOptions = Array.from(select.options)
const optgroups = select.querySelectorAll('optgroup')
function filterOptions() {
const text = input.value.trim().toLowerCase().stripAccents()
const selectElement = document.querySelector('.expressionAttr[data-l2key="scenario_id"]')
if (!selectElement) return
allOptions.forEach(option => {
const optionText = option.textContent.toLowerCase().stripAccents()
option.hidden = text !== '' && !optionText.includes(text)
})
optgroups.forEach(group => {
const childOptions = Array.from(group.querySelectorAll('option'))
const hasVisibleOption = childOptions.some(option => !option.hidden)
group.hidden = text !== '' && !hasVisibleOption
})
}
input.addEventListener('input', filterOptions)
En bonus :
- Séparation de l’affichage des scénarios par groupes de scénarios
- Les groupes sans scénarios (car filtrés) ne sont pas affichés

