# Die Seitenleiste der Konsole — Entwurf

**Stand:** 2026-08-04 · freigegeben vom Betreiber

## Warum

Achtundzwanzig Einträge in sieben Gruppen, und die Aufteilung hielt keine Regel
durch. Die Gruppe „System" war der Platz für alles, was sonst nirgends hinpasste:
Mail-Einrichtung neben einem Rechtsdokument, neben den persönlichen
Kontoeinstellungen, neben der Mitarbeiterverwaltung, und ganz unten eine
Aufgabenliste. Der Betreiber hat es so beschrieben: „offene Punkte ist der letzte
Punkt, dann Rolle drüber und Einstellungen wieder drüber — irgendwie passt die
Aufteilung überhaupt nicht zusammen."

Dazu kam die Streuung: Mail lag in **drei** Gruppen — Versandtakt unter *Betrieb*,
Protokoll und Vorlagen unter *Post*, die Einrichtung unter *System*.

Und die Seite, die sagt, was liegt („Offene Punkte"), stand ganz unten.

## Die zwei Entscheidungen

**Erstens: Selten benutztes verlässt die Seitenleiste.** Was man einmal einrichtet
und danach kaum wieder anfasst, kommt in einen eigenen Bereich hinter einem
einzigen Eintrag. Der Betreiber hat dabei entschieden, dass **Pakete**,
**Vorlagen** und **Mail-Vorschau** ebenfalls dorthin gehören — Rechenzentren,
Proxy-Hosts und VPN dagegen bleiben im Tagesgeschäft.

**Zweitens: „Braucht dich" steht oben.** Drei Seiten, auf denen etwas auf jemanden
wartet, bilden einen eigenen Block ganz oben, mit einer Zahl daneben. Das ist die
Frage, mit der man eine Konsole öffnet — *muss ich gerade etwas tun?* — und sie
wurde bisher nirgends beantwortet.

## Die Seitenleiste

```
  Übersicht

  BRAUCHT DICH
    Offene Punkte          7
    Störungen              2
    Zahlungsprobleme       1

  KUNDEN          Kunden · Instanzen
  MASCHINEN       Hosts · Rechenzentren · Kapazität · Proxy-Hosts · VPN
  LÄUFT GERADE    Bereitstellung · Wartung · Versandtakt
  GELD            Umsatz · Rechnungen · Finanzen
  POST            Posteingang · Mail-Protokoll

  Einrichtung
```

Zwanzig Einträge statt achtundzwanzig, und **jede Seite steht genau einmal**.
Störungen zieht aus *Läuft gerade* nach oben, Zahlungsprobleme aus *Geld* — sie
ziehen um, sie verdoppeln sich nicht. Eine Seite an zwei Stellen ist ihre eigene
Verwirrung.

## Die Zahlen

| Eintrag | Quelle | Kosten |
|---|---|---|
| Offene Punkte | `Register::counts()` | im Speicher, keine Abfrage |
| Störungen | ungelöste Störungen | eine Zählabfrage |
| Zahlungsprobleme | unbeglichene Fälle | eine Zählabfrage |

Zwei Abfragen je Seitenaufruf, für 60 Sekunden zwischengespeichert. Die
Seitenleiste rendert auf jeder Konsolenseite; ohne Zwischenspeicher wäre das eine
Abgabe, die man später sucht.

**Bei null erscheint keine Plakette, der Eintrag bleibt stehen, die Gruppe bleibt
stehen.** Ein Block, der mal da ist und mal nicht, lässt einen suchen, ob man ihn
übersehen hat — und eine Seite, die bei null verschwindet, ist bei null nicht mehr
erreichbar.

## Der Einrichtungsbereich

Ein Eintrag unten in der Seitenleiste, dahinter eine Seite mit Kacheln in vier
Gruppen:

- **Zustellung** — E-Mail · Vorlagen · Mail-Vorschau
- **Angebot** — Pakete
- **Zugang** — Rollen · Einstellungen · Integrationen
- **Haus** — Bereitschaft · AV-Vertrag

Bewusst **keine Reiterleiste**: neun Reiter wären wieder das, was wir gerade
abschaffen. Bewusst **kein Zusammenlegen der Seiten**: sie behalten ihre Routen,
ihre Berechtigungen und ihren Inhalt. Es ändert sich nur der Weg dorthin. Damit
bleibt der Umbau klein und rückholbar; ob einzelne dieser Seiten später
verschmelzen, ist eine eigene Entscheidung mit eigenem Entwurf.

Eine Kachel, für die die Berechtigung fehlt, erscheint nicht — dieselbe Regel, die
die Seitenleiste heute schon je Eintrag anwendet.

## Was im Code passiert

| Stelle | Änderung |
|---|---|
| `App\Support\Navigation::console()` | neue Gruppen, Einträge umsortiert, Zählschlüssel je Eintrag |
| `resources/views/components/shell/nav.blade.php` | optionale Zählplakette neben einem Eintrag |
| `App\Livewire\Admin\Setup` + Route + `lang/{de,en}/setup.php` | die neue Kachelseite |
| `App\Support\Navigation` | die drei Zahlen, zwischengespeichert |

`Navigation::currentLabel()` trifft über den **Routennamen**, nicht über den Pfad —
Einträge zwischen Gruppen zu verschieben bricht die Brotkrumen also nicht.

## Zusicherungen (Tests)

1. Jede Konsolenseite steht in der Seitenleiste oder im Einrichtungsbereich —
   **genau einmal**, nirgends zweimal, keine fällt heraus.
2. Eine Kachel und ein Seitenleisteneintrag ohne Berechtigung erscheinen nicht.
3. Bei null erscheint keine Plakette; der Eintrag bleibt trotzdem da.
4. Die Zahlen kommen aus dem Zwischenspeicher, nicht bei jedem Aufruf aus der
   Datenbank.

## Offen gelassen

Der Betreiber hat zugestimmt mit dem Vorbehalt, sich „Braucht dich" erst ansehen zu
wollen. Fällt der obere Block weg, bleibt die Ordnung darunter unverändert
bestehen — sie ist unabhängig davon entworfen.
