Screenshots: restliche UI-Bereiche bebildert (65 Bilder), UI-Abgleich korrigiert

- Anwender: Fremdschluessel-Drawer, Uebersetzungsleiste, Feldsuche, JSON-Overlay, Medien-Lightbox, Upload-Warteschlange, Fremddatei, Stellvertretung
- Admin: Token-Liste/-Anlage, Projekt-Admin, Team-/Org-Drawer, Theme-Umschalter, Chat-Verlauf, Voice-Filter, Befehlspalette (konzept.md)
- Korrigiert: Token-Anlage nur im Profil, allowReload/-Backup/-Snapshots sind config.yml-Flags, UI-Strings (Serververwaltete Felder, Ausgewaehlte Medien), ADR-0003 ohne stillgelegten Sync
- Nicht darstellbar (im Mock): Session-Timeout, Suchindex-Banner, KI-Werkzeugstatus/Vision, Drill-Down, Inline-Anlage - als Platzhalter begruendet
- Build: 71 Seiten gruen, 0 tote Links/Anker/Bildpfade
This commit is contained in:
apairon committed 2026-10-17 02:28:56 +00:00
1 parent 1928922e07
commit 7cf81be169
32 files changed
+108 -20

No files matched your search

+6 -7
View File
@@ -1,5 +1,5 @@
{
"generatedAt": "2026-10-17T01:48:54.973Z",
"generatedAt": "2026-10-17T02:28:29.469Z",
"stats": {
"files": 70,
"byDir": {
@@ -46,21 +46,19 @@
"src/content/docs/reference/openapi.md:6 Platzhalter"
],
"t1Refs": [
"src/content/docs/admin/konzept.md",
"src/content/docs/admin/setup.md",
"src/content/docs/adr/0003-selbstlaeufer.md"
],
"tibiAdminRefs": [
"src/content/docs/admin/aktionen.md (2×)",
"src/content/docs/admin/ansichten-listen.md (2×)",
"src/content/docs/admin/benutzer-rechte.md (2×)",
"src/content/docs/admin/benutzer-rechte.md (7×)",
"src/content/docs/admin/customizing.md (2×)",
"src/content/docs/admin/eintrags-editor.md (2×)",
"src/content/docs/admin/exporte.md (2×)",
"src/content/docs/admin/ki-funktionen.md (2×)",
"src/content/docs/admin/konzept.md (3×)",
"src/content/docs/admin/ki-funktionen.md (3×)",
"src/content/docs/admin/konzept.md (4×)",
"src/content/docs/admin/medien.md (2×)",
"src/content/docs/admin/setup.md (4×)",
"src/content/docs/admin/setup.md (5×)",
"src/content/docs/adr/0001-starlight.md (1×)",
"src/content/docs/adr/0002-code-schlaegt-doku.md (2×)",
"src/content/docs/adr/0003-selbstlaeufer.md (1×)",
@@ -68,6 +66,7 @@
"src/content/docs/anwender/benutzer-teams.md (1×)",
"src/content/docs/anwender/exportieren.md (3×)",
"src/content/docs/anwender/ki-nutzen.md (1×)",
"src/content/docs/anwender/lesen-suchen-filtern.md (1×)",
"src/content/docs/anwender/medien.md (1×)",
"src/content/docs/anwender/orientierung.md (2×)",
"src/content/docs/anwender/seiten-bauen.md (1×)",
+14 -2
View File
@@ -5,8 +5,8 @@
**Stand:** 2026-10-16, umgesetzt am 2026-10-17.
> **Zahlen in §1 sind der Audit-Stand vom 16.10.** (61 Seiten, 30 Screenshots) — bewusst als Schnappschuss stehen gelassen.
> **Ist-Stand nach der Umsetzung (17.10.):** 70 Inhaltsseiten / 8.264 Zeilen, 49 Screenshots (40 Anwender, 9 Admin), 71 Build-Seiten,
> 0 tote Links, 8 legitime „Platzhalter"-Marker, `npm run build` grün. Fortschritt siehe §18.
> **Ist-Stand nach der Umsetzung (17.10.):** 70 Inhaltsseiten, **65 Screenshots** (48 Anwender, 17 Admin), 71 Build-Seiten,
> 0 tote Links/Anker/Bildpfade, 8 legitime „Platzhalter"-Marker, `npm run build` grün. Fortschritt siehe §18. Noch ohne Bild: Suchindex-Banner, Session-Timeout, Drill-Down/Sprungziele, Inline-Anlage/Rückverweise, KI-Vision-/Werkzeug-Ansicht (alle im Mock nicht darstellbar), `anwender/hilfe.md`.
**Rahmen (aus der Zielsetzung):**
Die Doku **soll** beschreiben: (a) alle Funktionen des tibi-server für Entwickler und Administratoren beim Aufsetzen und Betreiben von Projekten, (b) alle tibi-admin-nova-Funktionen, die Entwickler zum korrekten Konfigurieren brauchen, (c) alle tibi-admin-nova-Funktionen aus Anwendersicht anhand von Screenshots (Mock-Projekt `corporate`, nie `t1`).
@@ -751,6 +751,18 @@ Statuslegende: ✅ erledigt und reviewed · 🔄 läuft · ⬜ offen · 🔴 blo
| Issues für die Nachbar-Repos | ✅ | `plans/offene-issues.md`: 7× tibi-server, 4× tibi-admin-nova, 2× tibi-types (mit Beleg) |
| P9 Repo-Hygiene (Löschungen) | ⬜ | **bewusst nicht ausgeführt** — Löschen in fremden Repos braucht Freigabe; Kandidatenliste steht in §12.1 |
### Welle G — Screenshot-Nachtrag (restliche UI-Bereiche) · Stand 2026-10-17 ✅
| Punkt | Status | Ergebnis |
|---|---|---|
| Anwender-Motive (G1) | ✅ | 8 neue Bilder: FK-Drawer, Sprachleiste/Übersetzen, Feldsuche, JSON-Overlay, Medien-Lightbox, Upload-Warteschlange, Fremddatei, Stellvertretungs-Banner; 3 neue Kurzabschnitte, 3 Abschnitte erweitert |
| Admin-Motive (G2) | ✅ | 9 neue Bilder: Token-Liste, Token-Anlage (Profil), Projekt-Admin-Drawer, Team- und Org-Drawer, Theme-Umschalter, Chat-Verlauf, Voice im Filter |
| Befehlspalette im Admin | ✅ | neuer Abschnitt + Bild in `admin/konzept.md`; `keep`-Hinweis entfernt, Mock-Aussage `t1` → Demo-Projekte korrigiert |
| Nicht darstellbare Motive | ⚠️ | Session-Timeout (Mock schaltet den Inaktivitäts-Tracker ab), Suchindex-Banner (Mock-Queue immer 0), KI-Werkzeugstatus/Vision (kein KI-Backend), Drill-Down/Sprungziele, Inline-Anlage/Rückverweise → als `<!-- Screenshot (T-SHOTS) … -->` markiert, Grund dokumentiert |
| Textkorrekturen aus dem UI-Abgleich | ✅ | „Token anlegen nur im Profil" (Token-Admin ist name-only/edit), `allowReload/-Backup/-Snapshots` sind reine `config.yml`-Flags (0 Treffer im Frontend), „**Serververwaltete Felder**", „**Ausgewählte Medien**" |
| Welle-G-Review | ✅ | 17 Bilder geprüft: keine verwaisten Dateien, keine toten Pfade, alle Alt-Texte spezifisch, alle ≤ 200 KB; 3 Muss-Fixes umgesetzt; Urteil „abnehmbar" |
| Build/Audit | ✅ | 71 Seiten grün, 0 tote Links/Anker/Bildpfade, 0 kaputte Tabellen |
### Abschluss-Review (general Subagent) und Nacharbeit · 2026-10-17 ✅
| Befund des Abschluss-Reviews | Nacharbeit |
+1
View File
@@ -178,6 +178,7 @@ Vollständige Prüfung von Code und Doku, dann Abarbeitung in Wellen. Übersicht
| C | P5 `reference/schema-properties.md` (generiert) + Starter-Kapitel + 5 neue Anwender-Seiten | ✅ |
| D | P7 Stil, Starlight, Struktur, UI-Text-Treue, Kontrast | ✅ |
| E | P6b Screenshots: 9 Admin- + 10 Anwender-Bilder aus `corporate` | ✅ |
| G | Screenshot-Nachtrag: restliche UI-Bereiche (8 Anwender + 9 Admin + Befehlspalette) | ✅ (65 Bilder gesamt) |
| F | P8 Meta (AGENTS.md, Werkzeuge, Issues) | ✅ |
| — | P9 Repo-Hygiene (Löschungen in Nachbar-Repos) | ⬜ Freigabe nötig |
Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

+2 -1
View File
@@ -55,6 +55,7 @@ Manche Sammlungen haben Reiter über der Liste (`meta.subNavigation`, z. B. `?su
- Ausgeschlossen sind standardmäßig: Fremd-Medien-Widgets (`foreignMedia`, `foreignFile` u. ä.), native Datei-Felder und reine Objekt-Kästen ohne angemeldete Unterfelder.
- Fremdschlüssel-Felder bieten eine Auswahl mit Suche statt Freitext.
- Die Vorschläge für Auswahlwerte (`_facet`-Route) liefern je Wert die Trefferzahl mit.
- Textfelder (z. B. **Seitentitel**) zeigen bei Fokus ein Mikrofon-Symbol: Antippen diktiert den Filterwert statt Tippen (`ui/VoiceFilterTextInput.svelte`, nur im fokussierten Feld sichtbar). Ohne Mikrofon-Unterstützung im Browser bleibt das Feld ein reines Textfeld.
</TabItem>
<TabItem label="Blättern">
@@ -100,7 +101,7 @@ Teile eine gefilterte Liste per URL — Empfänger sehen exakt dieselbe Auswahl,
| Gesamtzahl fehlt oder lädt lange | `/_count` auf altem Server nicht verfügbar | Direkt laden lassen (Fallback) oder Server aktualisieren |
| Ansicht startet „falsch“ | `viewHint` der Sammlung schlägt die Startansicht vor | Ansicht einmal wechseln — `view=…` in der URL gewinnt |
![Seitenliste im tibi-admin: Suchfeld mit Suchbegriff, geöffnetes Filter-Popover mit Feld-Filtern und Paginierung in der Fußzeile](../../../assets/admin/admin-ansichten-listen.webp)
![Seitenliste im tibi-admin: geöffneter Filter mit Feld-Filtern, Mikrofon-Symbol im fokussierten Seitentitel-Feld und Paginierung in der Fußzeile](../../../assets/admin/admin-filter-voice.webp)
Anwender-Sicht zum Ändern vieler Einträge auf einmal: [Massenbearbeitung](/anwender/massenbearbeitung/).
+20 -1
View File
@@ -32,9 +32,16 @@ Die Kette lautet **Org → Team → Benutzer → Projekt**. Du pflegst sie im Ad
|---|---|---|
| Benutzer | `UserTab` (Liste mit Suche, Filter, Sortierung, Paginierung), `UserCreateDrawer`, `UserDetailDrawer` | Name, Login, Rolle, Org-/Team-Mitgliedschaften |
| Teams | `TeamTab`, `TeamCreateDrawer`, `TeamDetailDrawer` | Name, Farbe, Org-Zugehörigkeit, Mitglieder, Berechtigungen |
| Orgs | `OrgTab`, `OrgCreateDrawer`, `OrgDetailDrawer` | Name, Mitglieder (`OrgAssignmentSection`), Projekte |
| Projekte | `ProjectAdminView`, `ProjectDetailDrawer`, `ProjectCreateDrawer` | Name, Status (online/offline), Org-Zuordnung, Rechte-Matrix |
Der Team-Drawer zeigt **Einstellungen** mit **Name**, **Organisation**, **Beschreibung** und **Farbe**, darunter die **Berechtigungen** als Chips (Eingabehilfe `z.B. pages, media, admin`, Knopf **Berechtigung hinzufügen**) und die **Teammitglieder** mit **Benutzer anlegen**.
![Team-Drawer im tibi-admin: Einstellungen mit Name, Organisation, Beschreibung und Farbe, Berechtigungs-Chips und Teammitglieder mit Benutzer-Anlegen-Knopf](../../../assets/admin/admin-team-drawer.webp)
Der Org-Drawer zeigt **Einstellungen** (**Name**, **Branche**, **Ort**, **Website**, **Logo ersetzen** / **Logo entfernen**), darunter **Zugeordnete Teams** (**Team anlegen**), **Zugeordnete Benutzer** (**Benutzer anlegen**) und **Zugeordnete Projekte** mit **Metadaten** (Erstellt, Aktualisiert).
![Organisations-Drawer im tibi-admin: Einstellungen mit Name, Branche, Ort und Website, zugeordnete Teams, Benutzer und Projekte](../../../assets/admin/admin-org-drawer.webp)
<Steps>
1. Org anlegen (`OrgCreateDrawer`).
@@ -60,6 +67,14 @@ Die Kette lautet **Org → Team → Benutzer → Projekt**. Du pflegst sie im Ad
Persönliche Token (PATs) pflegst du auf zwei Wegen: im eigenen **Profil** (`TokenSettings.svelte`) oder als Admin im **Token-Reiter** (`TokenAdminTab.svelte`).
Als Admin siehst du unter **Tokens** die Liste **API-Tokens** mit dem Untertitel **Alle Tokens aller Benutzer.** Je Zeile stehen **Name**, **Besitzer**, **Prefix**, **Berechtigungen** und **Zuletzt benutzt**. Über **Aktualisieren** lädst du die Liste neu; je Zeile änderst du den Namen (**Bearbeiten**) oder entziehst den Zugriff (**Widerrufen**). Anlegen geht nur im eigenen Profil.
![Token-Liste im tibi-admin: API-Tokens aller Benutzer mit Name, Besitzer, Prefix, Berechtigungen und Zuletzt-benutzt-Spalte](../../../assets/admin/admin-token-liste.webp)
Im Profil legst du über **Neues Token** einen Drawer mit **Name** (Beispiel `z. B. CI Deploy`) und **Berechtigungen** an. Die Scopes wählst du per Checkbox oder über **Alles auswählen**; dazu kommen **Eigene Scopes (Wildcards)** mit **Hinzufügen**. Ein Ablaufdatum gibt es in der Oberfläche nicht — das Feld existiert nur serverseitig und wird bewusst weder angezeigt noch gesetzt.
![Token anlegen im tibi-admin: Drawer Neues Token mit Namensfeld, Berechtigungs-Checkboxen und eigenen Scopes](../../../assets/admin/admin-token-anlegen.webp)
<Tabs>
<TabItem label="Erstellen">
@@ -80,6 +95,10 @@ Persönliche Token (PATs) pflegst du auf zwei Wegen: im eigenen **Profil** (`Tok
## Projekt-Admin-Token
Die **Projektverwaltung** (`/admin/projects`, `ProjectAdminView.svelte`) listet alle Projekte mit Organisation, Status und Kollektionen. Ein Klick öffnet den Detail-Drawer mit **Einstellungen** (**Name**, **Organisation**, **Beschreibung**, **Namespace**, **Config-Datei**), **Team-Zuordnungen** (**Team zuordnen**) und **Zugehörige Benutzer**. Die vier Token-Flags unten stehen nicht in der Oberfläche — sie kommen ausschließlich aus `api/config.yml`.
![Projektverwaltung im tibi-admin: Projektliste mit Detail-Drawer zu Einstellungen, Team-Zuordnungen und zugehörigen Benutzern](../../../assets/admin/admin-projekt-rechte.webp)
Der Admin ruft Reload, Suchindex-Aufbau, Backup und Snapshots mit einem **Projekt-Token** auf.
Welche dieser vier Operationen das Token darf, steuern vier Flags in `api/config.yml` (`admin.tokens[]`):
+4
View File
@@ -20,6 +20,10 @@ Die KI im **tibi-admin** (Verwaltungs-Backend, Release Nova) hilft dir beim Redi
Was die KI dabei sieht (`aiController.ts`, `AiChat.svelte`): Neben dem UI-Snapshot hängt der Chat deine Aktionen außerhalb des Chats an die nächste Nachricht an (`[User actions performed outside of chat] … [User message] …`) und markiert die erste Nachricht mit `[lang=de]` (bzw. deiner Sprache). Manche Provider verlangen die Systemnachricht genau einmal vorn — deshalb wandern Aktionen in die Benutzer-Nachricht, nicht in eine zweite Systemnachricht.
Über das Menü neben **Nova** verwaltest du den **Chat-Verlauf**: **Neuer Chat** beginnt ein leeres Gespräch, darunter listet der Admin gespeicherte Konversationen. Der Verlauf liegt nur lokal im Browser (`localStorage`); ohne gespeicherte Gespräche steht dort **Noch keine Konversationen**.
![Chat-Verlauf im tibi-admin: geöffneter Nova-Chat mit Verlaufsmenü, Neuer-Chat-Eintrag und Hinweis auf leere Konversationsliste](../../../assets/admin/admin-ki-verlauf.webp)
| Baustein | Datei | Aufgabe |
|---|---|---|
| Verlauf | `lib/aiChatHistory.ts` | Gespräche in `localStorage` (`tibi-ai-conversations`, weiches Limit ~4 MB, älteste zuerst raus) |
+8 -4
View File
@@ -5,14 +5,18 @@ description: Was tibi-admin ist, wie es läuft und wie es zum Server passt.
import { Card, CardGrid } from '@astrojs/starlight/components';
> **Handseite.** Wird vom Sync nie überschrieben (`keep`).
**tibi-admin** ist das Verwaltungs-Backend — die Bedienoberfläche zum Tibi-Server (aktuelles Release **Nova**). Code-Repo: `tibi-admin-nova` — das ist das einzig gültige Repo, alte `tibi-admin`-Repos werden ignoriert. Projekt-Websites (kleine Websites, Shops, Intranet-Anwendungen aus `tibi-svelte-starter`) sind eigenständig und laufen getrennt davon.
- Svelte-SPA als statisches Bundle, läuft lokal im Mock-Modus (Projekt `t1`) und in Staging/Live hinter Reverse Proxy gegen den echten tibi-server.
- Svelte-SPA als statisches Bundle, läuft lokal im Mock-Modus (Demo-Projekte wie `corporate`) und in Staging/Live hinter Reverse Proxy gegen den echten tibi-server.
- Laufzeitwerte in `frontend/assets/system.config.json`, Proxy-Ziele/Modelle in `config/ai-proxy.config.json`.
- Screens: `frontend/src/lib/components/admin/` (Hub, Orgs, Teams, User, Projekte) und `components/entry/` (Editor, Widgets, Drawers, Preview).
## Schnellsuche und Tastatur
Die **Befehlspalette** öffnest du mit `/` (oder `Strg`/`Cmd` + `K`) — sie springt zu Sammlungen, Einträgen, Aktionen und Verwaltungsseiten, ohne dass du dich durch die Navigation klickst. `?` zeigt alle Tastenkürzel (Vollreferenz: [Tastatur und Schnellsuche](/reference/tastatur-kurzbefehle/)).
![Befehlspalette im tibi-admin über Corporate Website: Suchfeld mit dem Hinweis „Befehl eingeben…", Trefferliste mit Navigation, Sammlungen und Aktionen](../../../assets/admin/admin-befehlspalette.webp)
## Wo finde ich was?
<CardGrid stagger>
@@ -33,4 +37,4 @@ import { Card, CardGrid } from '@astrojs/starlight/components';
</Card>
</CardGrid>
Verifiziert am 2b091d8 2026-10-13 (tibi-admin-nova)
Verifiziert am 2b091d8 2026-10-17 (tibi-admin-nova)
+7 -1
View File
@@ -65,7 +65,7 @@ Nützliche Ziele: `make docker-ps`, `make docker-logs`, `make docker-down`, `mak
| Modus | Erkennen | Verhalten |
|---|---|---|
| Echter Server | `API_BASE` zeigt auf laufenden tibi-server | Alle Daten live; Login per Benutzername/Passwort |
| Mock-Modus | Kein Server erreichbar / Mock-Flag (`isMockMode()`) | Lokale Demo-Daten, Demo-Projekt `t1`; Actions simulieren Fortschritt (`simulateMockProgress`) |
| Mock-Modus | Kein Server erreichbar / Mock-Flag (`isMockMode()`) | Lokale Demo-Daten aus `frontend/assets/mock/` mit den Demo-Projekten (`corporate`, `blog`, `shop`, `events`, `intranet`); Actions simulieren Fortschritt (`simulateMockProgress`) |
- Laufzeitwerte liegen in `frontend/assets/system.config.json` (KI-Endpunkte, TTS-Stimmen); Proxy-Ziele und Modelle in `config/ai-proxy.config.json` — siehe [KI-Funktionen](/admin/ki-funktionen/).
- Fehlerbilder bei falscher Verbindung: Login-Fehlerbox, Netzwerkfehler bei Listen/Actions — dann `API_BASE`, Server-Container (`make docker-ps`) und [Token-Köpfe](/reference/token-koepfe/) prüfen.
@@ -88,6 +88,12 @@ Stimmen (Schema-Enum): `eva-de` (Standard), `kerstin-de`, `ramona-de`; Tempo-Def
Fehlt die Datei oder ist sie ungültig, fällt der Admin still auf die eingebauten Defaults zurück (`console.warn`, `runtime-system-config.ts:219-222`) — die Werte entsprechen der ausgelieferten `system.config.json`. Eigene Werte werden tief mit den Defaults verschmolzen (`deepMerge`) und danach sanitiert (unbekannte Engine → `auto`, leere Stimmenliste → Defaults, TTS-Tempo auf `min`/`max` geklemmt).
## Darstellung (Hell/Dunkel)
Den Theme-Umschalter findest du rechts oben in der Kopfzeile (`ui/ThemeToggle.svelte`). Er zeigt als Tooltip **Hell** oder **Dunkel** — je nachdem, in welchen Modus du wechselst. Deine Wahl landet in `localStorage` (`tibi-theme`) und gilt schon vor dem ersten Zeichnen, damit nichts flackert.
![Theme-Umschalter im tibi-admin: Kopfzeile mit Tooltip Dunkel zum Wechsel in den dunklen Modus](../../../assets/admin/admin-theme.webp)
## Prüfen
```sh title="Build und Tests"
+3 -3
View File
@@ -4,6 +4,6 @@ description: Wie weiterentwickelnde Agenten die Doku automatisch mitpflegen.
---
- **Datum:** 2026-10-16
- **Kontext:** Tibi-Server, tibi-admin und Starter entwickeln sich weiter. Die Doku (57 Seiten, Stand 2026-10-16) soll nicht veralten.
- **Entscheidung:** Definition of Done für jede Änderung an API, Hooks, Collections, Permissions, Jobs, Realtime, LLM, MCP, Suche, Deploy oder Admin-UX: passende Doku-Seite aktualisieren + `Verifiziert am <Commit> <Datum>` erneuern + `npm run sync && npm run build` grün. Screenshots nur aus Mock-Projekt `corporate` (nie `t1`), Auftrag unter `plans/t-shots-arbeitsauftrag.md`. Vollständigkeits-Tabelle in `plans/doku-ausbau.md` bei neuen Fähigkeiten erweitern (1 Fähigkeit = 1 Dokustelle).
- **Folgen:** Diese Regel in die Agenten-Regeln von `tibi-server`, `tibi-admin-nova` und `tibi-svelte-starter` spiegeln (jeweils `AGENTS.md`-Ergänzung, noch offen). CI in tibi-docs prüft Drift (Docs neuer als Sync, Schema-Feld ohne Widget-Doku).
- **Kontext:** Tibi-Server, tibi-admin und Starter entwickeln sich weiter. Die Doku (70 Seiten, Stand 2026-10-17) soll nicht veralten.
- **Entscheidung:** Definition of Done für jede Änderung an API, Hooks, Collections, Permissions, Jobs, Realtime, LLM, MCP, Suche, Deploy oder Admin-UX: passende Doku-Seite aktualisieren + `Verifiziert am <7-stelliger-hash> <JJJJ-MM-TT> (<repo>)` erneuern + `node scripts/audit-docs.mjs && npm run build` grün (der frühere Server-Sync ist stillgelegt, siehe `AGENTS.md` §4). Screenshots nur aus Mock-Projekt `corporate` (nie `t1`), Auftrag unter `plans/t-shots-arbeitsauftrag.md`. Vollständigkeits-Tabelle in `plans/doku-ausbau.md` bei neuen Fähigkeiten erweitern (1 Fähigkeit = 1 Dokustelle). Für Schemas: `npm run gen:schemas` laufen lassen statt Werte abzuschreiben.
- **Folgen:** Diese Regel in die Agenten-Regeln von `tibi-server`, `tibi-admin-nova` und `tibi-svelte-starter` spiegeln (jeweils `AGENTS.md`-Ergänzung, noch offen). CI in tibi-docs prüft Drift: `scripts/audit-docs.mjs` (Links, Anker, Bilder, Tabellen, Stempel) und `npm run gen:schemas` müssen ohne Änderung durchlaufen.
+3 -1
View File
@@ -54,7 +54,9 @@ Führe höchstens drei Versuche durch und bitte danach deine Betreuung um ein ne
## Automatisches Sitzungsende
Bei längerer Inaktivität meldet dich tibi-admin automatisch ab. Es erscheint der Hinweis **Sitzung abgelaufen – bitte neu anmelden**.
Kurz vor dem automatischen Abmelden erscheint der Hinweis **Sitzung läuft ab** mit der Meldung „Du wirst wegen Inaktivität gleich automatisch abgemeldet.". Wähle **Angemeldet bleiben**, um weiterzuarbeiten, oder **Jetzt abmelden**, um die Sitzung sofort zu beenden. Reagierst du nicht, meldet dich tibi-admin automatisch ab und es erscheint der Hinweis **Sitzung abgelaufen – bitte neu anmelden**.
<!-- Screenshot (T-SHOTS): Hinweisdialog Sitzung läuft ab mit Angemeldet bleiben und Jetzt abmelden, Mock-Projekt corporate, Alt-Text deutsch -->
<Steps>
@@ -63,6 +63,10 @@ Gib keine Zugänge auf Zuruf frei und ändere keine Rechte eigenmächtig. Falsch
Meldet sich der Support mit deinem Konto an, um dir zu helfen (Stellvertretung über **Als dieser Benutzer einloggen**), geschieht das ausschließlich nach Absprache mit dir oder deiner Teamleitung. Sprich ihn an, wenn du unsicher bist. Du musst dafür nichts einrichten.
Während der Stellvertretung zeigt ein Banner über der Seite **Eingeloggt als @Benutzername** mit dem Hinweis **Impersonation** und rechts die Schaltfläche **Zurück zur Administration**. Alles, was du in dieser Zeit tust, geschieht im Namen des vertretenen Kontos. Zum Beenden klickst du auf **Zurück zur Administration** (**Beenden**) und landest wieder in deiner eigenen Sitzung.
![Stellvertretungsbanner Eingeloggt als mit Zurück zur Administration auf der Corporate Website](../../../assets/anwender/benutzer-stellvertretung.webp)
Was du über das Verwaltungs-Backend wissen musst, steht unter [Admin-Konzept](/admin/konzept/).
Verifiziert am 2b091d8 2026-10-17 (tibi-admin-nova)
@@ -49,6 +49,24 @@ Links steht das Formular, rechts stehen Zusatzinformationen. Arbeite die Felder
Ein Verweis verbindet zwei Inhalte, beispielsweise eine Nachricht mit einem Bild aus [Bilder und Dateien](/anwender/medien/). Du wählst ihn im Fenster **Durchsuchen** und übernimmst ihn mit **Auswählen**.
</Aside>
Das Fenster **Einträge durchsuchen** listet alle Einträge der verknüpften Sammlung mit dem Suchfeld **Suche in Kollektion…**, Filter und der Umschaltung zwischen **Tabelle** und **Karten**. Bereits verknüpfte Einträge erscheinen als Chips und lassen sich über das Kreuz wieder **Entfernen**.
![Auswahlfenster Einträge durchsuchen mit Journal-Liste, Autor-Chips und Trefferzähler](../../../assets/anwender/eintrag-fremdschluessel.webp)
## Sprachen und Übersetzungen
Arbeitet deine Sammlung mehrsprachig, wechselst du oben im Editor mit **DE** und **EN** (Tastenkürzel Strg + L) die Bearbeitungssprache. Jedes übersetzbare Feld zeigt daneben seinen Sprachstand an; über **Übersetzen** am Feld überträgst du den Text in die andere Sprache und prüfst ihn danach Zeichen für Zeichen.
![Eintrag-Editor mit Sprachleiste DE EN und Übersetzen-Schaltflächen an den Feldern](../../../assets/anwender/eintrag-sprachen.webp)
## Feldsuche und JSON-Ansicht
In langen Formularen drückst du Strg + F (am Mac Cmd + F) und suchst im Fenster **Feld oder Wert suchen…** nach Feldnamen oder Inhalten; Enter springt zum Treffer. Über die Befehlspalette öffnest du **Eintrag als JSON bearbeiten**: Oben stehen die **Serververwaltete Felder** (nur lesbar), darunter der JSON-Text. Mit **Übernehmen** speicherst du, mit **Abbrechen** verwirfst du die Ansicht ohne Änderung.
![Feldsuche mit Trefferliste nach Feldern und Sprachen](../../../assets/anwender/eintrag-feldsuche.webp)
![Dialog Eintrag als JSON bearbeiten mit serververwalteten Feldern und JSON-Text](../../../assets/anwender/eintrag-json.webp)
## Speichern und prüfen
<Steps>
@@ -53,6 +53,12 @@ Liefert die Suche keine Treffer, gehe wie folgt vor:
![Suche nach Operations mit einem Treffer in der Journal-Liste](../../../assets/anwender/lesen-suche.webp)
## Hinweis zum Suchindex
Arbeitet deine Sammlung mit Hintergrundsuche, baut tibi-admin den **Suchindex** im Hintergrund auf. Solange Einträge offen sind, zeigt ein Hinweisbanner über der Liste „wird im Hintergrund aktualisiert" mit der Zahl der offenen Einträge. Du kannst normal weiterarbeiten; sobald der Zähler auf null steht, verschwindet das Banner von selbst. Über **Details ein-/ausblenden** siehst du den Stand je Sammlung, bei Problemen stößt **Neu aufbauen** den Aufbau erneut an.
<!-- Screenshot (T-SHOTS): Suchindex-Hinweisbanner im Projekt-/Sammlungs-Header, Mock-Projekt corporate, Alt-Text deutsch -->
## Filtern und sortieren
Filtern bedeutet: Du zeigst nur Einträge mit einer bestimmten Eigenschaft, beispielsweise einer Sprache. Sortieren bedeutet: Du änderst die Reihenfolge.
+12
View File
@@ -23,6 +23,10 @@ Bilder und Dateien liegen in einer eigenen Sammlung, meist Mediathek genannt. Vo
In der **Medienvorschau** blätterst du mit **Vorheriges** und **Nächstes**. Schließe sie mit **Schließen**, um zum Raster zurückzukehren.
</Aside>
![Geöffnete Medienvorschau mit Dateiname, Zoom- und Navigationsschaltflächen](../../../assets/anwender/medien-lightbox.webp)
Oben in der Vorschau stehen Position, Dateiname und Größe. Daneben findest du **Hereinzoomen** und **Herauszoomen** sowie **Bearbeiten**, **Herunterladen** und **In neuem Tab öffnen**.
## Datei hochladen
<Steps>
@@ -40,6 +44,10 @@ Titel und Beschreibung werden aus dem Dateinamen vorbefüllt. Prüfe sie und kor
![Hochladen einer Datei mit Fortschrittsanzeige in der Mediathek](../../../assets/anwender/medien-upload.webp)
Sobald du Dateien ablegst, gleitet unten die Warteschlange ein („0 von 1 hochgeladen") mit Dateiname und Größe. **Schnell-Upload** lädt sofort hoch, **Bearbeiten & hochladen** öffnet vorher den Dialog **Medieneintrag bearbeiten**. Über **Zurück zur Warteschlange** kehrst du jederzeit zur Übersicht zurück.
![Upload-Warteschlange mit einer Datei, Schnell-Upload und Bearbeiten und hochladen](../../../assets/anwender/medien-warteschlange.webp)
Wird ein Upload abgelehnt, gehe wie folgt vor:
<Steps>
@@ -80,6 +88,10 @@ Fehlt die Bildbeschreibung, erstellt die KI sie selbst („KI beschreibt das Bil
## Bild in einen Eintrag einbinden
Ist das Bild bereits verknüpft, zeigt das Feld die **Ausgewählte Medien** mit Vorschau, Titel und Beschreibung. Über das Stiftsymbol tauschst du das Bild aus (**Verknüpftes Medium bearbeiten**), über das Kreuz entfernst du die Verknüpfung (**Entfernen**). Noch ohne Bild wählst du über **Vorhandene durchsuchen** aus der Mediathek oder ziehst die Datei direkt auf das Feld (**Dateien hierher ziehen oder klicken**).
![Titelbild-Feld mit Bildvorschau, Beschreibung sowie Bearbeiten- und Entfernen-Schaltflächen](../../../assets/anwender/medien-fremddatei.webp)
<Steps>
1. Öffne den Eintrag, der das Bild benötigt.