Added new RSVP-Form with translations

This commit is contained in:
spetznas committed 2026-06-17 18:26:04 +02:00
1 parent 6101a72fd5
commit 060b3723a8
87 files changed
+3247 -1219

No files matched your search

+183 -32
View File
@@ -138,19 +138,7 @@ body {
</div>
{{ end }}
<!-- <!-1- RSVP -1-> -->
<!-- <div class="section rsvp"> -->
<!-- <h2>📝 {{ i18n "rsvp_title" }}</h2> -->
<!-- {{ with .Params.rsvp.deadline }} -->
<!-- <p>{{ i18n "rsvp_deadline" }} <strong>{{ . }}</strong>.</p> -->
<!-- {{ end }} -->
<!-- {{ with .Params.rsvp.form }} -->
<!-- <p><a href="{{ . }}" target="_blank">{{ i18n "rsvp_form" }}</a></p> -->
<!-- {{ end }} -->
<!-- </div> -->
<!-- RSVP -->
<div class="section rsvp">
<h2>📝 {{ i18n "rsvp_title" }}</h2>
<h2>📝 {{ i18n "rsvp_title" }}</h2>
{{ with .Params.rsvp.deadline }}
<p>{{ i18n "rsvp_deadline" }} <strong>{{ . }}</strong>.</p>
{{ end }}
@@ -158,36 +146,199 @@ body {
<p>{{ i18n "rsvp_email" }}: {{ partial "obfuscate_email.html" . }}</p>
{{ end }}
<!-- RSVP Form -->
<form action="/rsvp-submit.php" method="POST">
<label for="first_name">{{ i18n "rsvp_firstname" }}:</label><br>
<input type="text" id="first_name" name="first_name" required><br><br>
<!-- Personal Information -->
<label for="last_name">{{ i18n "rsvp_lastname" }}:</label><br>
<input type="text" id="last_name" name="last_name" required><br><br>
<h3>{{ i18n "rsvp_personal_information" }}</h3>
<label>{{ i18n "rsvp_drinks" }}:</label><br>
<label for="first_name">{{ i18n "rsvp_firstname" }}:</label><br> <input type="text" id="first_name" name="first_name" required><br><br>
<input type="checkbox" id="wine" name="drinks[]" value="Wine">
<label for="wine">{{ i18n "rsvp_drinks_wine" }}</label><br>
<label for="last_name">{{ i18n "rsvp_lastname" }}:</label><br> <input type="text" id="last_name" name="last_name" required><br><br>
<input type="checkbox" id="beer" name="drinks[]" value="Beer">
<label for="beer">{{ i18n "rsvp_drinks_beer" }}</label><br>
<label for="email">{{ i18n "rsvp_email_address" }}:</label><br> <input type="email" id="email" name="email" required><br><br>
<input type="checkbox" id="juice" name="drinks[]" value="Juice">
<label for="juice">{{ i18n "rsvp_drinks_juice" }}</label><br><br>
<label for="phone">{{ i18n "rsvp_phone" }}:</label><br> <input type="tel" id="phone" name="phone" placeholder="+45 12 34 56 78"><br> <small>{{ i18n "rsvp_phone_whatsapp_hint" }}</small><br><br>
<label for="allergies">{{ i18n "rsvp_allergies" }}:</label><br>
<input type="text" id="allergies" name="allergies"><br><br>
<!-- Attendance -->
<!-- optional but recommended: helps prevent spam bots -->
<input type="text" name="website" style="display:none">
<h3>{{ i18n "rsvp_attendance" }}</h3>
<button type="submit">{{ i18n "rsvp_send" }}</button>
<input type="radio" id="attending_yes" name="attendance" value="Yes" required>
<label for="attending_yes">{{ i18n "rsvp_attending_yes" }}</label><br>
<input type="radio" id="attending_no" name="attendance" value="No">
<label for="attending_no">{{ i18n "rsvp_attending_no" }}</label><br><br>
<!-- Drinks -->
<h3>{{ i18n "rsvp_drinks" }}</h3>
<input type="checkbox" id="wine" name="drinks[]" value="Wine">
<label for="wine">{{ i18n "rsvp_drinks_wine" }}</label><br>
<input type="checkbox" id="beer" name="drinks[]" value="Beer">
<label for="beer">{{ i18n "rsvp_drinks_beer" }}</label><br>
<input type="checkbox" id="juice" name="drinks[]" value="Juice">
<label for="juice">{{ i18n "rsvp_drinks_juice" }}</label><br>
<input type="checkbox" id="water" name="drinks[]" value="Water">
<label for="water">{{ i18n "rsvp_drinks_water" }}</label><br>
<input type="checkbox" id="cola" name="drinks[]" value="Cola">
<label for="cola">{{ i18n "rsvp_drinks_cola" }}</label><br>
<input type="checkbox" id="fanta" name="drinks[]" value="Fanta">
<label for="fanta">{{ i18n "rsvp_drinks_fanta" }}</label><br><br>
<!-- Diet -->
<h3>{{ i18n "rsvp_diet" }}</h3>
<input type="radio" id="diet_meat" name="diet" value="Meat" required>
<label for="diet_meat">{{ i18n "rsvp_diet_meat" }}</label><br>
<input type="radio" id="diet_vegetarian" name="diet" value="Vegetarian">
<label for="diet_vegetarian">{{ i18n "rsvp_diet_vegetarian" }}</label><br>
<input type="radio" id="diet_vegan" name="diet" value="Vegan">
<label for="diet_vegan">{{ i18n "rsvp_diet_vegan" }}</label><br><br>
<!-- Allergies -->
<h3>{{ i18n "rsvp_allergies" }}</h3>
<input type="checkbox" id="gluten" name="allergies[]" value="Gluten">
<label for="gluten">{{ i18n "rsvp_allergy_gluten" }}</label><br>
<input type="checkbox" id="lactose" name="allergies[]" value="Lactose">
<label for="lactose">{{ i18n "rsvp_allergy_lactose" }}</label><br>
<input type="checkbox" id="nuts" name="allergies[]" value="Nuts">
<label for="nuts">{{ i18n "rsvp_allergy_nuts" }}</label><br>
<input type="checkbox" id="other_allergy" name="allergies[]" value="Other">
<label for="other_allergy">{{ i18n "rsvp_allergy_other" }}</label><br><br>
<label for="allergies_other">{{ i18n "rsvp_allergy_details" }}:</label><br> <input type="text" id="allergies_other" name="allergies_other"><br><br>
<!-- Organization -->
<h3>{{ i18n "rsvp_organization" }}</h3>
<input type="checkbox" id="parking" name="parking" value="Yes">
<label for="parking">{{ i18n "rsvp_parking_needed" }}</label><br>
<input type="checkbox" id="ride_needed" name="ride_needed" value="Yes">
<label for="ride_needed">{{ i18n "rsvp_ride_needed" }}</label><br>
<input type="checkbox" id="ride_offer" name="ride_offer" value="Yes">
<label for="ride_offer">{{ i18n "rsvp_ride_offer" }}</label><br>
<input type="checkbox" id="hotel" name="hotel" value="Yes">
<label for="hotel">{{ i18n "rsvp_hotel" }}</label><br>
<input type="checkbox" id="hotel_booked" name="hotel_booked" value="Yes">
<label for="hotel_booked">{{ i18n "rsvp_hotel_booked" }}</label><br><br>
<!-- Memories -->
<h3>{{ i18n "rsvp_memories" }}</h3>
<input type="checkbox" id="memory_card" name="memory_card" value="Yes">
<label for="memory_card">{{ i18n "rsvp_memory_card" }}</label><br>
<input type="checkbox" id="photo_link" name="photo_link" value="Yes">
<label for="photo_link">{{ i18n "rsvp_photo_link" }}</label><br><br>
<!-- Entertainment -->
<h3>{{ i18n "rsvp_entertainment" }}</h3>
<label for="music_request">{{ i18n "rsvp_music_request" }}:</label><br> <input type="text" id="music_request" name="music_request"><br><br>
<label>{{ i18n "rsvp_contribution" }}:</label><br>
<input type="checkbox" id="speech" name="contribution[]" value="Speech">
<label for="speech">{{ i18n "rsvp_contribution_speech" }}</label><br>
<input type="checkbox" id="game" name="contribution[]" value="Game">
<label for="game">{{ i18n "rsvp_contribution_game" }}</label><br>
<input type="checkbox" id="surprise" name="contribution[]" value="Surprise">
<label for="surprise">{{ i18n "rsvp_contribution_surprise" }}</label><br>
<input type="checkbox" id="other_contribution" name="contribution[]" value="Other">
<label for="other_contribution">{{ i18n "rsvp_contribution_other" }}</label><br><br>
<!-- Children -->
<h3>{{ i18n "rsvp_children" }}</h3>
<input type="radio" id="children_yes" name="children" value="Yes">
<label for="children_yes">{{ i18n "yes" }}</label>
<input type="radio" id="children_no" name="children" value="No" checked>
<label for="children_no">{{ i18n "no" }}</label><br><br>
<div id="children-details" style="display:none;">
```
<label for="children_count">{{ i18n "rsvp_children_count" }}:</label><br>
<input type="number" id="children_count" name="children_count" min="1"><br><br>
<label for="children_ages">{{ i18n "rsvp_children_ages" }}:</label><br>
<input type="text"
id="children_ages"
name="children_ages"
placeholder="3, 7, 10"><br><br>
```
</div>
<!-- Message -->
<h3>{{ i18n "rsvp_message" }}</h3>
<textarea id="message"
name="message"
rows="5"
cols="50"></textarea><br><br>
<!-- Privacy -->
<h3>{{ i18n "rsvp_privacy" }}</h3>
<input type="checkbox"
id="privacy"
name="privacy"
value="Yes"
required>
<label for="privacy">
{{ i18n "rsvp_privacy_accept" }}
</label><br><br>
<!-- Honeypot -->
<input type="text" name="website" style="display:none">
<button type="submit">
{{ i18n "rsvp_send" }}
</button>
</form>
<script>
document.querySelectorAll('input[name="children"]').forEach(el => {
el.addEventListener('change', function() {
document.getElementById('children-details').style.display =
this.value === 'Yes' ? 'block' : 'none';
});
});
</script>
</form>
</div>
<!-- Extra Info -->
{{ with .Params.details }}
<div class="section">