From d60f89487ab3bc2390054efcd5d986a4aadd4291 Mon Sep 17 00:00:00 2001 From: Linnnus Date: Tue, 18 Feb 2025 18:01:09 +0100 Subject: =?UTF-8?q?Tilf=C3=B8j=20opgaver=20(assignments)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/routes/assignments/+page.server.ts | 16 +++++++++++++ app/src/routes/assignments/+page.svelte | 21 +++++++++++++++++ .../assignments/[assignmentId]/+page.server.ts | 27 ++++++++++++++++++++++ .../routes/assignments/[assignmentId]/+page.svelte | 25 ++++++++++++++++++++ 4 files changed, 89 insertions(+) create mode 100644 app/src/routes/assignments/+page.server.ts create mode 100644 app/src/routes/assignments/+page.svelte create mode 100644 app/src/routes/assignments/[assignmentId]/+page.server.ts create mode 100644 app/src/routes/assignments/[assignmentId]/+page.svelte (limited to 'app/src/routes/assignments') diff --git a/app/src/routes/assignments/+page.server.ts b/app/src/routes/assignments/+page.server.ts new file mode 100644 index 0000000..0b829cd --- /dev/null +++ b/app/src/routes/assignments/+page.server.ts @@ -0,0 +1,16 @@ +import type { PageServerLoad } from "./$types"; +import { getAssignments } from "$lib/server/assignments"; +import { redirect } from "@sveltejs/kit"; + +export const load = (async ({ url, locals }) => { + if (!locals.user) { + redirect(303, `/login?redirectTo=${encodeURIComponent(url.toString())}`); + } + + const assignments = await getAssignments(locals.dbConn, locals.user.id); + + return { + user: locals.user, + assignments, + }; +}) satisfies PageServerLoad; diff --git a/app/src/routes/assignments/+page.svelte b/app/src/routes/assignments/+page.svelte new file mode 100644 index 0000000..f43767d --- /dev/null +++ b/app/src/routes/assignments/+page.svelte @@ -0,0 +1,21 @@ + + + + +

Kommende opgaver for {data.user.firstName}

+ +
    + {#each data.assignments as assignment} +
  1. + {assignment.date} + Mere info +
  2. + {/each} +
+ + diff --git a/app/src/routes/assignments/[assignmentId]/+page.server.ts b/app/src/routes/assignments/[assignmentId]/+page.server.ts new file mode 100644 index 0000000..566dcd9 --- /dev/null +++ b/app/src/routes/assignments/[assignmentId]/+page.server.ts @@ -0,0 +1,27 @@ +import { getAssignmentAndCemetaryById } from "$lib/server/assignments"; +import type { PageServerLoad } from "./$types"; +import { error, redirect } from "@sveltejs/kit"; + +export const load = (async ({ params, url, locals }) => { + if (!locals.user) { + redirect(303, `/login?redirectTo=${encodeURIComponent(url.toString())}`); + } + + const { assignment, cemetaryPlot } = await getAssignmentAndCemetaryById( + locals.dbConn, + +params.assignmentId, + ); + if (!assignment) { + return error(404, `Cemetary plot with id ${params.assignmentId} not found`); + } + console.debug("Found assignment: ", assignment); + if (assignment.gardenerId !== locals.user.id) { + return error(403, "This assignment isn't for you!"); + } + + return { + user: locals.user, + assignment, + cemetaryPlot, + }; +}) satisfies PageServerLoad; diff --git a/app/src/routes/assignments/[assignmentId]/+page.svelte b/app/src/routes/assignments/[assignmentId]/+page.svelte new file mode 100644 index 0000000..0b36a19 --- /dev/null +++ b/app/src/routes/assignments/[assignmentId]/+page.svelte @@ -0,0 +1,25 @@ + + + + Opgave på {data.cemetaryPlot.address} + + +

Assignment #{data.assignment.id}

+

+ Gravstedet, der skal vedligeholdes er ved {data.cemetaryPlot.address}. +

+

Vedligeholdelsen skal finde sted

+ + -- cgit v1.2.3