diff --git a/package.json b/package.json index ea9e44a..c94850a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hq", - "version": "1.3.4", + "version": "1.4.0", "private": true, "scripts": { "dev": "vite dev", diff --git a/src/routes/admin/division_staff/+page.server.ts b/src/routes/admin/division_staff/+page.server.ts index a6cf581..0efd088 100644 --- a/src/routes/admin/division_staff/+page.server.ts +++ b/src/routes/admin/division_staff/+page.server.ts @@ -52,6 +52,37 @@ export const actions: Actions = { form, }; }, + createAll: async (event) => { + let form = await superValidate(event, formSchema); + + if (!form.valid) { + return fail(400, { form }); + } + + let { user } = await loadUserData(event.cookies, null); + if (!user.isSiteAdmin) { + return fail(400, { form }); + } + + let facilities = await prisma.facility.findMany(); + + for (let f of facilities) { + if (f.dotnetType === 'Subdivision') { + await prisma.userFacilityAssignment.create({ + data: { + id: ulid(), + userId: form.data.cid.toString(), + facilityId: f.id, + assignmentType: "DivisionalStaff", + }, + }); + } + } + + return { + form, + }; + }, delete: async (event) => { let { user } = await loadUserData(event.cookies, null); if (!user.isSiteAdmin) { diff --git a/src/routes/admin/division_staff/+page.svelte b/src/routes/admin/division_staff/+page.svelte index c4bd2bf..2a2cc86 100644 --- a/src/routes/admin/division_staff/+page.svelte +++ b/src/routes/admin/division_staff/+page.svelte @@ -12,7 +12,7 @@ import * as Form from "$lib/components/ui/form"; import { Plus } from "lucide-svelte"; import { Button } from "$lib/components/ui/button"; - import { formSchema, type FormSchema } from "./schema"; + import { formSchema, type FormSchema, formSchema2, type FormSchema2 } from "./schema"; import type { SuperValidated } from "sveltekit-superforms"; import type { PageData } from "./$types"; import { toast } from "svelte-sonner"; @@ -49,6 +49,7 @@ let createDialogOpen = false; export let form: SuperValidated; + export let form2: SuperValidated; let options = { onUpdated: ({ form }) => { @@ -58,6 +59,15 @@ } }, }; + let createDialogOpen2 = false; + let options2 = { + onUpdated: ({ form }) => { + if (form.valid) { + createDialogOpen2 = false; + toast.success("User assignments updated!"); + } + }, + };
@@ -69,7 +79,14 @@ createDialogOpen = true; }}> - Create + New + +
@@ -142,3 +159,33 @@ + + + + + New Divisional Staff Assignment + + +
+ + + + User CID + + + + + + + New All + + +
+
+
diff --git a/src/routes/admin/division_staff/schema.ts b/src/routes/admin/division_staff/schema.ts index ff6f8d2..cc8ba65 100644 --- a/src/routes/admin/division_staff/schema.ts +++ b/src/routes/admin/division_staff/schema.ts @@ -5,4 +5,9 @@ export const formSchema = z.object({ facilityId: z.string(), }); +export const formSchema2 = z.object({ + cid: z.string() +}) + export type FormSchema = typeof formSchema; +export type FormSchema2 = typeof formSchema2;