do not show footer on signup page
All checks were successful
deploy / build-and-deploy (push) Successful in 22s

This commit is contained in:
bytedream 2025-05-18 16:00:01 +02:00
parent 28ead9a281
commit 078ae89708
3 changed files with 108 additions and 119 deletions

View File

@ -1,20 +0,0 @@
---
import WebsiteLayout from './WebsiteLayout.astro';
interface Props {
signupEnabled: boolean;
}
const { signupEnabled } = Astro.props;
---
<WebsiteLayout title="Anmeldung">
<div
class="flex justify-center w-full min-h-screen bg-base-200"
class:list={[!signupEnabled ? 'max-h-screen overflow-hidden' : undefined]}
>
<div class="relative grid card w-11/12 xl:w-2/3 2xl:w-1/2 p-6 my-12 bg-base-100 shadow-lg h-min">
<slot />
</div>
</div>
</WebsiteLayout>

View File

@ -7,9 +7,11 @@ import Menu from '@components/website/layout/Menu.svelte';
interface Props { interface Props {
title: string; title: string;
description?: string; description?: string;
footer?: boolean;
} }
const { title, description } = Astro.props; const { title, description, footer = true } = Astro.props;
--- ---
<BaseLayout title={title} description={description} viewTransition> <BaseLayout title={title} description={description} viewTransition>
@ -19,7 +21,7 @@ const { title, description } = Astro.props;
<nav> <nav>
<Menu client:load transition:persist /> <Menu client:load transition:persist />
</nav> </nav>
<footer class="flex justify-around items-center h-14 w-full bg-base-300 relative"> <footer class="flex justify-around items-center h-14 w-full bg-base-300 relative" hidden={!footer}>
<div class="hidden sm:block"> <div class="hidden sm:block">
<p>© {new Date().getFullYear()} mhsl.eu</p> <p>© {new Date().getFullYear()} mhsl.eu</p>
</div> </div>

View File

@ -1,5 +1,5 @@
--- ---
import SignupLayout from '@layouts/website/SignupLayout.astro'; import WebsiteLayout from '@layouts/website/WebsiteLayout.astro';
import Checkbox from '@components/input/Checkbox.svelte'; import Checkbox from '@components/input/Checkbox.svelte';
import Input from '@components/input/Input.svelte'; import Input from '@components/input/Input.svelte';
import RulesPopup from '@components/website/signup/RulesPopup.svelte'; import RulesPopup from '@components/website/signup/RulesPopup.svelte';
@ -20,104 +20,111 @@ const signupDisabledMessage = signupSetting[SettingKey.SignupDisabledMessage] ??
const signupDisabledSubMessage = signupSetting[SettingKey.SignupDisabledSubMessage] ?? ''; const signupDisabledSubMessage = signupSetting[SettingKey.SignupDisabledSubMessage] ?? '';
--- ---
<SignupLayout signupEnabled={signupEnabled}> <WebsiteLayout title="Anmeldung" footer={false}>
<h1 class="text-center text-3xl lg:text-5xl">Anmeldung</h1> <div
<form id="signup"> class="flex justify-center w-full min-h-screen bg-base-200"
<div class="divider">Persönliche Angaben</div> class:list={[!signupEnabled ? 'max-h-screen overflow-hidden' : undefined]}
<div class="mx-2 grid grid-cols-1 sm:grid-cols-2 gap-x-4"> >
<Input <div class="relative grid card w-11/12 xl:w-2/3 2xl:w-1/2 p-6 my-12 bg-base-100 shadow-lg h-min">
id="firstname" <h1 class="text-center text-3xl lg:text-5xl">Anmeldung</h1>
type="text" <form id="signup">
label="Vorname" <div class="divider">Persönliche Angaben</div>
required <div class="mx-2 grid grid-cols-1 sm:grid-cols-2 gap-x-4">
validation={{ <Input
pattern: '^\\w{2,}', id="firstname"
hint: 'Bitte gib Deinen vollständigen Vornamen an, dieser muss mindestens aus 2 Zeichen bestehen.' type="text"
}} label="Vorname"
dynamicWidth required
/> validation={{
<Input pattern: '^\\w{2,}',
id="lastname" hint: 'Bitte gib Deinen vollständigen Vornamen an, dieser muss mindestens aus 2 Zeichen bestehen.'
type="text" }}
label="Nachname" dynamicWidth
required />
validation={{ <Input
pattern: '^\\w{2,}', id="lastname"
hint: 'Bitte gib Deinen vollständigen Nachnamen an, dieser muss mindestens aus 2 Zeichen bestehen.' type="text"
}} label="Nachname"
dynamicWidth required
/> validation={{
<Input pattern: '^\\w{2,}',
id="birthday" hint: 'Bitte gib Deinen vollständigen Nachnamen an, dieser muss mindestens aus 2 Zeichen bestehen.'
type="date" }}
label="Geburtstag" dynamicWidth
required />
validation={{ <Input
max: new Date(Date.now() - 1000 * 60 * 60 * 24 * 365 * 6).toLocaleDateString('sv-SE'), id="birthday"
hint: 'Bitte gib Deinen vollständigen Geburtstag und die korrekte Jahreszahl an. Du musst mindestens 6 Jahre alt sein.' type="date"
}} label="Geburtstag"
dynamicWidth required
> validation={{
<span slot="notice">Die Angabe hat keine Auswirkungen auf das Spielgeschehen.</span> max: new Date(Date.now() - 1000 * 60 * 60 * 24 * 365 * 6).toLocaleDateString('sv-SE'),
</Input> hint: 'Bitte gib Deinen vollständigen Geburtstag und die korrekte Jahreszahl an. Du musst mindestens 6 Jahre alt sein.'
<Input }}
id="phone" dynamicWidth
type="tel"
label="Telefonnummer"
validation={{
pattern: '^[+\\(\\)\\s\\d]+$',
hint: 'Bitte gib Deine vollständige Telefonnummer an, diese darf keine ungültigen Zeichen enthalten'
}}
dynamicWidth
>
<span slot="notice">
Diese nutzen wir, um Dich in der Whatsapp-Gruppe zuzuordnen und kontaktieren zu können.
<br />
<b>Die Angabe ist freiwillig, hilft den Administratoren jedoch sehr!</b>
</span>
</Input>
</div>
<div class="divider">Spiel</div>
<div class="mx-2 grid grid-cols-1 sm:grid-cols-2 gap-x-4">
<Input id="username" type="text" label="Minecraft-Spielername" required dynamicWidth />
<Input id="teamMember" type="text" label="Mitspieler" required dynamicWidth>
<span slot="notice"
>Trage hier den Minecraft-Spielername des Mitspieler ein, mit dem du in ein Team möchtest. Auch dieser muss
bei seiner Anmeldung deinen Namen eintragen. Nur wenn ihr beide eure Namen gegenseitig eingetragen habt, kann
ein Team erstellt werden.</span
>
</Input>
</div>
<div class="divider"></div>
<div class="mx-2 grid gap-y-3 mb-6">
<Checkbox id="checkbox" required>
<span slot="label">
Ich bin mit der Speicherung meiner in der Anmeldung angegebenen, persönlichen Daten einverstanden. Siehe <a
class="link"
href="https://mhsl.eu/id.html"
target="_blank">Datenschutz</a
> >
</span> <span slot="notice">Die Angabe hat keine Auswirkungen auf das Spielgeschehen.</span>
</Checkbox> </Input>
<Checkbox id="logs" required> <Input
<span slot="label"> id="phone"
Ich bin mit der Speicherung in Form von Logs aller meiner, beim Spielen anfallenden, persönlichen Daten durch type="tel"
den Server einverstanden label="Telefonnummer"
</span> validation={{
<span slot="notice" class="text-[.65rem]"> pattern: '^[+\\(\\)\\s\\d]+$',
Dies betrifft jede Interaktion im Spiel und zugehörige Daten wie z.B. Chatnachrichten welche vom Minecraft hint: 'Bitte gib Deine vollständige Telefonnummer an, diese darf keine ungültigen Zeichen enthalten'
Client an den Server übermittelt werden }}
</span> dynamicWidth
</Checkbox> >
<Checkbox id="rules" required> <span slot="notice">
<span slot="label"> Diese nutzen wir, um Dich in der Whatsapp-Gruppe zuzuordnen und kontaktieren zu können.
Ich bin mit den <a class="link" onclick="">Regeln</a> einverstanden und achte sie <br />
</span> <b>Die Angabe ist freiwillig, hilft den Administratoren jedoch sehr!</b>
</Checkbox> </span>
</Input>
</div>
<div class="divider">Spiel</div>
<div class="mx-2 grid grid-cols-1 sm:grid-cols-2 gap-x-4">
<Input id="username" type="text" label="Minecraft-Spielername" required dynamicWidth />
<Input id="teamMember" type="text" label="Mitspieler" required dynamicWidth>
<span slot="notice"
>Trage hier den Minecraft-Spielername des Mitspieler ein, mit dem du in ein Team möchtest. Auch dieser
muss bei seiner Anmeldung deinen Namen eintragen. Nur wenn ihr beide eure Namen gegenseitig eingetragen
habt, kann ein Team erstellt werden.</span
>
</Input>
</div>
<div class="divider"></div>
<div class="mx-2 grid gap-y-3 mb-6">
<Checkbox id="checkbox" required>
<span slot="label">
Ich bin mit der Speicherung meiner in der Anmeldung angegebenen, persönlichen Daten einverstanden. Siehe <a
class="link"
href="https://mhsl.eu/id.html"
target="_blank">Datenschutz</a
>
</span>
</Checkbox>
<Checkbox id="logs" required>
<span slot="label">
Ich bin mit der Speicherung in Form von Logs aller meiner, beim Spielen anfallenden, persönlichen Daten
durch den Server einverstanden
</span>
<span slot="notice" class="text-[.65rem]">
Dies betrifft jede Interaktion im Spiel und zugehörige Daten wie z.B. Chatnachrichten welche vom Minecraft
Client an den Server übermittelt werden
</span>
</Checkbox>
<Checkbox id="rules" required>
<span slot="label">
Ich bin mit den <a class="link" onclick="">Regeln</a> einverstanden und achte sie
</span>
</Checkbox>
</div>
<button class="btn btn-neutral">Anmeldung absenden</button>
</form>
</div> </div>
<button class="btn btn-neutral">Anmeldung absenden</button> </div>
</form> </WebsiteLayout>
</SignupLayout>
<RulesPopup client:idle /> <RulesPopup client:idle />