Add social features and harden beta release
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
content="width=device-width, initial-scale=1.0"
|
||||
>
|
||||
|
||||
<title>Konzert hinzufügen · Pingu Concerts</title>
|
||||
<title>Veranstaltung hinzufügen · Pingu Concerts</title>
|
||||
|
||||
<link
|
||||
rel="stylesheet"
|
||||
@@ -78,6 +78,8 @@
|
||||
🎸 Pingu <span>Concerts</span>
|
||||
</a>
|
||||
|
||||
{% include '_user_menu.html' %}
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
@@ -87,7 +89,7 @@
|
||||
|
||||
<div class="page-title">
|
||||
|
||||
<h1>🎤 Konzert hinzufügen</h1>
|
||||
<h1>🎤 Veranstaltung hinzufügen</h1>
|
||||
|
||||
<p>
|
||||
Trag ein, worauf wir uns freuen.
|
||||
@@ -104,6 +106,26 @@
|
||||
enctype="multipart/form-data"
|
||||
>
|
||||
|
||||
<p>
|
||||
<label for="event-type">Kategorie</label><br>
|
||||
<select name="event_type" id="event-type" required>
|
||||
<option value="concert">Konzert</option>
|
||||
<option value="festival">Festival</option>
|
||||
<option value="other">Sonstiges</option>
|
||||
</select>
|
||||
</p>
|
||||
|
||||
<p id="parent-event-field" hidden>
|
||||
<label for="parent-event-id">Gehört zu</label><br>
|
||||
<select name="parent_event_id" id="parent-event-id">
|
||||
<option value="">Keine Verknüpfung – eigenständige Karte</option>
|
||||
{% for event in linkable_events %}
|
||||
<option value="{{ event.id }}">{{ event.event_type_label }} · {{ event.title }} · {{ event.date }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<small>Zum Beispiel ein gemeinsames Vortrinken vor einem Konzert.</small>
|
||||
</p>
|
||||
|
||||
<!-- ================================================= -->
|
||||
<!-- Künstler -->
|
||||
<!-- ================================================= -->
|
||||
@@ -111,7 +133,7 @@
|
||||
<p>
|
||||
|
||||
<label>
|
||||
Künstler / Band<br>
|
||||
Titel / Künstler / Band<br>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
@@ -124,7 +146,6 @@
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
<!-- ================================================= -->
|
||||
<!-- Veranstaltungsort -->
|
||||
<!-- ================================================= -->
|
||||
@@ -208,6 +229,13 @@
|
||||
|
||||
</p>
|
||||
|
||||
<p id="festival-end-field" hidden>
|
||||
<label>
|
||||
Enddatum und Uhrzeit<br>
|
||||
<input type="datetime-local" name="end_datetime" id="festival-end-datetime">
|
||||
</label>
|
||||
</p>
|
||||
|
||||
|
||||
<!-- ================================================= -->
|
||||
<!-- Beschreibung -->
|
||||
@@ -221,7 +249,7 @@
|
||||
<textarea
|
||||
name="description"
|
||||
rows="5"
|
||||
placeholder="Optional: Infos zum Konzert, Tour, Supportbands usw."
|
||||
placeholder="Optional: Infos zur Veranstaltung, Tour, Supportbands usw."
|
||||
></textarea>
|
||||
|
||||
</label>
|
||||
@@ -277,9 +305,13 @@
|
||||
|
||||
<div class="flyer-upload">
|
||||
|
||||
<label for="flyer-url">🔗 Flyer extern verlinken <small>(bevorzugt)</small></label>
|
||||
<input type="url" id="flyer-url" name="flyer_url" placeholder="https://veranstalter.example/flyer.jpg">
|
||||
<div class="flyer-help">Bitte möglichst den offiziellen Flyer des Veranstalters oder der Band verlinken. Das Bild wird nicht auf Pingu Concerts kopiert; der Link wird als Quelle ausgewiesen.</div>
|
||||
|
||||
<label for="flyer">
|
||||
|
||||
🎨 Konzert-Flyer
|
||||
🎨 Veranstaltungs-Flyer
|
||||
|
||||
</label>
|
||||
|
||||
@@ -294,7 +326,7 @@
|
||||
|
||||
<div class="flyer-help">
|
||||
|
||||
JPG, PNG oder WEBP · maximal 10 MB
|
||||
Alternative, falls kein offizieller externer Link verfügbar ist: JPG, PNG oder WEBP · maximal 10 MB. Ist ein Link angegeben, wird er bevorzugt dargestellt.
|
||||
|
||||
</div>
|
||||
|
||||
@@ -330,7 +362,7 @@
|
||||
type="submit"
|
||||
class="button"
|
||||
>
|
||||
💾 Konzert speichern
|
||||
💾 Veranstaltung speichern
|
||||
</button>
|
||||
|
||||
|
||||
@@ -352,6 +384,25 @@
|
||||
|
||||
<script>
|
||||
|
||||
const eventType = document.getElementById("event-type");
|
||||
const parentEventField = document.getElementById("parent-event-field");
|
||||
const parentEventId = document.getElementById("parent-event-id");
|
||||
const festivalEndField = document.getElementById("festival-end-field");
|
||||
const festivalEndDatetime = document.getElementById("festival-end-datetime");
|
||||
|
||||
function updateEventFields() {
|
||||
const isFestival = eventType.value === "festival";
|
||||
const isOther = eventType.value === "other";
|
||||
festivalEndField.hidden = !isFestival;
|
||||
festivalEndDatetime.required = isFestival;
|
||||
parentEventField.hidden = !isOther;
|
||||
if (!isFestival) festivalEndDatetime.value = "";
|
||||
if (!isOther) parentEventId.value = "";
|
||||
}
|
||||
|
||||
eventType.addEventListener("change", updateEventFields);
|
||||
updateEventFields();
|
||||
|
||||
/* ============================================================
|
||||
VENUE SEARCH
|
||||
============================================================ */
|
||||
|
||||
Reference in New Issue
Block a user