From 0c6e3bf38f2c93c6d1deafdc799dc335e73fd0ac Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 23 Feb 2025 20:02:40 +0100 Subject: [PATCH] feat(frontend): show closed reports button, add some alerts for auth --- Foxnouns.Frontend/src/lib/i18n/locales/en.json | 3 ++- .../src/routes/admin/reports/+page.server.ts | 2 +- .../src/routes/admin/reports/+page.svelte | 13 +++++++++++++ .../src/routes/auth/log-in/+page.server.ts | 6 +++--- .../src/routes/auth/log-in/+page.svelte | 2 ++ .../src/routes/auth/welcome/+page.server.ts | 2 +- .../src/routes/settings/+layout.server.ts | 2 +- 7 files changed, 23 insertions(+), 7 deletions(-) diff --git a/Foxnouns.Frontend/src/lib/i18n/locales/en.json b/Foxnouns.Frontend/src/lib/i18n/locales/en.json index 55696dd..700b8e2 100644 --- a/Foxnouns.Frontend/src/lib/i18n/locales/en.json +++ b/Foxnouns.Frontend/src/lib/i18n/locales/en.json @@ -321,6 +321,7 @@ "required": "Required" }, "alert": { - "auth-method-remove-success": "Successfully unlinked account!" + "auth-method-remove-success": "Successfully unlinked account!", + "auth-required": "You must log in to access this page." } } diff --git a/Foxnouns.Frontend/src/routes/admin/reports/+page.server.ts b/Foxnouns.Frontend/src/routes/admin/reports/+page.server.ts index a88121e..c2149c1 100644 --- a/Foxnouns.Frontend/src/routes/admin/reports/+page.server.ts +++ b/Foxnouns.Frontend/src/routes/admin/reports/+page.server.ts @@ -19,5 +19,5 @@ export const load = async ({ url, fetch, cookies }) => { fetch, cookies, }); - return { reports, url: url.toString(), byReporter, byTarget, before, after }; + return { reports, url: url.toString(), includeClosed, byReporter, byTarget, before, after }; }; diff --git a/Foxnouns.Frontend/src/routes/admin/reports/+page.svelte b/Foxnouns.Frontend/src/routes/admin/reports/+page.svelte index 3b76ce7..5021846 100644 --- a/Foxnouns.Frontend/src/routes/admin/reports/+page.svelte +++ b/Foxnouns.Frontend/src/routes/admin/reports/+page.svelte @@ -18,6 +18,14 @@ return url.toString(); }; + const addClosed = () => { + const url = new URL(data.url); + if (!data.includeClosed) url.searchParams.set("include-closed", "true"); + else url.searchParams.delete("include-closed"); + + return url.toString(); + }; + const addTarget = (id: string | null) => { const url = new URL(data.url); if (id) url.searchParams.set("by-target", id); @@ -56,6 +64,11 @@ {#if data.byReporter}
  • Filtering by reporter (clear)
  • {/if} + {#if data.includeClosed} +
  • Showing all reports (only show open reports)
  • + {:else} +
  • Showing open reports (show all reports)
  • + {/if} {#if data.before} diff --git a/Foxnouns.Frontend/src/routes/auth/log-in/+page.server.ts b/Foxnouns.Frontend/src/routes/auth/log-in/+page.server.ts index 9c6bf25..579ea67 100644 --- a/Foxnouns.Frontend/src/routes/auth/log-in/+page.server.ts +++ b/Foxnouns.Frontend/src/routes/auth/log-in/+page.server.ts @@ -2,15 +2,15 @@ import { isRedirect, redirect } from "@sveltejs/kit"; import { apiRequest } from "$api"; import type { AuthResponse, AuthUrls } from "$api/models/auth"; -import { setToken } from "$lib"; +import { alertKey, setToken } from "$lib"; import ApiError, { ErrorCode } from "$api/error"; -export const load = async ({ fetch, parent }) => { +export const load = async ({ fetch, parent, url }) => { const parentData = await parent(); if (parentData.meUser) redirect(303, `/@${parentData.meUser.username}`); const urls = await apiRequest("POST", "/auth/urls", { fetch, isInternal: true }); - return { urls }; + return { urls, alertKey: alertKey(url) }; }; export const actions = { diff --git a/Foxnouns.Frontend/src/routes/auth/log-in/+page.svelte b/Foxnouns.Frontend/src/routes/auth/log-in/+page.svelte index c6c47a9..ee4d040 100644 --- a/Foxnouns.Frontend/src/routes/auth/log-in/+page.svelte +++ b/Foxnouns.Frontend/src/routes/auth/log-in/+page.svelte @@ -3,6 +3,7 @@ import { t } from "$lib/i18n"; import { enhance } from "$app/forms"; import ErrorAlert from "$components/ErrorAlert.svelte"; + import UrlAlert from "$components/URLAlert.svelte"; type Props = { data: PageData; form: ActionData }; let { data, form }: Props = $props(); @@ -13,6 +14,7 @@
    +
    {#if form?.error} diff --git a/Foxnouns.Frontend/src/routes/auth/welcome/+page.server.ts b/Foxnouns.Frontend/src/routes/auth/welcome/+page.server.ts index 88baf97..4b76df2 100644 --- a/Foxnouns.Frontend/src/routes/auth/welcome/+page.server.ts +++ b/Foxnouns.Frontend/src/routes/auth/welcome/+page.server.ts @@ -2,5 +2,5 @@ import { redirect } from "@sveltejs/kit"; export const load = async ({ parent }) => { const { meUser } = await parent(); - if (!meUser) redirect(303, "/auth/log-in"); + if (!meUser) redirect(303, "/auth/log-in?alert=auth-required"); }; diff --git a/Foxnouns.Frontend/src/routes/settings/+layout.server.ts b/Foxnouns.Frontend/src/routes/settings/+layout.server.ts index fe2eaa3..95228f0 100644 --- a/Foxnouns.Frontend/src/routes/settings/+layout.server.ts +++ b/Foxnouns.Frontend/src/routes/settings/+layout.server.ts @@ -2,7 +2,7 @@ import { redirect } from "@sveltejs/kit"; export const load = async ({ parent }) => { const data = await parent(); - if (!data.meUser) redirect(303, "/auth/log-in"); + if (!data.meUser) redirect(303, "/auth/log-in?alert=auth-required"); return { user: data.meUser!, token: data.token! }; };