Im Beitrag der letzten Woche über die Abschnitte der Seitenleiste gab es einen Teil namens Was das Review des Plans gestrichen hat, und einer der Punkte war ein Link Seitenleiste anpassen: Er erschien beim Hovern, saß unter den Abschnitten und öffnete den Eigenschaften-Dialog. Ich habe ihn entfernt und geschrieben: „Ein Bedienelement, das nur beim Hovern erscheint, am unteren Ende eines scrollenden Bereichs, findet niemand.“
So weit stimmte das auch. Dieses Release bringt trotzdem eine Version davon zurück, und der Unterschied verdient eine Erklärung, weil es um den einen Fall geht, den das Argument nicht abgedeckt hat.
Die leere Seitenleiste
Jede Abschnittsüberschrift in der Seitenleiste hat einen Einstellungs-Button, der beim Hovern erscheint, und das Menü dahinter hatte bisher genau einen Eintrag: Aus der Seitenleiste entfernen. Tags ist standardmäßig eingeschaltet, ein neuer Workspace hat also einen Abschnitt. Entfernst du ihn – vernünftig, wenn du keine Tags nutzt –, ist die Mitte der Seitenleiste leer. Neue Notiz und Startseite oben, Dateien, Papierkorb und Einstellungen unten, dazwischen nichts.
Genau dieses Nichts ist das Problem. Einen Abschnitt bekommst du über Mehr → Eigene Eigenschaften zurück, dann die Eigenschaft, dann In der Seitenleiste anzeigen. Diesen Weg gibt es, und der vorige Beitrag hat argumentiert, er sei einen Klick entfernt. Einen Klick entfernt ist er aber nur, wenn du schon weißt, dass die leere Fläche eine anpassbare Fläche ist. Eine leere Fläche sagt das nicht. Das Nächste, was danach aussieht, ist Einstellungen, und das ist der falsche Dialog.
Die Regel, die das Review richtig erkannt hat – Bedienelemente, die nur beim Hovern am Ende einer Liste erscheinen, sind unsichtbar –, braucht also eine Einschränkung. Ist die Liste leer, gibt es kein Ende, und in diesem Bereich gibt es nichts anderes, woran das Auge hängen bleibt. Der leere Zustand ist der eine Ort, an dem ein Hover-Element funktioniert, weil nichts mit ihm konkurriert.
Was neu ist
Seitenleiste anpassen erscheint im Bereich der Abschnitte nur, wenn die Seitenleiste gar keine Abschnitte hat: Tags ist entfernt, und keine eingeschaltete Eigenschaft hat etwas aufzulisten. Bewegst du den Zeiger über die Seitenleiste, wird der Button eingeblendet; ein Klick öffnet den Eigenschaften-Dialog. Schaltest du irgendeinen Abschnitt ein und schließt den Dialog, ist der Button verschwunden. Er ist bewusst als gestrichelte, gedämpfte Zeile gezeichnet statt als richtiger Button: Es ist keine Aktion, die du oft ausführst, sondern ein Hinweis, dass in diesem Bereich etwas stehen kann.
Die Bedingung ist strenger als „keine Eigenschaften in der Seitenleiste“. Eine eingeschaltete Relation, auf die noch niemand verlinkt hat, rendert nichts, und von deinem Platz aus ist das eine leere Seitenleiste. Der Button richtet sich danach, was tatsächlich auf dem Bildschirm steht, nicht nach den Flags.
Eigenschaft bearbeiten, direkt von dort, wo du bist
Das Menü der Abschnitte hat einen zweiten Eintrag bekommen, und den hätte ich zuerst ausliefern sollen: Eigenschaft bearbeiten. Fahr über eine Abschnittsüberschrift, klick auf den Einstellungs-Button, wähl den Eintrag, und der Eigenschaften-Dialog öffnet sich mit dieser Eigenschaft bereits ausgewählt – ihre Optionen, ihre Farben, ihr Schalter In der Seitenleiste anzeigen, alles direkt da. Bei Tags und Board öffnet er ihren gesperrten Bereich für integrierte Eigenschaften, in dem der Seitenleisten-Schalter die einzige Einstellung ist.
Vorher hieß das Bearbeiten einer Eigenschaft, die du in der Seitenleiste sehen konntest: Mehr → Eigene Eigenschaften, dann die Eigenschaft in der Liste suchen. Bei drei Eigenschaften ist das nichts. Bei fünfzehn ist es eine Suche nach etwas, das die Seitenleiste schon wusste, weil du mit der Maus darüber warst.
Den Dialog bei einer bestimmten Eigenschaft öffnen
Der kleine technische Punkt unter beiden Änderungen: Dem Eigenschaften-Dialog lässt sich jetzt sagen, mit welcher Eigenschaft er sich öffnen soll. Das klingt trivial und war es nicht ganz.
Der Dialog hatte schon Regeln für seine Auswahl: beim Öffnen die erste selbst angelegte Eigenschaft wählen; zu einer Eigenschaft springen, sobald sie erstellt ist und der Refetch mit ihr angekommen ist; sich fangen, wenn die ausgewählte aus der Liste verschwindet. Diese Regeln stecken in einem einzigen Effect, und die neue musste sich einfügen, ohne sie zu stören.
Der Haken ist das Timing. Der Dialog lädt seine Liste nur, solange er offen ist, und diese Liste teilt sich einen Cache mit der Seitenleiste, ist also meistens schon da – aber nicht immer, und eine Anfrage, eine Eigenschaft auszuwählen, die noch nicht in der Liste steht, muss auf die Liste warten, statt aufzugeben. Eine gerade erstellte Eigenschaft hat dasselbe Problem, und dafür gab es schon eine Lösung: Der Dialog hält die ID fest und versucht es erneut, sobald Daten ankommen. Die angefragte Eigenschaft nutzt dieselbe Idee mit einem Unterschied. Eine erstellte Eigenschaft taucht garantiert auf, also ist Warten richtig. Eine angefragte könnte ein Teammitglied zwischen deinem Hovern und deinem Klick gelöscht haben; kommt die Liste ohne sie an, fällt der Dialog deshalb auf seine normale Standardauswahl zurück, statt ewig auf nichts zu warten.
Dieser Unterschied ist ein paar Zeilen lang und der ganze Grund, warum das Feature zuverlässig funktioniert.
Etwas Unsichtbares testen
Die End-to-End-Suite für die Abschnitte der Seitenleiste hat zwei Tests dazubekommen. Der eine öffnet Stage über das Menü seines Abschnitts und prüft, dass im Namensfeld des Dialogs schon Stage steht und der Schalter eingeschaltet ist; dann dasselbe für Tags, wobei er prüft, dass der Bereich für integrierte Eigenschaften geöffnet wird. Der andere entfernt Tags, prüft, dass der Button zum Anpassen existiert, aber vollständig transparent ist, bewegt den Zeiger über die Seitenleiste, prüft, dass der Button jetzt deckend ist, klickt sich durch, schaltet Tags wieder ein und prüft, dass der Button von der Seite verschwunden ist.
Der zweite ist kniffliger, als er aussieht. Playwright zählt ein transparentes Element als sichtbar – es hat eine Box und ist nicht versteckt –, also würde eine einfache Prüfung auf „sichtbar“ bestehen, egal ob das Einblenden beim Hovern funktioniert. Der Test liest stattdessen die berechnete Opazität, vor und nach dem Hovern. Wenn du ein Bedienelement auslieferst, bei dem es vor allem darauf ankommt, wann es erscheint, dann prüf genau dieses Wann.
Alles auf einen Blick
Das Menü der Abschnitte enthält jetzt Eigenschaft bearbeiten / Aus der Seitenleiste entfernen.
Eine Seitenleiste ohne Abschnitte zeigt beim Hovern Seitenleiste anpassen.
Der Eigenschaften-Dialog kann sich mit einer bestimmten Eigenschaft öffnen und fällt sinnvoll zurück, wenn es sie nicht mehr gibt.
Hilfe: Die Seitenleiste · Eigene Eigenschaften · Changelog v0.8.1
Weiterlesen
Jede Eigenschaft einen Klick entfernt – der Beitrag zu v0.8.0, auf den dieser zurückkommt: welche Eigenschaftstypen einen Abschnitt in der Seitenleiste bekommen und was das Review des Plans gestrichen hat.
Ohne Ordner: wie Notez Notizen organisiert – Tags, Unternotizen, Boards und elf Typen eigener Eigenschaften, und warum Notez keine Ordner hat.
Die Liste, die du bei jedem Öffnen einer Notiz verlierst – eine Notiz öffnet sich in einem Seitenpanel über der Liste, sodass Scrollposition und Filter bleiben, wo sie waren.