settings: split danger zone into delete originals / delete all activities
Move "Delete original files" out of the Storage card and into the Danger zone as a first, less-destructive step (simple confirm, no password needed). "Delete all activity data" and "Delete account" follow below it, both still password-gated. Descriptions clarify exactly what each action does and does not remove.
This commit is contained in:
@@ -31,17 +31,6 @@ import Base from '../../layouts/Base.astro';
|
|||||||
<span id="st-total" class="text-white tabular-nums"></span>
|
<span id="st-total" class="text-white tabular-nums"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Delete originals -->
|
|
||||||
<div id="del-originals-area" class="mt-4 hidden">
|
|
||||||
<p class="text-xs text-zinc-500 mb-3">
|
|
||||||
Original files are kept for reprocessing. Once your activities look correct you can free this space — the extracted data is not affected.
|
|
||||||
</p>
|
|
||||||
<button id="del-originals-btn"
|
|
||||||
class="px-4 py-2 rounded-lg text-sm bg-zinc-800 hover:bg-amber-900 hover:text-amber-300 text-zinc-300 transition-colors">
|
|
||||||
Delete original files
|
|
||||||
</button>
|
|
||||||
<p id="del-originals-status" class="text-xs mt-2 hidden"></p>
|
|
||||||
</div>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- Profile card -->
|
<!-- Profile card -->
|
||||||
@@ -141,10 +130,21 @@ import Base from '../../layouts/Base.astro';
|
|||||||
<section class="rounded-xl bg-zinc-900 border border-red-900/40 p-5">
|
<section class="rounded-xl bg-zinc-900 border border-red-900/40 p-5">
|
||||||
<h2 class="text-sm font-semibold text-red-400/70 uppercase tracking-wider mb-4">Danger zone</h2>
|
<h2 class="text-sm font-semibold text-red-400/70 uppercase tracking-wider mb-4">Danger zone</h2>
|
||||||
|
|
||||||
<!-- Delete activities -->
|
<!-- Delete original files -->
|
||||||
<div class="mb-5">
|
<div class="mb-5">
|
||||||
<p class="text-sm text-zinc-300 font-medium mb-1">Reset activity data</p>
|
<p class="text-sm text-zinc-300 font-medium mb-1">Delete original files</p>
|
||||||
<p class="text-xs text-zinc-500 mb-3">Wipes all extracted activities, edits, and photos. Your account is kept. Cannot be undone.</p>
|
<p class="text-xs text-zinc-500 mb-3">Removes the raw source files kept for reprocessing (originals/). Your extracted activities, edits, and photos are not affected.</p>
|
||||||
|
<button id="del-originals-btn"
|
||||||
|
class="px-4 py-2 rounded-lg text-sm bg-zinc-800 hover:bg-amber-900 hover:text-amber-300 text-zinc-400 transition-colors">
|
||||||
|
Delete original files
|
||||||
|
</button>
|
||||||
|
<p id="del-originals-status" class="text-xs mt-2 hidden"></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Delete all activity data -->
|
||||||
|
<div class="border-t border-zinc-800 pt-5 mb-5">
|
||||||
|
<p class="text-sm text-zinc-300 font-medium mb-1">Delete all activity data</p>
|
||||||
|
<p class="text-xs text-zinc-500 mb-3">Wipes all extracted activities, edits, and photos. Your account and original files are kept. Cannot be undone.</p>
|
||||||
<button id="del-activities-btn"
|
<button id="del-activities-btn"
|
||||||
class="px-4 py-2 rounded-lg text-sm bg-zinc-800 hover:bg-red-900 hover:text-red-300 text-zinc-400 transition-colors">
|
class="px-4 py-2 rounded-lg text-sm bg-zinc-800 hover:bg-red-900 hover:text-red-300 text-zinc-400 transition-colors">
|
||||||
Delete all activities
|
Delete all activities
|
||||||
@@ -218,10 +218,6 @@ import Base from '../../layouts/Base.astro';
|
|||||||
document.getElementById('st-strava-row')!.classList.remove('hidden');
|
document.getElementById('st-strava-row')!.classList.remove('hidden');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d.originals_mb > 0) {
|
|
||||||
document.getElementById('del-originals-area')!.classList.remove('hidden');
|
|
||||||
}
|
|
||||||
|
|
||||||
loading.classList.add('hidden');
|
loading.classList.add('hidden');
|
||||||
content.classList.remove('hidden');
|
content.classList.remove('hidden');
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
@@ -240,7 +236,8 @@ import Base from '../../layouts/Base.astro';
|
|||||||
const d = await r.json();
|
const d = await r.json();
|
||||||
if (r.ok) {
|
if (r.ok) {
|
||||||
setStatus(statusEl, `Freed ${fmtMb(d.freed_mb)}.`, true);
|
setStatus(statusEl, `Freed ${fmtMb(d.freed_mb)}.`, true);
|
||||||
btn.closest('div')!.querySelector('button')!.remove();
|
btn.disabled = true;
|
||||||
|
btn.textContent = 'Already deleted';
|
||||||
loadStorage();
|
loadStorage();
|
||||||
} else {
|
} else {
|
||||||
btn.disabled = false;
|
btn.disabled = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user