feat(admin): "Verlauf löschen" pro Nutzer (Konto bleibt)
Store.delete_user_history (loescht Sessions + Nachrichten eines Nutzers, ohne
Konto/Erinnerungen/Usage) + DELETE /api/admin/users/{id}/history (audit-geloggt)
+ Button im Admin-Nutzer-Bereich.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
15d8714105
commit
69894b1e7b
3 changed files with 36 additions and 0 deletions
|
|
@ -1193,6 +1193,7 @@ function buildUserCard(u) {
|
|||
<button class="btn-rename text-xs rounded-lg border border-slate-300 dark:border-slate-600 px-2.5 py-1.5 hover:bg-slate-100 dark:hover:bg-slate-700 transition-colors">Umbenennen</button>
|
||||
<button class="btn-admin text-xs rounded-lg border px-2.5 py-1.5 transition-colors"></button>
|
||||
<button class="btn-token text-xs rounded-lg border border-amber-300 dark:border-amber-700 text-amber-700 dark:text-amber-300 px-2.5 py-1.5 hover:bg-amber-50 dark:hover:bg-amber-900/20 transition-colors">Link erneuern</button>
|
||||
<button class="btn-history text-xs rounded-lg border border-orange-300 dark:border-orange-700 text-orange-700 dark:text-orange-300 px-2.5 py-1.5 hover:bg-orange-50 dark:hover:bg-orange-900/20 transition-colors">Verlauf löschen</button>
|
||||
<button class="btn-delete text-xs rounded-lg border border-red-300 dark:border-red-800 text-red-600 dark:text-red-400 px-2.5 py-1.5 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors">Löschen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1409,6 +1410,13 @@ function buildUserCard(u) {
|
|||
}
|
||||
});
|
||||
|
||||
// Verlauf löschen (Konto + Erinnerungen bleiben)
|
||||
card.querySelector(".btn-history").addEventListener("click", async () => {
|
||||
if (!confirm(`Gesprächsverlauf von „${u.display_name}" löschen?\nKonto und Erinnerungen bleiben erhalten.`)) return;
|
||||
const res = await adminFetch(`/api/admin/users/${uid}/history`, "DELETE");
|
||||
if (res) alert(`Verlauf gelöscht (${res.deleted_messages ?? 0} Nachrichten).`);
|
||||
});
|
||||
|
||||
// Löschen
|
||||
card.querySelector(".btn-delete").addEventListener("click", async () => {
|
||||
if (!confirm(`Nutzer „${u.display_name}" und alle Daten unwiderruflich löschen?`)) return;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue