aboutsummaryrefslogtreecommitdiff
path: root/src/routes/user
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-02-05 19:06:32 -0800
committerFuwn <[email protected]>2024-02-05 19:06:32 -0800
commita4d58fa25d6053419506d6e7e5b53d8268845990 (patch)
tree9780bf9fa5cbef14d99bd3953967f3d297f6a079 /src/routes/user
parentrefactor(locale): specify import method (diff)
downloaddue.moe-a4d58fa25d6053419506d6e7e5b53d8268845990.tar.xz
due.moe-a4d58fa25d6053419506d6e7e5b53d8268845990.zip
feat(badges): delete all
Diffstat (limited to 'src/routes/user')
-rw-r--r--src/routes/user/[user]/badges/+page.svelte34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte
index 6ad6e845..21beb415 100644
--- a/src/routes/user/[user]/badges/+page.svelte
+++ b/src/routes/user/[user]/badges/+page.svelte
@@ -37,6 +37,7 @@
// let dark = true;
// let transparent = false;
let confirmDelete = 0;
+ let confirmPrune = 0;
let selectedBadge: Badge | undefined = undefined;
let loadError: string | null = null;
const isId = /^\d+$/.test(data.username);
@@ -206,6 +207,25 @@
selectedBadge = undefined;
};
+ const removeAllBadges = () => {
+ if (confirmPrune === 2) {
+ confirmPrune = 0;
+ } else if (confirmPrune === 0) {
+ confirmPrune = 1;
+
+ return;
+ } else {
+ confirmPrune = 2;
+
+ return;
+ }
+
+ selectedBadge = undefined;
+ badgesPromise = fetch(root(`/api/badges?prune=true`), {
+ method: 'DELETE'
+ });
+ };
+
const removeBadge = (badge: Badge) => {
if (!badge.id) return;
@@ -733,6 +753,20 @@
{$locale().user.badges.importMode.fetch}
</button>
+ <p />
+
+ <details>
+ <summary>Dangerous</summary>
+
+ <button class="button-lined no-shadow" on:click={removeAllBadges}>
+ {$locale({
+ values: {
+ times: 3 - confirmPrune
+ }
+ }).user.badges.editMode.deleteAll}
+ </button>
+ </details>
+
{#if importImages && importImages.length > 0}
<p />