From bb722b437e59ae518eca616428f996a51507ad7d Mon Sep 17 00:00:00 2001 From: orosmatthew Date: Sat, 26 Aug 2023 12:30:22 -0400 Subject: [PATCH] [web] Improve modals --- web/src/lib/ConfirmModal.svelte | 76 +++++++++++++++++++ web/src/lib/FormAlert.svelte | 46 +++++++++++ web/src/routes/admin/contests/+page.svelte | 8 +- .../admin/contests/[contestId]/+page.svelte | 21 ++--- .../routes/admin/contests/create/+page.svelte | 9 +-- .../admin/diff/[submissionId]/+page.svelte | 7 +- web/src/routes/admin/problems/+page.svelte | 2 +- .../admin/problems/[problemId]/+page.svelte | 11 ++- web/src/routes/admin/reviews/+page.svelte | 2 +- web/src/routes/admin/scoreboard/+page.svelte | 2 +- .../submissions/[submissionId]/+page.svelte | 11 ++- web/src/routes/admin/teams/+page.svelte | 2 +- .../routes/admin/teams/[teamId]/+page.svelte | 11 ++- web/svelte.config.js | 3 + 14 files changed, 175 insertions(+), 36 deletions(-) create mode 100644 web/src/lib/ConfirmModal.svelte create mode 100644 web/src/lib/FormAlert.svelte diff --git a/web/src/lib/ConfirmModal.svelte b/web/src/lib/ConfirmModal.svelte new file mode 100644 index 0000000..c5c029e --- /dev/null +++ b/web/src/lib/ConfirmModal.svelte @@ -0,0 +1,76 @@ + + + diff --git a/web/src/lib/FormAlert.svelte b/web/src/lib/FormAlert.svelte new file mode 100644 index 0000000..b979441 --- /dev/null +++ b/web/src/lib/FormAlert.svelte @@ -0,0 +1,46 @@ + + +{#if ($page.form !== null && dismissed === false) || (manualPopup === true && dismissed === false)} +
+ {success ? 'Success' : message ?? 'Unknown error'} +
+{/if} diff --git a/web/src/routes/admin/contests/+page.svelte b/web/src/routes/admin/contests/+page.svelte index 042d4a8..74760e4 100644 --- a/web/src/routes/admin/contests/+page.svelte +++ b/web/src/routes/admin/contests/+page.svelte @@ -8,12 +8,10 @@ Contests -

Contests

+

Contests

-
-
- Create -
+
+ Create
diff --git a/web/src/routes/admin/contests/[contestId]/+page.svelte b/web/src/routes/admin/contests/[contestId]/+page.svelte index 8800d79..7179066 100644 --- a/web/src/routes/admin/contests/[contestId]/+page.svelte +++ b/web/src/routes/admin/contests/[contestId]/+page.svelte @@ -1,26 +1,29 @@ {data.name} + +

{data.name}

+ + {#if data.activeTeams !== 0}
In Progress
{/if} -{#if form && !form.success} -
An error occured
-{/if} -
All Contests @@ -28,12 +31,12 @@
{ - if (!confirm('Are you sure?')) { + use:enhance={async ({ cancel }) => { + if ((await confirmModal.prompt('Are you sure?')) !== true) { cancel(); } return async ({ update }) => { - update(); + await update(); }; }} > diff --git a/web/src/routes/admin/contests/create/+page.svelte b/web/src/routes/admin/contests/create/+page.svelte index 3fb99a7..0b81b21 100644 --- a/web/src/routes/admin/contests/create/+page.svelte +++ b/web/src/routes/admin/contests/create/+page.svelte @@ -1,6 +1,7 @@ -

{data.problemData.friendlyName}

+ + +

+ Problem - {data.problemData.friendlyName} +

{#if error}
diff --git a/web/src/routes/admin/reviews/+page.svelte b/web/src/routes/admin/reviews/+page.svelte index 68298da..e431469 100644 --- a/web/src/routes/admin/reviews/+page.svelte +++ b/web/src/routes/admin/reviews/+page.svelte @@ -27,7 +27,7 @@ Reviews -

Reviews

+

Reviews

{#if updating} diff --git a/web/src/routes/admin/scoreboard/+page.svelte b/web/src/routes/admin/scoreboard/+page.svelte index 71691c7..5d84d01 100644 --- a/web/src/routes/admin/scoreboard/+page.svelte +++ b/web/src/routes/admin/scoreboard/+page.svelte @@ -25,7 +25,7 @@ Admin Scoreboard -

Admin Scoreboards

+

Admin Scoreboards

{#if updating} diff --git a/web/src/routes/admin/submissions/[submissionId]/+page.svelte b/web/src/routes/admin/submissions/[submissionId]/+page.svelte index 825779a..75ab311 100644 --- a/web/src/routes/admin/submissions/[submissionId]/+page.svelte +++ b/web/src/routes/admin/submissions/[submissionId]/+page.svelte @@ -5,6 +5,7 @@ import 'diff2html/bundles/css/diff2html.min.css'; import { enhance } from '$app/forms'; import { stretchTextarea } from '$lib/util'; + import ConfirmModal from '$lib/ConfirmModal.svelte'; export let data: PageData; export let form: Actions; @@ -25,12 +26,16 @@ } } }); + + let confirmModal: ConfirmModal; Submission + +

Submission

{#if form && !form.success} @@ -45,12 +50,12 @@ { - if (!confirm('Are you sure?')) { + use:enhance={async ({ cancel }) => { + if ((await confirmModal.prompt('Are you sure?')) !== true) { cancel(); } return async ({ update }) => { - update(); + await update(); }; }} > diff --git a/web/src/routes/admin/teams/+page.svelte b/web/src/routes/admin/teams/+page.svelte index d826adb..015f601 100644 --- a/web/src/routes/admin/teams/+page.svelte +++ b/web/src/routes/admin/teams/+page.svelte @@ -16,7 +16,7 @@ Teams -

Teams

+

Teams

{#if form && !form.success}
Invalid action
diff --git a/web/src/routes/admin/teams/[teamId]/+page.svelte b/web/src/routes/admin/teams/[teamId]/+page.svelte index 6d26c86..0adde55 100644 --- a/web/src/routes/admin/teams/[teamId]/+page.svelte +++ b/web/src/routes/admin/teams/[teamId]/+page.svelte @@ -1,5 +1,6 @@ Team + +

{data.team.name}

@@ -32,12 +37,12 @@ { - if (!confirm('Are you sure?')) { + use:enhance={async ({ cancel }) => { + if ((await confirmModal.prompt('Are you sure?')) !== true) { cancel(); } return async ({ update }) => { - update(); + await update(); }; }} > diff --git a/web/svelte.config.js b/web/svelte.config.js index e7737a8..2c94519 100644 --- a/web/svelte.config.js +++ b/web/svelte.config.js @@ -7,6 +7,9 @@ const config = { kit: { adapter: adapter() + }, + vitePlugin: { + inspector: true } };