Dokumenten-Center
Zweck
Das Dokumenten-Center (/document-center, mit Sub-Pfad /document-center/folder/:folderId) ist die zentrale Ablage für alle Dokumente — manuell hochgeladene Dateien, automatisch erzeugte Belege und entitaets-spezifische Auto-Folder. Es kombiniert eine hierarchische Ordner-Struktur (Drag-Drop), Multi-Select, Vorschau, AI-gestuetztes Datei-Parsing und ein Aktivitaets-Log pro Operation.
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Wirkung | Keycloak-Rolle |
|---|---|---|---|
view | FE_DocumentCenter, DocumentFolder, Document | Center aufrufbar, Ordner und Dokumente lesen | — |
create/update/delete | DocumentFolder, Document | Pflegen | APP_SPEAMCORE_CREATE/UPDATE/DELETE_DOCUMENT_FOLDER, DOCUMENT |
Schritt-für-Schritt-Anleitung
Ordner navigieren
- Dokumenten-Center (
/document-center) öffnen. - Linke Sidebar zeigt den Folder-Tree (Drag-Drop für Reorganisation enabled).
- Klick auf Ordner — der Browser-Bereich rechts zeigt die enthaltenen Dokumente.
- Klick auf ein Dokument — das Preview-Panel rechts zeigt Vorschau und Metadaten.
Datei hochladen
- Drag-Drop einer Datei in den Browser-Bereich.
- Oder über AI-Upload-Dialog — System parst PDF/Image-Inhalte und schlaegt Metadaten vor.
Mehrere Dokumente verschieben
- Multi-Select via Checkbox in der Liste.
- Drag auf den Ziel-Ordner in der Sidebar — Bulk-Add wird ausgeloest.
- Aktivitäten werden im Aktivitaets-Log protokolliert (
documentActivityService.logActivity).
Dokument umbenennen / Link teilen
Rechtsklick auf ein Dokument öffnet das Context-Menu mit Aktionen: Umbenennen (DocRenameModal), Link teilen (DocShareLinkModal), Löschen.

UI-Elemente
Komponente: DocFolderSidebar
Hierarchische Ordnerliste mit Drag-Drop. Pflegen / Verschieben von Ordnern.
Komponente: DocBrowserPanel
Document-Grid (Multi-Select). Drag-Drop für Bulk-Move; Click → Preview.
Komponente: DocPreviewPanel
Vorschau (PDF, Bild) plus Metadaten und Aktionen.
Komponente: AiUploadDialog
Datei-Upload mit AI-Parsing — extrahiert Inhalte und schlaegt Metadaten vor.
Modale: Rename / Share / ContextMenu
DocRenameModal, DocShareLinkModal, DocContextMenu.
Felder und Eingaben
DocumentFolder-Felder:
| Feldname | Pflicht | Datentyp | Beschreibung | Wirkung beim Ausfuellen | Voraussetzung |
|---|---|---|---|---|---|
name | ja | String | Ordner-Name. | Erscheint in der Sidebar und in Reports. | — |
type | ja | Enum | root, entity, custom. | Steuert Verhalten und Auto-Sync mit Entitaet. | — |
parentId | nein | UUID | Eltern-Ordner. | Erstellt Hierarchie. | — |
sourceType + sourceId | nein | polymorph | Verknuepfung zu Entitaet (z. B. Workorder, Customer). | Auto-Folder wird beim Anlegen der Entitaet erzeugt; Synct sich mit Entitaets-Namen. | — |
icon / color | nein | String | UI-Anpassung. | Wird in der Sidebar dargestellt. | — |
sortOrder | nein | Integer | Sortierung in der Sidebar. | — | — |
isSystem | nein | Boolean | System-Ordner (nicht loeschbar). | UI versteckt Löschen. | — |
departmentId | nein | UUID | Abteilungs-Zuweisung. | Beeinflusst Sichtbarkeit in der Organization-Tree-Sicht. | — |
Wiederverwendbare Konzepte
- Polymorpher Parent-Pattern —
DocumentFolder.sourceType/sourceId,DocumentParent.parentId/parentType. - Berechtigungen verstehen (CASL)
Verknuepfungen zu anderen Modulen
- Aufträge, Kunden, Standorte, Lieferanten, Mitarbeiter, Produkte, Fahrzeuge — alle erzeugen Auto-Folder mit
sourceType/sourceId. - Belege — generierte PDFs werden automatisch ins Beleg-Folder einsortiert.
- AI-Provider — für den AI-Upload-Dialog.
Häufige Fehler und Lösungen
| Fehler | Lösung |
|---|---|
| Aktivitaets-Log fehlt einzelne Operation | documentActivityService.logActivity ist fire-and-forget — bei Netzwerk-Hicksen kann ein Eintrag fehlen. Operation wird trotzdem ausgeführt. |
| AI-Upload-Button fehlt | Kein aktiver AI-Provider — siehe Mandanten-Konfiguration. |
| Ordner nicht loeschbar | isSystem = true — System-Ordner sind geschuetzt. |
| Datei lokal, aber nicht im Browser sichtbar | Cache-Refresh über „neu laden" oder Folder neu betreten. |
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/document-folders/tree | Hierarchischer Folder-Baum | view DocumentFolder |
GET | /api/document-folders/:id/documents | Dokumente in einem Ordner | view DocumentFolder |
POST | /api/document-folders/:id/documents | Dokument zu Ordner hinzufuegen | create DocumentFolder |
POST | /api/document-folders/:id/documents/bulk | Bulk-Add mehrerer Dokumente | create DocumentFolder |
DELETE | /api/document-folders/:id/documents/:documentId | Dokument aus Ordner entfernen | delete DocumentFolder |
Versionshinweise
- 2026-04-29: Initiale Veroeffentlichung mit FE-Tiefen-Standard.