diff --git a/apps/mana/apps/web/src/lib/components/settings/searchIndex.ts b/apps/mana/apps/web/src/lib/components/settings/searchIndex.ts
index 66403c913..f88f85244 100644
--- a/apps/mana/apps/web/src/lib/components/settings/searchIndex.ts
+++ b/apps/mana/apps/web/src/lib/components/settings/searchIndex.ts
@@ -42,9 +42,18 @@ export const categories: Category[] = [
{
id: 'data',
label: 'Daten & Sync',
- description: 'Cloud-Sync, Export & DSGVO',
+ description: 'Cloud-Sync, Export, Backup & DSGVO',
icon: Cloud,
- anchors: ['cloud-sync', 'my-data'],
+ anchors: [
+ 'cloud-sync',
+ 'my-data',
+ 'auth-data',
+ 'credits-data',
+ 'project-data',
+ 'retention',
+ 'backup',
+ 'danger-zone',
+ ],
},
];
@@ -139,7 +148,7 @@ export const searchIndex: SearchEntry[] = [
// Data
{
label: 'Cloud Sync',
- keywords: ['sync', 'backup', 'geräte'],
+ keywords: ['sync', 'geräte'],
category: 'data',
anchor: 'cloud-sync',
},
@@ -150,10 +159,40 @@ export const searchIndex: SearchEntry[] = [
anchor: 'my-data',
},
{
- label: 'Konto löschen',
- keywords: ['delete', 'gdpr', 'dsgvo'],
+ label: 'Authentifizierung',
+ keywords: ['sessions', '2fa', 'login'],
category: 'data',
- anchor: 'my-data',
+ anchor: 'auth-data',
+ },
+ {
+ label: 'Credits & Transaktionen',
+ keywords: ['guthaben', 'transaktionen'],
+ category: 'data',
+ anchor: 'credits-data',
+ },
+ {
+ label: 'Projektdaten',
+ keywords: ['projekte', 'apps', 'statistik'],
+ category: 'data',
+ anchor: 'project-data',
+ },
+ {
+ label: 'Aufbewahrungsfristen',
+ keywords: ['retention', 'dsgvo', 'fristen'],
+ category: 'data',
+ anchor: 'retention',
+ },
+ {
+ label: 'Backup & Wiederherstellung',
+ keywords: ['backup', 'restore', 'import', 'archiv', '.mana'],
+ category: 'data',
+ anchor: 'backup',
+ },
+ {
+ label: 'Konto löschen',
+ keywords: ['delete', 'gdpr', 'dsgvo', 'gefahrenzone'],
+ category: 'data',
+ anchor: 'danger-zone',
},
];
diff --git a/apps/mana/apps/web/src/lib/components/settings/sections/DataSection.svelte b/apps/mana/apps/web/src/lib/components/settings/sections/DataSection.svelte
index 7991a397a..4eabf3847 100644
--- a/apps/mana/apps/web/src/lib/components/settings/sections/DataSection.svelte
+++ b/apps/mana/apps/web/src/lib/components/settings/sections/DataSection.svelte
@@ -1,27 +1,7 @@
-
- Übersicht über alle deine gespeicherten Daten (GDPR/DSGVO) -
-- Hier siehst du alle Daten, die wir uber dich speichern. Mehr Informationen findest du in - unserer - + . Wir verwenden keine Tracking-Cookies – unsere Analyse erfolgt vollstandig - anonym via Umami. -
-{error}
- +{error}
+{userData.user.name || 'Kein Name'}
+{userData.user.email}
+{userData.user.email}
-- Registriert am {formatDate(userData.user.createdAt)} -
-So lange speichern wir deine Daten:
-
- Lade eine vollstandige Kopie deiner synchronisierten Daten als .mana-Archiv
- (ZIP) herunter. Enthalt den kompletten Sync-Event-Stream plus Manifest mit
- Integritats-Hash — geeignet fur Account-Migration, Backups oder DSGVO-Datenportabilitat.
- Sensible Felder bleiben dabei verschlusselt.
-
{backupError}
- {/if} - - -
- Wahle eine .mana-Datei aus. Die enthaltenen Events werden in deine lokale
- Datenbank gespielt — nur Backups deines eigenen Accounts werden akzeptiert.
-
{importProgressLabel(importProgress)}
- {#if importProgress.total > 0} -
-
{importError}
{/if}Diese Aktionen sind unwiderruflich
-Alle meine Daten loschen
-- Loscht dein Konto und alle damit verbundenen Daten dauerhaft aus allen Projekten. - Diese Aktion kann nicht ruckgangig gemacht werden. -
-Registriert am
Gesamt-Entitäten
+Datensätze über alle Apps hinweg
+Projekte mit Daten
++ Keine Tracking-Cookies — anonyme Analyse via Umami. Details in der + Datenschutzerklärung. +
{/if} -Aktive Sessions
Verknüpfte Accounts
Zwei-Faktor (2FA)
Letzter Login
Aktueller Stand
Gesamt verdient
Gesamt ausgegeben
Transaktionen
| App | +Einträge | +Letzte Aktivität | +
|---|---|---|
|
+
+ 0}
+ class:empty={project.available && project.totalCount === 0}
+ class:error={!project.available}
+ title={project.available
+ ? project.totalCount > 0
+ ? 'Aktiv'
+ : 'Keine Daten'
+ : project.error || 'Nicht verfügbar'}
+ >
+
+ {project.projectName}
+
+ |
+ + {#if project.available} + {formatNum(project.totalCount)} + {:else} + — + {/if} + | ++ {#if project.available} + {formatRelativeTime(project.lastActivityAt)} + {:else} + {project.error || 'nicht erreichbar'} + {/if} + | +
Benutzerkonto & Profil
Sessions & Login-Historie
Credit-Transaktionen
Security-Logs
Projektdaten (Chat, Todo, …)
Backup herunterladen
++ ZIP mit Event-Stream + Integritäts-Hash. Sensible Felder bleiben verschlüsselt. +
+Backup einspielen
+Nur Backups deines eigenen Accounts werden akzeptiert.
+{backupError}
+ {/if} + + {#if importProgress} +{importProgressLabel(importProgress)}
+ {#if importProgress.total > 0} + + {/if} +
+
{importError}
+ {/if} +Alle meine Daten löschen
++ Löscht dein Konto und alle verbundenen Daten dauerhaft aus allen Projekten. Kann nicht + rückgängig gemacht werden. +
+- {#if syncBilling.active} - Aktiv - {:else if syncBilling.paused} - Pausiert - {:else} - Inaktiv - {/if} -
- {#if syncBilling.active && syncBilling.nextChargeAt} -- Nächste Abbuchung: {formatDate(syncBilling.nextChargeAt)} -
- {:else if syncBilling.paused} -- Credits reichen nicht aus — lade Credits auf um fortzufahren -
- {:else} -- Deine Daten sind nur lokal auf diesem Gerät gespeichert -
- {/if} -{error}
-- Nicht genügend Credits. - Aufladen -
+Status
++ {#if syncBilling.active && syncBilling.nextChargeAt} + Nächste Abbuchung am {formatDate(syncBilling.nextChargeAt)} + {:else if syncBilling.active} + Synchronisiert verschlüsselt über alle Geräte + {:else if syncBilling.paused} + Credits reichen nicht aus — lade Credits auf um fortzufahren + {:else} + Deine Daten sind nur lokal auf diesem Gerät gespeichert {/if} - {/if} +
Verfügbare Credits
++ Credits aufladen +
Abrechnungsintervall
++ {SYNC_PRICES[selectedInterval]} Credits · {INTERVAL_HINTS[selectedInterval]} +
+- Änderung gilt ab der nächsten Abbuchung -
- {/if} - -- Cloud Sync synchronisiert deine Daten verschlüsselt über alle Geräte. Deine lokalen - Daten bleiben immer erhalten — auch wenn Sync pausiert oder deaktiviert wird. -
-{error}
+ {/if} + +Änderung gilt ab der nächsten Abbuchung
+ {/if} + + {:else} + + {#if insufficientCredits} ++ Nicht genügend Credits. Aufladen +
+ {/if} + {/if} ++ Cloud Sync synchronisiert deine Daten verschlüsselt über alle Geräte. Lokale Daten bleiben + immer erhalten — auch wenn Sync pausiert oder deaktiviert wird. +
{/if} -