DMS redesign: 3-column explorer layout with toolbar, source tree, file details panel

- Add backend endpoints: GET /dms/files, GET /dms/folders/{id}/files
- New SourceTree component: sources (Meine Dateien, Geteilte Ordner, Externe Speicher)
- New FileExplorer component: 5 view modes (list, table, icons-sm/md/lg)
- New FileDetails component: right panel with file metadata and actions
- Rewrite Dms.tsx: PluginToolbar + 3-column ResizablePanel layout
- Update DmsFile type: size_bytes + uploaded_by (backward compat aliases)
- Add 60+ i18n keys for de/en
This commit is contained in:
Agent Zero
2026-07-20 17:31:04 +02:00
parent e1a9a8e33e
commit e94e64ba6b
11 changed files with 1641 additions and 143 deletions
+19 -2
View File
@@ -25,15 +25,20 @@ export interface DmsFile {
folder_id: string | null;
name: string;
mime_type: string;
size: number;
size_bytes?: number;
storage_path: string;
checksum?: string | null;
deleted_at: string | null;
created_by: string;
uploaded_by?: string;
created_at?: string | null;
updated_at?: string | null;
shared_with?: string[];
permissions?: FilePermission[];
access_level?: string;
/** @deprecated Use size_bytes instead */
size?: number;
/** @deprecated Use uploaded_by instead */
created_by?: string;
}
export interface FilePermission {
@@ -189,6 +194,18 @@ export function getSharedWithMe(): Promise<DmsFile[]> {
return apiGet<DmsFile[]>('/dms/shared-with-me');
}
export function fetchSharedWithMe(): Promise<DmsFile[]> {
return getSharedWithMe();
}
export function fetchFilesByFolder(folderId: string): Promise<DmsFile[]> {
return apiGet<DmsFile[]>(`/dms/folders/${folderId}/files`);
}
export function fetchAllFiles(): Promise<DmsFile[]> {
return apiGet<DmsFile[]>('/dms/files');
}
// ─── Bulk Operations ───────────────────────────────────────────────────────
export function bulkMoveFiles(payload: BulkMovePayload): Promise<void> {