Files
2026-10-23 13:31:12 +02:00

32 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Vortag und Folgetag auf der Startseite
Die Startseite (`TodayView`, Route `""`) zeigte ausschließlich das Gerätedatum. Wer einen vergangenen Tag ansehen oder nachtragen wollte, musste über `/work` gehen. Sie führt jetzt dieselbe Tagesnavigation wie die Arbeitsseite.
## Umsetzung
- `TodayView` ist `BeforeEnterObserver` und liest `?date=` als ISO-Datum. Ein unlesbarer Wert und ein Datum nach heute landen auf heute; die Zukunft hält auf dieser Seite nichts zu zeigen, und ein Habit-Zähler würde dort ohnehin `habit.futureDate` melden.
- `dayNavigation` baut dieselben Pillen und dasselbe Datumsfeld wie `WorkView`: Vortag, „Heute“ (abgeschaltet, wenn heute schon gezeigt wird), Folgetag (abgeschaltet am heutigen Tag) und `wj-day-picker` mit `max = heute`. Beschriftungen, `aria-label` und Tooltips stammen aus den vorhandenen Schlüsseln `work.previousDay`, `work.todayDay`, `work.nextDay` und `work.showDate`; die Klassen `wj-day-nav`, `wj-day-step` und `wj-day-picker` bestehen bereits im Stylesheet.
- Der gezeigte Tag trägt alles, was die Seite rechnet: Tagessumme, Kundenchips, Wocheneinnahme, Kalendermonat, Einträge, Erfassungslink und die Habit-Zähler. Drei Beschriftungen wechseln, damit die Seite nicht „heute“ behauptet: `journal.workDay` statt `journal.workToday`, `journal.entries` statt `journal.todayEntries`, `work.noEntries` statt `today.noWork`. Für die Wochensumme kommt `journal.dayWeek` hinzu, weil „Diese Woche“ an einem Tag aus einer früheren Woche falsch wäre.
- Heute bleibt ungemerkt: nur ein ausdrücklich gewählter anderer Tag wird festgehalten. Eine über Mitternacht offene Seite folgt damit weiter der Uhr, statt den Vortag als „heute“ auszugeben.
- Der Fenstertitel nennt an einem anderen Tag dessen Datum statt „Heute“, damit ein zweiter Tab erkennbar bleibt.
- Die Adresse wird beim Blättern nicht umgeschrieben — wie auf `/work`. `?date=` ist der Einstieg (Lesezeichen, Link, Erinnerung), die Pillen sind die Bedienung.
Neue Schlüssel in beiden Bundles: `journal.workDay`, `journal.dayWeek`.
## Nachweise
- `gherkin/ux-tests.feature` WJ-076 „Reach the day before and after from the home page“, angebunden in `BrowserCucumberTest`: zwei Tage mit unterschiedlichen Stunden erfasst, einen Tag zurück geblättert (eigene Stunden, eigener Eintrag, „That week“, der Eintrag von heute ist nicht dabei), ein Habit von dort gezählt — die Datenbank schreibt den Zähler auf den gezeigten Tag —, wieder vorwärts auf heute (Folgetag und „Heute“ abgeschaltet), über `?date=` direkt auf den früheren Tag und mit einem Datum nach heute zurück auf heute.
- Der gezeigte Tag wird im Test aus dem Datumsfeld der Seite gelesen, nicht aus der Testuhr: der Server besitzt „heute“, und die Vorbereitung bleibt über Mitternacht hinweg richtig.
## Kopf in einer Zeile (2026-10-23)
Der Kopf nahm drei Zeilen: Datum als Eyebrow, Spruch als Überschrift, Tagesnavigation darunter. Alles, was die Seite eigentlich zeigt, rutschte dadurch nach unten.
- Der Spruch „Jeden Tag ein bisschen.“ entfällt, `journal.todayHeading` ist aus beiden Bundles entfernt. Das Datum ist die Überschrift (`H2`) wie auf der Arbeitsseite; die Eyebrow-Zeile fällt damit weg.
- `.journal-today .journal-heading` ist eine Flexzeile: Datum links, Tagesnavigation rechts, Umbruch erst bei zu wenig Breite — auf dem Telefon also zwei Zeilen statt vier. Die Überschrift misst dort 26 px, unter 600 px 22 px.
- Das Datumsfeld ist auf der Startseite ein Kalendersymbol: Klasse `wj-day-jump` statt `wj-day-picker`. Der `DatePicker` trägt keine Beschriftung mehr, seine Eingabe steht auf Breite 0, sichtbar bleibt der eigene Umschaltknopf der Komponente. Er öffnet das Kalender-Overlay, in dem der Tag gewählt wird; `aria-label` und Tooltip nennen weiter `work.showDate`, `max = heute` und der Wertwechsel bleiben wie zuvor. Die Pille ist 40 × 36 px groß wie ein Schritt daneben.
- Begründung: ein Datum unmittelbar zu nennen ist hier selten, die Regel sind Vortag und Folgetag. Auf `/work`, wo gezielt ein Tag gesucht wird, bleibt das Feld unverändert.
- Für die Tests heißt das: der Spruch war der Sentinel „angemeldet und auf der Startseite“ in einem Dutzend Szenarien. An seine Stelle tritt `atHome()` (`.journal-today .journal-heading h2`); die beiden Sprachprüfungen nennen jetzt die Überschrift der Arbeitskarte („Deine Arbeit heute“ / „Your work, today“), die sprachabhängig bleibt.
Nachweis: WJ-077 „Pick a day on the home page without a date field“ — die Überschrift nennt den gezeigten Tag, keine Eyebrow-Zeile und kein Spruch mehr, die vier Bedienelemente der Tagesnavigation teilen sich eine Zeile (gleiche Oberkante) und das Datumsfeld ist nicht breiter als ein Schritt; der Kalenderknopf öffnet das Overlay, der Erste des Monats wird daraus gewählt und die Seite zeigt diesen Tag.