diff options
Diffstat (limited to 'src/routes')
| -rw-r--r-- | src/routes/api/preferences/+server.ts | 10 | ||||
| -rw-r--r-- | src/routes/user/[user]/+page.svelte | 14 | ||||
| -rw-r--r-- | src/routes/user/[user]/badges/+page.svelte | 68 |
3 files changed, 58 insertions, 34 deletions
diff --git a/src/routes/api/preferences/+server.ts b/src/routes/api/preferences/+server.ts index 151af298..379f33c5 100644 --- a/src/routes/api/preferences/+server.ts +++ b/src/routes/api/preferences/+server.ts @@ -3,7 +3,8 @@ import { getUserPreferences, toggleHideMissingBadges, setCSS, - setBiography + setBiography, + toggleHideAWCBadges } from '$lib/Database/userPreferences'; const unauthorised = new Response('Unauthorised', { status: 401 }); @@ -40,6 +41,13 @@ export const PUT = async ({ url, cookies, request }) => { } }); + if (url.searchParams.get('toggleHideAWCBadges') !== null) + return Response.json(await toggleHideAWCBadges(userId), { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + }); + if (url.searchParams.get('badgeWallCSS') !== null) return Response.json(await setCSS(userId, await request.text()), { headers: { diff --git a/src/routes/user/[user]/+page.svelte b/src/routes/user/[user]/+page.svelte index 222e044f..7049cbfd 100644 --- a/src/routes/user/[user]/+page.svelte +++ b/src/routes/user/[user]/+page.svelte @@ -225,6 +225,20 @@ <p /> + <input + type="checkbox" + on:change={() => { + if (userData) + fetch(root(`/api/preferences?id=${userData.id}&toggleHideAWCBadges`), { + method: 'PUT' + }); + }} + checked={preferences.hide_awc_badges} + /> + {$locale().user.preferences.hideAWCBadges.title} + + <p /> + Biography <button diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte index caf2019d..2b7dd65f 100644 --- a/src/routes/user/[user]/badges/+page.svelte +++ b/src/routes/user/[user]/badges/+page.svelte @@ -520,42 +520,44 @@ !editMode} <div id="badges"> - {#await awcPromise then badges} - {#await badges.clone().text() then text} - {@const parsedBadges = awcBadgesGrouped(text)} - - {#if parsedBadges.length > 0} - {#each parsedBadges as group} - <details open={categoryFilter || isOwner ? false : true}> - <summary> - Anime Watching Club <span class="opaque">|</span> - {group.group} - </summary> + {#if !preferences.hide_awc_badges} + {#await awcPromise then badges} + {#await badges.clone().text() then text} + {@const parsedBadges = awcBadgesGrouped(text)} + + {#if parsedBadges.length > 0} + {#each parsedBadges as group} + <details open={categoryFilter || isOwner ? false : true}> + <summary> + Anime Watching Club <span class="opaque">|</span> + {group.group} + </summary> + + <p /> + + <div class="badges"> + {#each group.badges as badge, index} + <div id={`badge-${index}`}> + <FallbackBadge + {badge} + source={cdn(thumbnail(badge.image))} + alternative={badge.description} + fallback={thumbnail(badge.image)} + hideOnError={preferences.hide_missing_badges} + awc + {index} + /> + </div> + {/each} + </div> + </details> <p /> - - <div class="badges"> - {#each group.badges as badge, index} - <div id={`badge-${index}`}> - <FallbackBadge - {badge} - source={cdn(thumbnail(badge.image))} - alternative={badge.description} - fallback={thumbnail(badge.image)} - hideOnError={preferences.hide_missing_badges} - awc - {index} - /> - </div> - {/each} - </div> - </details> - - <p /> - {/each} - {/if} + {/each} + {/if} + {/await} {/await} - {/await} + {/if} {#if ungroupedBadges === null} <Message message="Loading badges ..." /> |