2023-01-07 16:10:18 +01:00
{% set labelwidth = 'w-48' %}
{% set p=participant %}
{% set formContainerClass = "bg-white rounded-lg shadow-lg " %}
{% macro field(context, name, label, required, type) %}
< label class = "w-full border border-solid border-gray-500 focus-within:border-primary rounded-lg relative flex" >
2023-02-12 01:25:16 +01:00
< input name = "{{name}}" type = "{{type|default('text')}}" id = "{{name}}" placeholder = " " @ keyup = "uuu" class = "bg-white rounded-lg focus:outline-none text-gray-600 text-left placeholder-white peer py-1 px-2 sm:py-2 text-sm sm:text-base sm:px-3 w-full" x-model = "data.{{name}}" / >
2023-01-07 16:10:18 +01:00
< span
2023-02-12 01:25:16 +01:00
class="transition-all duration-200 absolute text-gray-600 left-2 flex bg-white items-center -top-3 px-1 peer-placeholder-shown:bottom-0 peer-placeholder-shown:-top-0
text-xs xs:text-sm peer-placeholder-shown:text-sm xs:peer-placeholder-shown:text-base peer-focus:text-xs xs:peer-focus:text-sm
peer-focus:-top-3 peer-focus:bottom-auto "
2023-01-07 16:10:18 +01:00
>{{label}} {% if required %} < span class = "text-red-800 ml-1" > *< / span > {% endif %}< /span
>
< / label >
{% endmacro %}
{% macro textarea(context, name, label, required, type) %}
< label class = "w-full border border-solid border-gray-500 focus-within:border-primary rounded-lg relative flex" >
2023-01-07 17:42:46 +01:00
< textarea name = "{{name}}" rows = "6" id = "{{name}}" class = "bg-white rounded-lg focus:outline-none text-gray-600 text-left placeholder-white peer py-1 px-2 sm:py-2 text-sm sm:text-base sm:px-3 w-full" x-model = "data.{{name}}" >
2023-01-07 16:10:18 +01:00
< / textarea >
< span
2023-02-12 01:25:16 +01:00
class="transition-all duration-200 absolute text-gray-600 left-2 flex bg-white items-center -top-3 px-1 text-xs xs:text-sm"
2023-01-07 16:10:18 +01:00
>{{label}} {% if required %} < span class = "text-red-800 ml-1" > *< / span > {% endif %}< /span
>
< / label >
{% endmacro %}
{% macro select(context, name, label, required, options) %}
< label class = "w-full border border-solid border-gray-500 focus-within:border-primary rounded-lg relative flex" for = "{{name}}" >
2023-01-07 17:42:46 +01:00
< select name = "{{name}}" id = "{{name}}" class = "bg-white rounded-lg focus:outline-none text-gray-600 text-left peer py-1 px-2 sm:py-2 text-sm sm:text-base sm:px-3 w-full" x-model = "data.{{name}}" >
2023-01-07 16:10:18 +01:00
< option :selected = "data.{{name}} === ''" value = "" > -- kein --< / option >
< template x-for = "model in meta.{{options}}" >
< option :selected = "data.{{name}} === model.id" :value = "model.id" x-text = "model.name" > < / option >
< / template >
< / select >
< span
2023-02-12 01:25:16 +01:00
class="absolute text-gray-600 left-2 flex bg-white items-center -top-3 px-1 text-xs xs:text-sm"
2023-01-07 16:10:18 +01:00
>{{label}} {% if required %} < span class = "text-red-800 ml-1" > *< / span > {% endif %}< /span
>
< / label >
{% endmacro %}
{% macro radio(context, name, label, required, options) %}
< div >
< span
class="text-gray-600 text-sm"
>{{label}} {% if required %} < span class = "text-red-800 ml-1" > *< / span > {% endif %}< /span
>
2023-01-07 17:42:46 +01:00
< div class = "grid grid-cols-2 sm:grid-cols-1 gap-2" >
2023-01-07 16:10:18 +01:00
< template x-for = "option, index in meta.{{options}}" >
< label :for = "`{{name}}-${index}`" class = "block relative flex items-center" >
< input type = "radio" name = "{{name}}" :value = "option.name" x-model = "data.{{name}}" class = "peer absolute invisible" :id = "`{{name}}-${index}`" / >
< span class = "border-neutral-400 border-4 border-solid peer-checked:border-primary absolute left-0 w-6 h-6 rounded-full block" > < / span >
< span class = "peer-checked:bg-primary left-2 w-2 h-2 absolute rounded-full block" > < / span >
< span class = "pl-8" x-text = "option.name" > < / span >
< / label >
< / template >
< / div >
< / div >
{% endmacro %}
{% macro yesno(context, name, label, required) %}
< div >
< div class = "flex flex-col space-y-1" >
< label for = "{{name}}" class = "block relative flex items-center" >
< input type = "checkbox" name = "{{name}}" x-model = "data.{{name}}" class = "peer absolute invisible" id = "{{name}}" / >
< span class = "border-neutral-400 border-4 border-solid peer-checked:border-primary absolute left-0 w-6 h-6 rounded block" > < / span >
< span class = "peer-checked:bg-primary left-2 w-2 h-2 absolute rounded-sm block" > < / span >
2023-02-12 01:25:16 +01:00
< span class = "pl-8" > {{label}} {% if required %} < span class = "text-red-800 ml-1" > *< / span > {% endif %}< / span >
2023-01-07 16:10:18 +01:00
< / label >
< / div >
< / div >
{% endmacro %}
{% macro checkboxes(context, name, label, required, options) %}
< div >
< span
class="text-gray-600 flex text-sm"
>{{label}} {% if required %} < span class = "text-red-800 ml-1" > *< / span > {% endif %}< /span
>
2023-02-12 01:25:16 +01:00
< div class = "mt-2 grid gap-2" >
2023-01-07 16:10:18 +01:00
< template x-for = "option, index in meta.{{options}}" >
< label :for = "`{{name}}-${index}`" class = "block relative flex items-center" >
< input type = "checkbox" name = "{{name}}[]" :value = "option.name" x-model = "data.{{name}}" class = "peer absolute invisible" :id = "`{{name}}-${index}`" / >
< span class = "border-neutral-400 border-4 border-solid peer-checked:border-primary absolute left-0 w-6 h-6 rounded block" > < / span >
< span class = "peer-checked:bg-primary left-2 w-2 h-2 absolute rounded-sm block" > < / span >
2023-01-07 17:42:46 +01:00
< span class = "pl-8 text-sm sm:text-base" x-text = "option.name" > < / span >
2023-01-07 16:10:18 +01:00
< / label >
< / template >
< / div >
< / div >
{% endmacro %}
{% import _self as form %}
< div x-data = "{
2023-02-12 01:25:16 +01:00
data: {
...eventRegistration.data,
event_id: {{__SELF__.event.id}}
},
2023-01-07 16:10:18 +01:00
meta: {
...eventRegistration.meta,
submitRequest: '{{__SELF__.alias ~ '::onSubmit'}}',
},
...eventRegistration.methods,
...eventRegistration.spreads,
}" x-init="eventRegistration.init">
{#+++ registrationForm +++#}
< form x-ref = "form" @ submit . prevent = "submit" class = "my-6" novalidate >
2023-01-07 18:13:03 +01:00
< div x-ref = "eventFormContainer" class = "{{formContainerClass}}" x-show = "meta.finished === false" >
2023-02-12 01:25:16 +01:00
{% set arrowClass = "flex flex-col md:flex-row items-center justify-center md:justify-start px-2 flex-auto md:pl-6 h-12 md:h-16 transition duration-300 relative" %}
2023-01-07 17:42:46 +01:00
{% set positionClass = "flex items-center justify-center w-4 md:w-6 h-4 md:h-6 rounded-full bg-teal-800 text-teal-200 font-goudy transition duration-300" %}
2023-01-07 16:10:18 +01:00
{% set arrowFont = "text-sm text-teal-100" %}
< div class = "sticky top-0 z-10 hidden sm:flex overflow-hidden rounded-t-lg" >
< template x-for = "(slide, index) in meta.slides" >
< a @ click = "slideTo($event, index)" href = "#" class = "{{arrowClass}}" :class = "{ 'bg-emerald-500': index <= meta.active, 'bg-primary-700': index > meta.active }" >
2023-02-12 01:25:16 +01:00
< svg preserveAspectRatio = "none" class = "h-full w-3 absolute left-0 text-emerald-500 transition duration-300" viewBox = "0 0 100 100" :class = "{'opacity-100': index !== 0 && index-1 <= meta.active, 'opacity-0': !(index !== 0 && index-1 <= meta.active)}" >
< path d = "M0,0 100,50 0,100" fill = "currentColor" > < / path >
< / svg >
2023-01-07 16:10:18 +01:00
< span class = "{{positionClass}}" x-html = "index+1" > < / span >
< span class = "{{arrowFont}}" x-html = "slide" > < / span >
< / a >
< / template >
< / div >
2023-01-07 17:42:46 +01:00
< div class = "flex items-center justify-between px-4 overflow-hidden rounded-t-lg sm:hidden bg-primary-700 " >
< a @ click . prevent = "slideTo($event, meta.active-1)" href = "#" class = "{{positionClass}} w-7 h-7 flex-none" :class = "{'opacity-40': meta.active == 0}" >
< svg class = "{{arrowFont}} fill-current rotate-90 w-3 h-3" > < use xlink:href = "{{'resources/img/sprite.svg'|theme}}#chevron" > < / use > < / svg >
2023-01-07 16:10:18 +01:00
< / a >
2023-01-07 17:42:46 +01:00
< div x-ref = "mobileSlider" class = "relative flex flex-no-wrap overflow-hidden snap-x snap-mandatory snap-always scroll-smooth" >
2023-01-07 16:10:18 +01:00
< template x-for = "(slide, index) in meta.slides" >
< div class = "flex-none w-full" >
< div @ click = "slideTo($event, index)" href = "#" class = "{{arrowClass}}" >
< span class = "{{positionClass}}" x-html = "index+1" > < / span >
< span class = "{{arrowFont}}" x-html = "slide" > < / span >
< / div >
< / div >
< / template >
< / div >
2023-01-07 17:42:46 +01:00
< a @ click . prevent = "slideTo($event, meta.active+1)" href = "#" class = "{{positionClass}} w-7 h-7 flex-none" :class = "{'opacity-40': meta.active == meta.slides.length - 1}" >
< svg class = "{{arrowFont}} fill-current w-3 h-3 transform -rotate-90" > < use xlink:href = "{{'resources/img/sprite.svg'|theme}}#chevron" > < / use > < / svg >
2023-01-07 16:10:18 +01:00
< / a >
< / div >
2023-01-07 17:42:46 +01:00
< div class = "py-4 xs:py-8" >
2023-01-07 16:10:18 +01:00
< div x-ref = "slider" class = "relative flex flex-no-wrap overflow-hidden snap-x snap-mandatory snap-always scroll-smooth" >
{% set labelClass = "fancy-textinput size-lg dark" %}
2023-01-07 17:42:46 +01:00
{% set gliderElClass = "w-full flex-none snap-center slider-element px-3 xs:px-6" %}
2023-01-07 16:10:18 +01:00
{% set descClass = "text-sm sm_text-base text-gray-800 leading-tight mb-5" %}
< div class = "{{gliderElClass}}" >
< div class = "{{descClass}}" > Gebe hier deine Funktion an, die du auf der Veranstaltung wahrnehmen willst. Danach benötigen wir ein paar persönliche Daten von dir. < / div >
< div class = "{{descClass}}" > < / div >
2023-01-07 17:42:46 +01:00
< div class = "grid grid-cols-2 gap-4 mt-6" >
2023-01-07 16:10:18 +01:00
{{ form.select(_context, 'activity', 'Funktion', true, 'activities') }}
{{ form.select(_context, 'gender', 'Geschlecht', true, 'genders') }}
{{ form.field(_context, 'firstname', 'Vorname', true) }}
{{ form.field(_context, 'lastname', 'Nachname', true) }}
{{ form.field(_context, 'birthday', 'Geburtsdatum', true, 'date') }}
2023-01-07 18:57:55 +01:00
{{ form.field(_context, 'address', 'Addresse', true) }}
2023-01-07 16:10:18 +01:00
{{ form.field(_context, 'zip', 'PLZ', true) }}
2023-02-12 01:25:16 +01:00
{{ form.field(_context, 'location', 'Wohnort', true) }}
< div class = "col-span-full sm:col-span-1" >
{{ form.field(_context, 'phone', 'Telefonnummer', true, 'tel') }}
< / div >
< div class = "col-span-full sm:col-span-1" >
{{ form.field(_context, 'email', 'E-Mail-Adresse', true, 'email') }}
< / div >
2023-01-07 16:10:18 +01:00
< / div >
2023-01-07 16:48:33 +01:00
{% partial __SELF__.alias ~ '::navigation' first="1" %}
2023-01-07 16:10:18 +01:00
< / div >
< div class = "{{gliderElClass}}" >
< div class = "{{descClass}}" > Gebe hier deine Gruppenzugehörigkeit und weitere wichtige Infos zur Veranstaltung an.< / div >
< div class = "grid sm:grid-cols-2 gap-4 mt-6" >
{{ form.select(_context, 'group', 'Stamm', false, 'groups') }}
{{ form.field(_context, 'emergency_phone', 'Notfallkontakt (Tel)', true) }}
{{ form.select(_context, 'agegroup', 'Stufe (zum Zeitpunkt des Lagers)', true, 'agegroups') }}
2023-01-07 18:42:56 +01:00
< template x-if = "data.agegroup === 'Leiter*in'" >
2023-01-07 16:10:18 +01:00
{{ form.select(_context, 'agegroup_leader', 'Stufe die du leitest', false, 'agegroups_leaders') }}
< / template >
2023-01-07 18:42:56 +01:00
< template x-if = "data.agegroup !== 'Leiter*in'" >
2023-01-07 16:10:18 +01:00
< div > < / div >
< / template >
< template x-if = "data.activity === 'Orga'" >
{{ form.radio(_context, 'vorteam', 'Möchtest du am Vorteam teilnehmen?', true, 'boolean') }}
< / template >
{{ form.checkboxes(_context, 'food_preferences', 'Essgewohnheiten & Unverträglichkeiten', false, 'foodPreferences') }}
< / div >
{% partial __SELF__.alias ~ '::navigation' %}
< / div >
< div class = "{{gliderElClass}}" >
< div class = "{{descClass}}" > Fast geschafft! Wenn du sonst noch etwas loswerden willst, kannst du das hier tun.< / div >
2023-01-07 18:42:56 +01:00
< div class = "flex flex-row items-center p-4 bg-red-100 border-2 border-red-400 rounded form-group shadow-sm relative" x-show = "data.agegroup === 'Leiter*in'" >
2023-01-07 17:42:46 +01:00
< div class = "flex items-center justify-center w-8 h-8 mr-3 bg-red-500 rounded-full flex-none absolute sm:static top-0 -mt-4 sm:-mt-0" >
2023-01-07 16:10:18 +01:00
< div class = "flex items-center justify-center w-5 h-5 bg-red-100 rounded-full" >
< svg class = "w-5 h-5 text-red-700 border-gray-400 fill-current border-5 fill-current" > < use xlink:href = "/themes/october-theme/resources/img/sprite.svg#exclamation" > < / use > < / svg >
< / div >
< / div >
< span class = "grow text-sm font-semibold text-red-800" >
< p > Als teilnehmende*r Leiter*in ist für die Teilnahme am BeLa ein eingereichtes Führungszeugnis ohne Einträge und eine aktive Präventionsschulung zwingend erforderlich.< / p >
< p class = "mt-2" > Dies muss spätestens zu Beginn des BeLas vorliegen. Ansonsten kannst du nicht am BeLa teilnehmen.< / p >
< p class = "mt-2" > Weitere Infos findest du in der < a class = "text-rose-500 hover:text-rose-900" target = "_BLANK" href = "https://dpsg-koeln.de/fuer-mitglieder/faqs#pravention" > FAQ-Sektion der Diözese Köln zu Prävention< / a > . Außerdem kannst du dich auch an deinen StaVo oder den < a class = "text-rose-500 hover:text-rose-900" href = "mailto:vorstand@dpsgbergischland.de" > Bezirksvorstand< / a > wenden.< / p >
< / span >
< / div >
< div class = "grid gap-4 mt-6" >
{{ form.textarea(_context, 'misc', 'Sonstige Anmerkungen', false) }}
{{ form.yesno(_context, 'foto', 'Ich akzeptiere, dass vor Ort Foto-und Videoaufnahmen von mir gemacht werden dürfen.', false) }}
2023-02-12 01:25:16 +01:00
{{ form.yesno(_context, 'parent', 'Ich bin über 18 Jahre alt oder für die genannte Person erziehungsberechtigt.', true) }}
2023-01-07 16:10:18 +01:00
< / div >
2023-01-07 16:48:33 +01:00
{% partial __SELF__.alias ~ '::navigation' last="1" %}
2023-01-07 16:10:18 +01:00
< / div >
< / div >
< / div >
< / div >
2023-01-07 18:13:03 +01:00
< div class = "{{formContainerClass}} max-w-[700px] mx-auto" x-show = "meta.finished === true" >
2023-02-12 01:25:16 +01:00
< div class = "bg-white shadow-2xl ring-1 ring-gray-900/5 rounded-xl grid grid-cols-1 sm:grid-cols-[1fr_250px] grid-rows-[5rem_1fr] sm:grid-rows-[12rem_1fr] gap-6 overflow-hidden bg-gradient-to-bl from-white via-white to-black/10" >
< div class = "bg-primary w-32 h-32 md:w-40 md:h-40 flex justify-center items-center [clip-path:circle(70%_at_30%_30%)]" >
< svg class = "w-20 h-20 md:w-24 md:h-24 text-emerald-300 relative -left-3 -top-3" xmlns = "http://www.w3.org/2000/svg" class = "h-5 w-5" viewBox = "0 0 20 20" fill = "currentColor" >
2023-01-07 18:13:03 +01:00
< path fill-rule = "evenodd" d = "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule = "evenodd" / >
< / svg >
< / div >
< div class = "isolate self-center justify-self-end row-span-2 sm:pt-8 sm:pb-8 relative -right-3" >
< div class = "absolute right-0 top-0 h-full flex items-center justify-end" >
< div class = "bg-primary w-96 h-96 flex [clip-path:circle(50%_at_110%_50%)] sm:[clip-path:circle(50%_at_80%_50%)]" > < / div >
2023-01-07 16:10:18 +01:00
< / div >
2023-01-07 18:13:03 +01:00
< div class = "overflow-hidden rounded-l-lg rotate-2 shadow relative z-10 -left-2" >
< img class = "w-64 h-32 object-cover" src = "{{'danke/1.jpg'|media}}" / >
2023-01-07 16:10:18 +01:00
< / div >
2023-01-07 18:13:03 +01:00
< div class = "overflow-hidden rounded-l-lg -rotate-2 shadow relative left-2" >
< img class = "w-64 h-32 object-cover" src = "{{'danke/2.jpg'|media}}" / >
2023-01-07 16:10:18 +01:00
< / div >
< / div >
2023-02-12 01:25:16 +01:00
< div class = "self-end flex-grow pb-8 pl-8 pr-8 sm:pr-0 pt-6 sm:pt-0" >
2023-01-07 18:13:03 +01:00
< div class = "font-bold text-xl" > Vielen Dank für deine Anmeldung.< / div >
2023-02-12 01:25:16 +01:00
< div class = "text-sm mt-4" > In Kürze erhälst du eine Bestätigung per E-Mail mit weiteren Zahlungs-Infos. Eine letzte Info wird dir zeitnah vor dem Lager zugeschickt.< / div >
2023-01-07 16:10:18 +01:00
< / div >
2023-01-07 18:13:03 +01:00
< / div >
2023-01-07 16:10:18 +01:00
< / div >
2023-01-07 18:13:03 +01:00
< / form >
2023-01-07 16:10:18 +01:00
< / div >