From b8d44f7f7d27b6c2091e34579dcaf94fe6f45406 Mon Sep 17 00:00:00 2001 From: DeeCee03 Date: Mon, 31 Aug 2026 19:39:35 +0200 Subject: [PATCH] Reservierte Kacheln vom Dashboard in die Galerie verlegen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Begruessungsbildschirm hatte einen Abschnitt "Kommt noch" mit drei leeren Kacheln. Das ist der falsche Ort: Wer sich morgens anmeldet, will seine Lage sehen und nicht lesen, was spaeter einmal kommt. Ein Dashboard ist kein Ort fuer Ankuendigungen. Die Verabredung bleibt vollstaendig erhalten, nur an Stellen, wo sie hingehoert — alle drei fuer den Einbau gedacht: 1. RESERVIERTE_BEREICHE in view-models/dashboard.vm.ts, jetzt exportiert: die Kacheln als Datensatz mit Titel, Widget-Domaene und Quell-Feature. 2. Ein markierter Kommentarblock in pages/DashboardSeite.tsx an genau der Stelle im Raster, an die sie gehoeren — mit den konkreten Werten ( mit start 0, 4 und 8) und dem Hinweis, dass das Raster dafuer nicht angefasst werden muss. 3. Die Bausteingalerie unter /komponenten, neuer Abschnitt "Reservierte Kacheln" — dort sind alle drei gestaltet zu sehen, aus derselben Konstante gerendert statt abgeschrieben. docs/SCOPE-ANALYTICS-DASHBOARD.md nennt die drei Stellen jetzt ausdruecklich unter "Wo die spaeteren Bereiche stehen", damit beim Port niemand sucht. tsc, lint, build, verify:carbon und verify:layout laufen sauber. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01QPeZNwSeU7qG3RRCwaxEZX --- docs/SCOPE-ANALYTICS-DASHBOARD.md | 31 ++++++++++--- .../dashboard/ReservierteKachel.tsx | 8 +++- features/dashboard/pages/DashboardSeite.tsx | 44 ++++++++++--------- features/dashboard/pages/KomponentenSeite.tsx | 25 ++++++----- .../dashboard/view-models/dashboard.vm.ts | 18 +++++--- 5 files changed, 81 insertions(+), 45 deletions(-) diff --git a/docs/SCOPE-ANALYTICS-DASHBOARD.md b/docs/SCOPE-ANALYTICS-DASHBOARD.md index cfcb16e..d4ae06e 100644 --- a/docs/SCOPE-ANALYTICS-DASHBOARD.md +++ b/docs/SCOPE-ANALYTICS-DASHBOARD.md @@ -107,7 +107,9 @@ mit anderem Titel. | Kennzahlen | Umsatz · Offene Forderungen · Aktive Aufträge · Ø Auslastung | Analytics, je ein Link in die Analyse | | Handlungsbedarf | die Liste über volle Breite | Analytics-Übersicht | | Diagramme | Zahlungseingang · Umsatz nach Gewerk · Vertriebstrichter · Auslastung | Analytics | -| Kommt noch | Meine Aufgaben · Termine heute · HR-Anträge | reservierte Plätze, **keine Daten** | + +Was **nicht** auf der Seite steht: die Bereiche, die später dazukommen. Siehe +„Wo die späteren Bereiche stehen" weiter unten. ### Drei Entscheidungen, die dabei getroffen wurden @@ -130,11 +132,30 @@ stellt. Unsere Kennzahlenreihe tut das. Ohne die Zeile fließt die vierte Kachel dank `grid-flow-row-dense` trotzdem an die richtige Stelle — nur ohne festen Anfang. Vermerkt in `components/dashboard/WidgetRaster.tsx`. -**Die reservierten Plätze zeigen keine erfundenen Zahlen.** „2 neue Anträge" +**Die späteren Bereiche stehen nicht auf dem Dashboard.** Ein +Begrüßungsbildschirm ist kein Ort für Ankündigungen — wer sich morgens +anmeldet, will seine Lage sehen und nicht lesen, was später einmal kommt. + +### Wo die späteren Bereiche stehen + +Meine Aufgaben, Termine heute und HR-Anträge sind an drei Stellen festgehalten, +alle drei für den Einbau gedacht und keine davon auf dem Begrüßungsbildschirm: + +1. **`RESERVIERTE_BEREICHE`** in `view-models/dashboard.vm.ts` — die Kacheln als + Datensatz, mit Titel, Beschreibung, Widget-Domäne und Quell-Feature. +2. **Ein markierter Kommentarblock in `pages/DashboardSeite.tsx`** an genau der + Stelle im Raster, an die sie gehören — mit den konkreten Werten + (`` mit `start={0}`, `{4}`, `{8}`). +3. **Die Bausteingalerie unter `/komponenten`**, Abschnitt „Reservierte + Kacheln" — dort sind sie gestaltet zu sehen. + +Alle drei sind im Designer-Brief P11 benannt und haben in HiveGrid bereits ihre +Widget-Domäne (`tasks`, `schedule`, `hr`). Sie brauchen kein neues Raster, nur +Daten. + +Gestaltet sind die Kacheln bewusst **ohne erfundene Zahlen**. „2 neue Anträge" aus dem Nichts liest sich in einer Abnahme wie eine fertige Funktion, und -irgendwann fragt jemand, warum die Zahl nie hochzählt. Die drei Kacheln stehen -gestrichelt und leer da und nennen, aus welchem Feature sie ihre Daten -bekommen werden. +irgendwann fragt jemand, warum die Zahl nie hochzählt. ### Die Doppelung, die jetzt im Repo steht diff --git a/features/dashboard/components/dashboard/ReservierteKachel.tsx b/features/dashboard/components/dashboard/ReservierteKachel.tsx index 630fd38..66a7aba 100644 --- a/features/dashboard/components/dashboard/ReservierteKachel.tsx +++ b/features/dashboard/components/dashboard/ReservierteKachel.tsx @@ -8,7 +8,13 @@ import type { ReservierterBereich } from "../../view-models/dashboard.vm"; * Das Dashboard zeigt heute nur Analytics, wird aber mehr: eigene Aufgaben, * Termine des Tages, offene HR-Anträge — alle drei stehen im Designer-Brief * P11 und haben in der Software bereits ihre Widget-Domäne (`tasks`, - * `schedule`, `hr`). Diese Kacheln halten ihnen den Platz frei. + * `schedule`, `hr`). + * + * **Diese Kacheln stehen nicht auf dem Dashboard**, sondern in der + * Bausteingalerie unter `/komponenten`. Ein Begrüßungsbildschirm ist kein Ort + * für Ankündigungen: Wer sich morgens anmeldet, will seine Lage sehen und + * nicht lesen, was später einmal kommt. Für den Einbau ist die Stelle im + * Raster als Kommentarblock in `pages/DashboardSeite.tsx` markiert. * * Sie zeigen ausdrücklich **keine erfundenen Zahlen**. Eine Kachel mit * „2 neue Anträge" aus dem Nichts liest sich in einer Abnahme wie eine diff --git a/features/dashboard/pages/DashboardSeite.tsx b/features/dashboard/pages/DashboardSeite.tsx index d9278b5..0bfe03e 100644 --- a/features/dashboard/pages/DashboardSeite.tsx +++ b/features/dashboard/pages/DashboardSeite.tsx @@ -3,7 +3,6 @@ import React from "react"; import Link from "next/link"; import { Begruessung } from "../components/dashboard/Begruessung"; -import { ReservierteKachel } from "../components/dashboard/ReservierteKachel"; import { Widget, WidgetRaster } from "../components/dashboard/WidgetRaster"; import { WidgetKachel } from "../components/dashboard/WidgetKachel"; import { KPICard } from "../components/cards/KPICard"; @@ -181,27 +180,30 @@ export function DashboardSeite({ vm }: { vm: VMState }) { - {/* Trennung vor den leeren Plätzen: Ohne sie stehen drei Kacheln - ohne Inhalt neben sechs mit Inhalt, und der Leser sucht den - Ladefehler. Die Überschrift beantwortet die Frage vorher. */} - -
-

- Kommt noch -

-

- Das Dashboard zeigt heute nur Auswertungen. Diese drei Bereiche sind dafür - vorgesehen und haben in HiveGrid bereits ihre Widget-Domäne — sie brauchen kein - neues Raster, nur Daten. -

-
-
+ {/* ──────────────────────────────────────────────────────────────── + HIER GEHT ES WEITER — an dieser Stelle, nicht woanders. - {d.reserviert.map((bereich, index) => ( - - - - ))} + Das Dashboard zeigt heute nur Auswertungen. Es wird mehr: eigene + Aufgaben, Termine des Tages, offene HR-Anträge. Alle drei stehen + im Designer-Brief P11 und haben in HiveGrid bereits ihre + Widget-Domäne (`tasks`, `schedule`, `hr`) — sie brauchen kein + neues Raster, nur Daten. + + Konkret kommen sie als drei weitere `` mit + `start={0}`, `{4}` und `{8}` unter diese Zeile. Das Raster darüber + bleibt dabei unangetastet; genau dafür ist es aus + `DashboardPage.tsx` übernommen. + + Die Kacheln sind beschrieben in `RESERVIERTE_BEREICHE` + (view-models/dashboard.vm.ts) und zu sehen unter „/komponenten", + Abschnitt „Dashboard-Kacheln". Der Zuschnitt steht in + docs/SCOPE-ANALYTICS-DASHBOARD.md, Abschnitt 3a. + + Warum sie hier nicht als Platzhalter stehen: Der + Begrüßungsbildschirm ist kein Ort für Ankündigungen. Wer sich + morgens anmeldet, will seine Lage sehen und nicht lesen, was + später einmal kommt. + ──────────────────────────────────────────────────────────────── */} diff --git a/features/dashboard/pages/KomponentenSeite.tsx b/features/dashboard/pages/KomponentenSeite.tsx index 8ad7be0..dcb80b0 100644 --- a/features/dashboard/pages/KomponentenSeite.tsx +++ b/features/dashboard/pages/KomponentenSeite.tsx @@ -19,6 +19,7 @@ import { AuftragBadge, RechnungBadge } from "../components/tables/StatusBadge"; import { SeitenZustand } from "../components/layout/SeitenZustand"; import { WidgetKachel } from "../components/dashboard/WidgetKachel"; import { ReservierteKachel } from "../components/dashboard/ReservierteKachel"; +import { RESERVIERTE_BEREICHE } from "../view-models/dashboard.vm"; import { Begruessung } from "../components/dashboard/Begruessung"; import type { VMState } from "../view-models"; import { @@ -346,18 +347,20 @@ export function KomponentenSeite() { /> - + - + + +
+ {RESERVIERTE_BEREICHE.map((bereich) => ( + + ))} +
+ +