feat: Verwaltungsmenü zu 3 Sammelseiten umgebaut - Benutzer & Rollen, Automatisierung, Backup
Menü unter "Verwaltung" wie gewünscht neu strukturiert: - "Benutzer & Rollen" (/settings/users-roles): Benutzerverwaltung und Rollen & Rechte als zwei Reiter auf einer Seite (vorher zwei getrennte Menüpunkte). - "Automatisierung" (/settings/automation): Webhooks, Wiederkehrende Aufgaben, Etikettenvorlagen und Social Media Links als Reiter gebündelt - dazu (eigene Ergänzung, da sonst zwei fast gleich benannte Menüpunkte "Automatisierung"/"Automatisierungen" nebeneinander gestanden hätten) auch die bestehenden Automatisierungsregeln als fünfter Reiter "Regeln". - "Backup" (/settings/backup): neuer voller Daten-Export/Import (Commit zuvor) plus der bisherige CSV-Import, beides auf einer Seite. Aktiver Reiter wird als ?tab=... in der URL gehalten statt nur im Client-State, damit z.B. "Speichern" im Etiketten-Designer wieder auf den richtigen Reiter zurückführt. Technisch: bestehende Seiteninhalte in Reiter-Komponenten extrahiert (PageHeader entfernt, Rest unverändert übernommen), Dialog-Unterkomponenten in die neuen Ordner verschoben (git mv, Historie bleibt erhalten). Die Etiketten-Editor-Routen (/settings/label-templates/new, /[id]) bleiben unverändert bestehen, nur der Rücksprung nach dem Speichern zeigt jetzt auf den neuen Reiter. settings/layout.tsx's Berechtigungsliste um label-templates:read, site-settings:read, backup:export/import ergänzt - schließt nebenbei eine bestehende Lücke (eine Rolle mit ausschließlich diesen Rechten wurde vorher faelschlich von der ganzen Verwaltungssektion ausgesperrt. Neuer Reiter-Baustein src/components/tab-switcher.tsx (generisch, nach Vorbild von ActiveHistoryTabs). sidebar.tsx's NavItem.permission unterstützt jetzt auch ein Array (irgendeine der Berechtigungen reicht), fuer die neuen gebündelten Menüpunkte. Lokal verifiziert: typecheck/lint/test/build fehlerfrei, Build zeigt alle neuen Routen korrekt, Live-Test im Browser (ohne Login) zeigt sauberen Redirect zu /login ohne Konsolenfehler. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
1 parent
2f223b6941
commit
d998f611e2
24 files changed
+371
-148
No files matched your search
@@ -0,0 +1,12 @@
|
||||
import { apiFetchBlob, apiFetchFormData, BlobDownload } from "@/lib/auth/api-client";
|
||||
import { BackupImportSummary } from "./types";
|
||||
|
||||
export function exportBackup(): Promise<BlobDownload> {
|
||||
return apiFetchBlob("/backup/export", "apicore-backup.json");
|
||||
}
|
||||
|
||||
export function importBackup(file: File): Promise<BackupImportSummary> {
|
||||
const formData = new FormData();
|
||||
formData.append("file", file);
|
||||
return apiFetchFormData<BackupImportSummary>("/backup/import", formData);
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export interface BackupImportSummary {
|
||||
imported: Record<string, number>;
|
||||
}
|
||||
Reference in new issue
Block a user