Second Brain documentation

ADR 0030 – Vue liste : une ligne par nœud, réutilisable par les dashboards

Accepté (2026-10-16, mode autonome)

← Toutes les décisions

ADR 0030 – Vue liste : une ligne par nœud, réutilisable par les dashboards

Statut : Accepté (2026-10-16, mode autonome)

Contexte

Le jalon 2 prévoit une « liste compacte pour les dashboards ». Le format des vues (ADR 0028) a déjà un display.mode, qui peut valoir list. La table (ADR 0029) est trop dense pour un widget, et peu lisible sur un téléphone.

Décision

  • Composant ViewList (features/views/view-list.ts). Une ligne par nœud :

    • badge de type ;
    • titre en vrai lien vers la fiche ;
    • à droite, les autres colonnes non vides, sous la forme « Libellé valeur » séparées par « · ».

    La colonne Type n’est pas répétée, puisque le badge la montre. Les valeurs suivent le même formatage que la table (formatViewValue) : dates jj/mm/aaaa, références par leur titre, tags précédés de #.

  • Groupes : les mêmes que dans la table. Chaque groupe est un élément de la liste qui contient son bouton repliable (aria-expanded, aria-controls) et sa propre liste imbriquée, si bien que l’appartenance au groupe est transmise aux lecteurs d’écran.

  • Type : le badge est décoratif ; le libellé du type est donné en texte masqué visuellement pour les lecteurs d’écran.

  • Téléphone : sous 600 px, les métadonnées passent sous le titre au lieu d’être coupées.

  • Entrées du composant : des lignes déjà regroupées (viewItems, qui sert aussi à la table), les colonnes et les nœuds cités. Il ne fait aucune requête de données, si bien qu’un widget de dashboard pourra l’alimenter avec le même endpoint et la même fonction.

  • Affichage : la page d’une vue démarre sur display.mode. Un sélecteur « Table / Liste » permet de passer de l’un à l’autre ; il est remis à zéro au changement de vue. Le mode kanban s’affiche en table jusqu’à sa tranche.

  • Exemple : config/views/notes-recentes.yaml, les notes modifiées depuis 30 jours, en liste.

Alternatives écartées

  • Liste AG Grid sans en-têtes : elle demanderait une hauteur fixe par ligne et une grille par widget, alors qu’une liste HTML est plus légère et naturellement accessible (liste, liens).
  • Édition en ligne dans la liste : la liste sert à parcourir. On modifie dans la table ou dans la fiche.

Amendement (ADR 0035) : le mode kanban a son affichage ; la bascule propose Table, Liste et Kanban (si la vue a un groupBy).