Problème d'affichage avec le filtrage de scénario dans Action sur valeur

Vu qu’il n’y a rien d’intéressant à la télé ce soir :smirking_face: ,

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

3 « J'aime »