From 21f6be36e5873ab012d565d2ad707bb589c3f051 Mon Sep 17 00:00:00 2001 From: an2n Date: Fri, 28 Jun 2024 12:01:13 +0200 Subject: [PATCH] feat(custom-options): add radio buttons as option (#79) Co-authored-by: Anton Lilleby --- README.md | 59 ++++++++++--------- .../external/EventFormExternal.svelte | 3 +- .../external/RegistrationFormExternal.svelte | 6 +- .../UnregistrationFormExternal.svelte | 10 ++-- .../internal/EventFormInternal.svelte | 1 + .../internal/EventParticipantsInternal.svelte | 2 +- .../internal/RegistrationFormInternal.svelte | 8 +-- .../UnregistrationFormInternal.svelte | 2 +- app/src/components/shared/Deadline.svelte | 5 +- app/src/components/shared/EventSummary.svelte | 4 +- .../shared/RegistrationCustomOption.svelte | 30 +++++++--- app/src/lib/actions/internal/action.ts | 4 +- app/src/lib/auth/secret.ts | 2 +- app/src/lib/email/event/registration.ts | 19 +++++- app/src/lib/email/event/unregistration.ts | 2 +- app/src/models/sanity.model.ts | 6 +- .../routes/api/send-event-canceled/+server.ts | 4 +- .../routes/api/send-event-update/+server.ts | 4 +- studio/models/sanity.model.ts | 6 +- studio/schema.json | 22 ++++--- studio/schemas/event.ts | 27 +++++---- 21 files changed, 137 insertions(+), 89 deletions(-) diff --git a/README.md b/README.md index 11e18a3..8467c5b 100644 --- a/README.md +++ b/README.md @@ -62,17 +62,7 @@ Design drodling finner man her: [Nettside design](https://www.figma.com/design/Z ## Sanity -### Deploy - -Sanity Studio blir deployet til [https://capra.sanity.studio/](https://capra.sanity.studio/). Github Actions deploy utløses ved push til main-branch og endring i /studio. Det er også mulig å gjøre det manuelt ved å navigere til /studio og kjøre følgende kommando: - -```bash -sanity deploy -``` - -Administrering av Sanity instansen kan gjøres via [https://www.sanity.io/manage/personal/project/](https://www.sanity.io/manage/personal/project/). - -## Bygg +### Bygg For å bygge en produksjonsversjon av Sanity studio lokalt, naviger deg til /studio og kjør følgende kommando: @@ -82,21 +72,29 @@ pnpm build Bygg bør alltid kjøres som en del av vår pull request policy 👷 -## Lint +### Deploy -Sanity/SvelteKit templaten [sanity-template-sveltekit-clean](https://github.com/sanity-io/sanity-template-sveltekit-clean) hadde en broken eslint konfigurasjon. Har derfor prøvd å oppgradere til eslint 9 med flatconfig fra denne [issuen](https://github.com/sveltejs/eslint-plugin-svelte/issues/732). 👷 Det er en del lint-errors som må undersøkes. +Sanity Studio blir deployet til [https://capra.sanity.studio/](https://capra.sanity.studio). +GitHub Actions CI/CD deploy kjører automatisk ved push til main-branch og ved endringer i /studio mappen. Alternativt kan deploy også utføres manuelt ved å navigere til /studio-katalogen og kjøre følgende kommando: -## SvelteKit +```bash +sanity deploy +``` -### Deploy +Administrering av Sanity instansen kan gjøres via [https://www.sanity.io/manage/personal/project/](https://www.sanity.io/manage/personal/project/). -SvelteKit blir foreløpig deployet til [https://capra-web.vercel.app/](https://capra-web.vercel.app/) fra /app med følgenden kommando: +### TypeScript Generering -```bash -vercel deploy +For å generere typer av innholdsskjemaer, kjør følgende kommandoer fra /studio: + +```sh +sanity schema extract --enforce-required-fields +sanity typegen generate ``` -👷 Vi er på en Vercel-plan som ikke tillater bygg og deploy i en organisasjon. Må undersøke CI/CD-løsninger på et tidspunkt for å automatisere vår deploy prosess. +NB: Når sanity.model.ts er generert i /studio/models, skal den også kopieres til /app. + +## SvelteKit ### Bygg @@ -108,16 +106,19 @@ pnpm build Bygg bør alltid kjøres som en del av vår pull request policy 👷 -### TypeScript Generering +### Deploy -For å generere typer av innholdsskjemaer, kjør følgende kommandoer fra /studio: +SvelteKit blir foreløpig deployet til [https://capra-web.vercel.app/](https://capra-web.vercel.app/) fra /app med følgenden kommando: -```sh -sanity schema extract --enforce-required-fields -sanity typegen generate +```bash +vercel deploy ``` -NB: Når sanity.model.ts er generert i /studio/models, skal den også kopieres til /app. +👷 Vi er på en Vercel-plan som ikke tillater bygg og deploy i en organisasjon. Må undersøke CI/CD-løsninger på et tidspunkt for å automatisere vår deploy prosess. + +### Lint + +SvelteKit templaten [sanity-template-sveltekit-clean](https://github.com/sanity-io/sanity-template-sveltekit-clean) hadde en broken eslint konfigurasjon. Har derfor prøvd å oppgradere til eslint 9 med flatconfig fra denne [issuen](https://github.com/sveltejs/eslint-plugin-svelte/issues/732). 👷 Det er en del lint-errors som må undersøkes. ## Supabase @@ -155,7 +156,7 @@ Vil du klikke deg rundt i browser for å se hva som skjer i testene, sleng på ` Plausible tilbyr en måte å analysere trafikk på nettstedet. Den er fritt for cookies og samler ingen personopplysninger. Vi trenger derfor ingen cookie consent. For å integrere Plausible er det lagt til et sporingsskriptet i HTML-headeren. Sporingen for å måle og analysere besøksstatistikk vises i et Sanity dashboard. -Vi er på en trial versjon foreløpig 👷 +Vi er på en trial-plan foreløpig 👷 ## Slack @@ -165,6 +166,8 @@ Når et arrangement publiseres for første gang, vil det automatisk genereres en E-post med kalenderinvitasjon (.ics-fil) sendes fra SvelteKit på serversiden. På grunn av manglende tilgang til en server fra Sanity, har vi satt opp et API-endepunkt i SvelteKit som Sanity kan kommunisere med for å sende e-post. Som SMTP host benytter vi oss av [Mandrill](https://mandrillapp.com/). Innlogging skjer via Capra sin Mailchimp bruker siden Mandrill er en underleverandær av dem. +E-post domene for alle selskaper må verifiseres. Vi er på en trial-plan her og 👷 + ### Påmelding Når en bruker melder seg på et arrangement, utløses følgende prosess: @@ -209,8 +212,8 @@ Ved avlysing av et arrangement i Sanity: For å teste e-postfunksjonaliteten lokalt: -1. Legg til `localhost` i `Access-Control-Allow-Origin`. -2. Fjern "development"-sjekker i funksjonskallene for å kjøre i lokalt miljø. +1. Fjern "development"-sjekker i funksjonskallene for å kjøre i lokalt miljø. +2. For å teste e-post sendt fra Sanity: Legg til `http://localhost:3333` i `Access-Control-Allow-Origin`. ### Kalenderinvitasjon 👷 diff --git a/app/src/components/external/EventFormExternal.svelte b/app/src/components/external/EventFormExternal.svelte index 626200d..ecfa459 100644 --- a/app/src/components/external/EventFormExternal.svelte +++ b/app/src/components/external/EventFormExternal.svelte @@ -23,6 +23,8 @@ delayed: registrationDelayed, enhance: registrationEnhance, } = superForm(data.registrationForm, { + resetForm: false, + dataType: "json", validators: zod(registrationSchemaExternal), delayMs: 500, async onSubmit() { @@ -38,7 +40,6 @@ enhance: unregistrationEnhance, } = superForm(data.unregistrationForm, { validators: zod(unregistrationSchemaExternal), - dataType: "json", delayMs: 500, async onSubmit() { await new Promise((result) => setTimeout(result, 500)); diff --git a/app/src/components/external/RegistrationFormExternal.svelte b/app/src/components/external/RegistrationFormExternal.svelte index 64be779..8b3fc0c 100644 --- a/app/src/components/external/RegistrationFormExternal.svelte +++ b/app/src/components/external/RegistrationFormExternal.svelte @@ -6,7 +6,7 @@ import Deadline from "$components/shared/Deadline.svelte"; import RegistrationCustomOption from "$components/shared/RegistrationCustomOption.svelte"; import { dateHasPassed } from "$lib/utils/date.util"; - import { vercelStegaCleanAll } from "@sanity/client/stega"; + import { stegaClean } from "@sanity/client/stega"; export let event: Event; export let numberOfParticipants: number; @@ -97,8 +97,8 @@ {#each event.customOptions as customOption} {/each} {#if $errors.customOptions} diff --git a/app/src/components/external/UnregistrationFormExternal.svelte b/app/src/components/external/UnregistrationFormExternal.svelte index 1f35cd8..633f014 100644 --- a/app/src/components/external/UnregistrationFormExternal.svelte +++ b/app/src/components/external/UnregistrationFormExternal.svelte @@ -16,14 +16,14 @@
-
+

-

Ønsker du å melde deg av?

+

Ønsker du å melde deg av?

@@ -34,7 +34,7 @@ name="email" bind:value={$form.email} /> -