feat(backup): add enterprise backup & restore foundation

This commit is contained in:
Schubert Ferenc 2026-07-05 17:13:31 +02:00
parent 7835d3ca75
commit 6c917df515
30 changed files with 1538 additions and 61 deletions

View file

@ -6,6 +6,7 @@ import {
BookOpen,
ClipboardList,
FileText,
HardDriveDownload,
LayoutDashboard,
Package,
Settings,
@ -78,6 +79,12 @@ const menu = [
name: "Dokumente",
href: "/documents",
},
{
icon: HardDriveDownload,
name: "Backups",
href: "/backups",
permission: "backup.read",
},
{
icon: Settings,
name: "Einstellungen",
@ -135,7 +142,7 @@ export default function Sidebar() {
</nav>
<div className="border-t border-slate-800 p-4 text-sm text-slate-400">
Olympus CRM v0.1
Olympus CRM v0.9.1
</div>
</aside>
);

View file

@ -18,6 +18,8 @@ type Props = {
description: string;
confirmLabel?: string;
pending?: boolean;
pendingLabel?: string;
confirmDisabled?: boolean;
children?: ReactNode;
onOpenChange: (open: boolean) => void;
onConfirm: () => void;
@ -29,6 +31,8 @@ export default function ConfirmDialog({
description,
confirmLabel = "Löschen",
pending = false,
pendingLabel = "Wird gelöscht...",
confirmDisabled = false,
children,
onOpenChange,
onConfirm,
@ -56,9 +60,9 @@ export default function ConfirmDialog({
type="button"
variant="destructive"
onClick={onConfirm}
disabled={pending}
disabled={pending || confirmDisabled}
>
{pending ? "Wird gelöscht..." : confirmLabel}
{pending ? pendingLabel : confirmLabel}
</Button>
</DialogFooter>
</DialogContent>