Chaque propriété à un clic

Productivity

Si vous utilisez Notez pour quoi que ce soit qui a un cycle de vie (une liste de lecture, un backlog, des notes clients), vous avez sans doute créé une propriété Status. Peut-être un Assignee. Peut-être une relation Project qui pointe vers la note du projet.

Ensuite, chaque fois que vous vouliez voir seulement les éléments bloqués, ou seulement les vôtres, vous ouvriez le panneau Filtrer, trouviez la propriété, ouvriez son sélecteur, cochiez la valeur et refermiez deux couches d’interface. Trois ou quatre clics pour une question que vous posez vingt fois par jour.

Les étiquettes n’ont jamais eu ce problème. Elles ont toujours eu leur section dans la barre latérale : une ligne par étiquette, un compteur, un clic pour filtrer. C’est la commande la plus utilisée de l’application. La question évidente était de savoir pourquoi c’était la seule.

Ce qui est sorti

Depuis la v0.8.0, toute propriété de type sélection, sélection multiple, membre ou relation peut s’afficher dans la barre latérale, dans sa propre section. Le Tableau intégré aussi. Chaque section liste ses valeurs en lignes (une pastille colorée pour une option, un avatar pour une personne, une icône de note pour une note liée, un nom de colonne pour le tableau), avec le nombre de notes hors corbeille qui portent cette valeur. Cliquez sur une ligne, et la liste se filtre sur cette valeur. Cliquez sur une deuxième ligne de la même section : vous obtenez l’une ou l’autre. Cliquez dans une autre section : vous affinez encore.

Une section s’active depuis Plus → Propriétés personnalisées : ouvrez la propriété, activez Afficher dans la barre latérale, enregistrez. Pour la désactiver, survolez l’en-tête de la section dans la barre latérale, cliquez sur le petit bouton de réglages qui apparaît et choisissez Retirer de la barre latérale. La propriété elle-même ne change pas ; seule sa présence dans la barre latérale change.

Les étiquettes sont affichées par défaut, parce qu’elles l’ont toujours été. Le tableau est masqué par défaut, parce que la vue tableau montre déjà les colonnes et qu’une deuxième copie encombrerait l’écran de la plupart des gens. Les deux se changent depuis la même fenêtre.

La barre latérale a aussi reçu un petit changement de structure, qui a compté plus que prévu : Nouvelle note et Accueil restent désormais fixés en haut, Fichiers, Corbeille, Paramètres et Plus restent fixés en bas, et seules les sections entre les deux défilent. Si vous affichez quatre propriétés sur un écran d’ordinateur portable, les actions principales ne disparaissent plus par le haut.

Pourquoi seulement ces types

Le premier brouillon de cette fonctionnalité disait « n’importe quelle propriété ». Le deuxième, une heure plus tard, disait « n’importe quelle propriété dont les valeurs forment un ensemble fixe », et c’est cette version qui est sortie.

Une ligne de la barre latérale doit être une valeur distincte, sur laquelle on clique. Une option en est une. Une personne aussi. Une note liée aussi. Un nombre, une date ou une ligne de texte, non : pour filtrer dessus, il faut une plage ou une requête, et c’est à cela que servent les champs du panneau Filtrer. Mettre une propriété texte dans la barre latérale reviendrait à y mettre un champ de recherche, et ce ne serait plus une section de barre latérale, mais un deuxième panneau de filtres, moins bien agencé.

Les relations demandaient une décision de plus. Une sélection a une liste d’options fixe ; les « options » d’une relation sont toutes les notes vers lesquelles quelqu’un a créé un lien, ce qui peut en faire des centaines, et la liste change chaque fois que quelqu’un en lie une. Tout lister rendrait la section énorme. Une section de relation affiche donc les dix notes cibles les plus liées, hors corbeille, de la plus liée à la moins liée, et la recherche du panneau reste le moyen d’atteindre les autres. Si vous avez une relation Project, la barre latérale montre les projets qui ont le plus de notes, c’est-à-dire presque toujours ceux sur lesquels vous voulez cliquer.

Les membres étaient simples en comparaison : la section liste tous les membres de l’espace de travail, exactement comme le sélecteur de personnes du panneau, parce que cette liste est courte et bornée.

Un seul filtre, pas deux

La partie à laquelle j’ai fait le plus attention est invisible quand elle fonctionne : la barre latérale et le panneau Filtrer sont le même filtre.

Notez garde les filtres de la liste dans l’URL. C’était déjà le cas, et c’est pour cela qu’un marque-page peut garder « tout ce qui porte l’étiquette client-x avec le statut blocked » ; les sections de la barre latérale écrivent simplement à l’endroit où le panneau lit. Cliquez sur Bloqué dans la barre latérale, et le panneau affiche Bloqué coché. Décochez-le dans le panneau, et la ligne de la barre latérale s’éteint. Effacer efface les deux. Il n’y a pas de second état qui pourrait se désynchroniser, pas de « filtre de barre latérale » distinct du « filtre ».

Ce choix a aussi corrigé un bug latent. Une URL modifiée à la main ou périmée pouvait porter deux jetons de filtre pour la même propriété, et le serveur les combinait avec un ET : une note devait correspondre aux deux listes, ce qui, pour une sélection unique, ne donnait aucune note, pendant que la barre latérale affichait tranquillement une ligne comme active. Au clic, la barre latérale supprime maintenant tous les jetons de sa propriété et en réécrit exactement un. Le panneau faisait déjà la même chose ; il fallait juste que les deux s’accordent.

Deux cas limites de plus, puisque le serveur plafonne la liste à dix filtres de propriétés : la barre latérale refuse le onzième avec la même notification que le panneau, et un clic calcule l’URL suivante à partir des paramètres actuels du routeur plutôt que de ceux avec lesquels le composant s’est affiché. Ainsi, deux clics rapides, ou un clic dans la barre latérale en concurrence avec un changement dans le panneau, ne peuvent pas s’écraser l’un l’autre en silence.

Ce que la relecture du plan a supprimé

Cette fonctionnalité a été planifiée dans un document avant la moindre ligne de code, et le plan est passé par quatre relectures avec des consignes différentes : exactitude, règles maison, exhaustivité, et « qu’est-ce qui est trop compliqué ici ». La dernière a été la plus utile, et ce qu’elle a retiré mérite d’être raconté.

Les sections repliables. Le premier plan ajoutait un chevron à chaque section et mémorisait l’état replié par espace de travail, avec l’argument que plusieurs sections pousseraient le bas de la barre latérale hors de l’écran. Un relecteur a fait remarquer que le corps de la barre latérale défilait déjà indépendamment du bloc du bas : la justification était tout simplement fausse. Supprimé. (Le bloc du haut fixe, lui, est bien sorti, plus tard, à cause d’une autre plainte, réelle celle-là.)

Un endpoint serveur dédié. Le plan proposait une nouvelle requête qui renvoyait des sections de barre latérale toutes prêtes : noms, options, ordre, compteurs. Un relecteur a remarqué que tout, sauf les compteurs, figurait déjà dans la liste des propriétés que l’application charge pour le panneau Filtrer et la fenêtre des propriétés, et qu’une seconde copie des noms et des options voulait dire un second cache, qui pouvait être périmé. Ce qui est sorti, c’est une petite requête qui ne renvoie que les compteurs, indexés par identifiant d’option, de personne ou de note, et la barre latérale déduit le reste des données qu’elle avait déjà.

Un lien « Configurer la barre latérale ». J’ai ajouté sous les sections un lien, visible seulement au survol, qui ouvrait la fenêtre des propriétés. Il est arrivé dans la version de développement, a été regardé une fois et a été retiré le jour même. La fenêtre est à un clic, sous Plus, et une commande qui n’apparaît qu’au survol, en bas d’une zone qui défile, est une commande que personne ne trouve. Le menu par section, qui est resté, fait ce dont les gens ont vraiment besoin (enlever celle-ci d’ici), là où ils regardent déjà.

Métadonnées ou colonne. L’indicateur « afficher dans la barre latérale » vit dans les métadonnées JSON existantes de la propriété, pas dans une nouvelle colonne de la base de données. Cela mérite une phrase, parce que c’est le genre de choix dont on débat. Aucun filtre SQL ne porte sur cet indicateur (le client décide quoi afficher à partir de la liste des propriétés qu’il a déjà), donc une colonne typée n’apporterait rien d’autre qu’une migration. Si cela change un jour, l’indicateur déménage, et rien d’autre ne bouge.

Également dans cette version

Quelques changements sont arrivés en même temps que le travail sur la barre latérale.

  • Favoris. Les notes épinglées s’appellent désormais Favoris partout, avec une étoile dans l’en-tête de la note et une étoile ambre pleine comme indicateur. La section de la barre latérale se masque tant qu’elle est vide, et marquer une note d’une étoile n’affiche plus de notification : l’étoile et la section montrent déjà le résultat. Les raccourcis à une lettre P et D sur les cartes ont disparu ; les deux actions sont dans le menu de la carte.

  • Accueil. Le lien en haut de la barre latérale s’appelle Accueil et non plus Toutes les notes. Le titre de la page indique toujours Toutes les notes.

  • Précédent et suivant sur le tableau. Quand une carte est ouverte dans le panneau latéral, J et K parcourent maintenant la colonne de cette carte. Ces boutons étaient auparavant complètement masqués sur le tableau.

  • Un bloc du bas mieux rangé. Importer, Propriétés personnalisées, Intégrations et Raccourcis se trouvent sous un bouton Plus qui se déplie vers le haut, si bien que le bouton reste en place ; Paramètres s’ouvre directement sur l’onglet Espace de travail, et l’entrée Espace de travail séparée a disparu.

  • Bleu. La couleur principale passe du violet au bleu dans l’application, sur la page d’accueil du site et dans les icônes.

Et deux corrections : l’en-tête du panneau latéral affichait le titre de la note déguisé en fil d’Ariane, et n’affiche plus que le chemin des parents ; et la bordure de la barre latérale repliée, qu’on fait glisser pour la rouvrir, ne réagissait plus aux clics.

À quoi ça sert

L’intérêt des propriétés n’a jamais été les propriétés. C’était de pouvoir demander « qu’est-ce qui est bloqué ? » ou « qu’est-ce qui est à moi ? » et d’obtenir une réponse sans penser à l’outil. Pour les étiquettes, cela a toujours pris un clic. Maintenant, c’est un clic pour le reste aussi, et comme la barre latérale et le panneau sont la même chose en dessous, choisir où cliquer est la seule décision qui reste.

Activez une propriété sous Plus → Propriétés personnalisées et voyez si vous cessez d’ouvrir le panneau. Moi, je ne l’ouvre plus.

Aide : Propriétés personnalisées · Organiser ses notes · Utiliser les tableaux · Journal des modifications v0.8.0

À lire aussi