diff --git a/frontend/src/lib/components/checkbox/GdprCheckBox.svelte b/frontend/src/lib/components/checkbox/GdprCheckBox.svelte new file mode 100644 index 0000000..0ce3a4e --- /dev/null +++ b/frontend/src/lib/components/checkbox/GdprCheckBox.svelte @@ -0,0 +1,40 @@ + + + + + + diff --git a/frontend/src/routes/(candidate)/(authenticated)/register/+page.svelte b/frontend/src/routes/(candidate)/(authenticated)/register/+page.svelte index dd3297a..cb27763 100644 --- a/frontend/src/routes/(candidate)/(authenticated)/register/+page.svelte +++ b/frontend/src/routes/(candidate)/(authenticated)/register/+page.svelte @@ -2,6 +2,7 @@ import { goto } from '$app/navigation'; import { apiFillDetails } from '$lib/@api/candidate'; import Submit from '$lib/components/button/Submit.svelte'; + import GdprCheckBox from '$lib/components/checkbox/GdprCheckBox.svelte'; import Home from '$lib/components/icons/Home.svelte'; import SchoolBadge from '$lib/components/icons/SchoolBadge.svelte'; @@ -18,11 +19,12 @@ import type { Writable } from 'svelte/store'; import * as yup from 'yup'; - const pageCount = 4; + const pageCount = 5; let pageIndex = 0; let pagesFilled = 0; const formInitialValues = { + gdpr: false, candidate: { name: '', surname: '', @@ -53,6 +55,7 @@ }; const formValidationSchema = yup.object().shape({ + gdpr: yup.boolean().oneOf([true]), candidate: yup.object().shape({ name: yup.string().required(), surname: yup.string(), @@ -156,6 +159,11 @@ const isPageInvalid = (): boolean => { switch (pageIndex) { case 0: + if ($typedErrors['gdpr']) { + return true; + } + break; + case 1: if ( $typedErrors['candidate']['name'] || $typedErrors['candidate']['email'] || @@ -165,7 +173,7 @@ } break; - case 1: + case 2: if ( /* $typedErrors.birthdurname || */ $typedErrors['candidate']['birthplace'] || $typedErrors['candidate']['birthdate'] || @@ -174,7 +182,7 @@ return true; } break; - case 2: + case 3: if ( $typedErrors['parents'][0]['name'] || $typedErrors['parents'][0]['surname'] || @@ -184,7 +192,7 @@ return true; } break; - case 3: + case 4: if ( $typedErrors['parents'][1]['name'] || $typedErrors['parents'][1]['surname'] || @@ -194,7 +202,7 @@ return true; } break; - case 4: + case 5: if ( $typedErrors['candidate']['citizenship'] || $typedErrors['candidate']['personalIdNumber'] || @@ -217,11 +225,26 @@ {#if pageIndex === 0} +
+

Váš souhlas

+

+ V rámci portálu pro přijímací řízení zpracováváme mnoho osobních údajů. Proto je nutný Váš + souhlas s jejich zpracováním. +

+
+ +
+
+ {:else if pageIndex === 1}

Registrace

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Fusce suscipit libero eget - elit. + V rámci usnadnění přijímacího řízení jsme připravili online formulář, který vám pomůže s + vyplněním potřebných údajů.

@@ -251,11 +274,11 @@ />
- {/if} - {#if pageIndex === 1} + {:else if pageIndex === 2}

Něco o tobě

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Fusce suscipit libero eget elit. + Pro registraci je potřeba vyplnit několik údajů o tobě. Tyto údaje budou použity pro + přijímací řízení. Všechny údaje jsou důležité a bez nich se registrace nezdaří.

@@ -301,11 +324,10 @@ />
- {/if} - {#if pageIndex === 2} + {:else if pageIndex === 3}

Už jen kousek!

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Fusce suscipit libero eget elit. + Sběr dat o zákonném zástupci je klíčový pro získání důležitých kontaktů a informací.

@@ -336,11 +358,10 @@
- {/if} - {#if pageIndex === 3} + {:else if pageIndex === 4}

Dobrovolné!

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Fusce suscipit libero eget elit. + V případě, že máte druhého zákonného zástupce (např. otec a matka), můžete jej zde zadat.

@@ -371,11 +392,10 @@
- {/if} - {#if pageIndex === 4} + {:else if pageIndex === 5}

Poslední krok

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Fusce suscipit libero eget elit. + Zadejte prosím své občanství, rodné číslo a obor na který se hlásíte.