mirror of
https://github.com/guyg1474/hcrb.git
synced 2026-10-16 07:13:28 +02:00
Spiel-Events, Kalenderdateien, Patches-Seite und neues Design
- Kalender: Termine als Spiel-Event markieren (nur diese zählen in der Statistik), optionale Uhrzeiten, Termine bearbeiten - .ics-Download für einzelne und alle kommenden Termine - Neue Seite Patches: Upload (PNG, JPEG, WebP, geprüftes SVG), Status "Gibt es schon" / "In Planung", Bilder in data/patches/ - Volle Seitenbreite mit Spaltenlayouts, neues Design mit selbst gehosteten Schriften, Startseite mit Zoom und drehendem Zahnrad - Bestehende Daten werden beim Laden ergänzt, keine Migration nötig Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
43356a120c
commit
486e6f6784
23 files changed
+1757
-387
No files matched your search
+83
-33
@@ -8,42 +8,92 @@
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<div class="card">
|
||||
<label>Ich bin
|
||||
<select id="me-select"></select>
|
||||
</label>
|
||||
<p id="me-hint" class="muted" hidden>Wähle deinen Namen aus, damit du Spieltage eintragen und zusagen kannst.
|
||||
Du fehlst in der Liste? Dann trag dich unter <a href="/gruppe">Gruppe</a> ein.</p>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="cal-nav">
|
||||
<button id="prev-month" aria-label="Vorheriger Monat">‹</button>
|
||||
<h2 id="month-title"></h2>
|
||||
<button id="next-month" aria-label="Nächster Monat">›</button>
|
||||
<header class="page-head">
|
||||
<div>
|
||||
<span class="eyebrow">Spieltage & Termine</span>
|
||||
<h1>Kalender</h1>
|
||||
<p>Nur Termine mit Häkchen bei „Spiel-Event“ zählen für die Statistik.</p>
|
||||
</div>
|
||||
<div class="row end"><button id="today-btn" class="small">Heute</button></div>
|
||||
<div id="calendar" class="cal-grid"></div>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<a class="button" href="/api/calendar.ics" download title="Alle kommenden Termine als .ics-Datei für Google, Apple oder Outlook">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><path d="M12 3v12M7 10l5 5 5-5M4 21h16"/></svg>
|
||||
Alle Termine (.ics)
|
||||
</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="card">
|
||||
<h2 id="day-title"></h2>
|
||||
<div id="day-events"></div>
|
||||
<form id="event-form">
|
||||
<h3>Spieltag an diesem Tag eintragen</h3>
|
||||
<label>Titel / Spielfeld
|
||||
<input type="text" id="event-title" required maxlength="80" placeholder="z. B. Sonntagsspiel Waldfeld">
|
||||
</label>
|
||||
<label>Notiz (optional)
|
||||
<textarea id="event-note" maxlength="500" placeholder="Uhrzeit, Link zum Event, Treffpunkt …"></textarea>
|
||||
</label>
|
||||
<button type="submit" class="primary">Eintragen</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="split wide-left">
|
||||
<div class="col">
|
||||
<div class="card">
|
||||
<div class="cal-nav">
|
||||
<button id="prev-month" aria-label="Vorheriger Monat">‹</button>
|
||||
<h2 id="month-title"></h2>
|
||||
<button id="next-month" aria-label="Nächster Monat">›</button>
|
||||
<button id="today-btn" class="small">Heute</button>
|
||||
</div>
|
||||
<div id="calendar" class="cal-grid"></div>
|
||||
<div class="cal-legend">
|
||||
<span><i class="l-game"></i>Spiel-Event</span>
|
||||
<span><i class="l-nogame"></i>Termin ohne Spiel</span>
|
||||
<span><i class="l-mine"></i>Du hast zugesagt</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2>Kommende Spieltage</h2>
|
||||
<div id="upcoming"></div>
|
||||
<div class="col">
|
||||
<div class="card">
|
||||
<label>Ich bin
|
||||
<select id="me-select"></select>
|
||||
</label>
|
||||
<p id="me-hint" class="muted" hidden>Wähle deinen Namen aus, damit du Termine eintragen und zusagen kannst.
|
||||
Du fehlst in der Liste? Dann trag dich unter <a href="/gruppe">Gruppe</a> ein.</p>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2 id="day-title"></h2>
|
||||
<div id="day-events"></div>
|
||||
<form id="event-form">
|
||||
<h3 id="event-form-title">Termin an diesem Tag eintragen</h3>
|
||||
<label>Titel / Spielfeld
|
||||
<input type="text" id="event-title" required maxlength="80" placeholder="z. B. Sonntagsspiel Darkzone">
|
||||
</label>
|
||||
<label class="toggle-field">
|
||||
<input type="checkbox" id="event-game" checked>
|
||||
<div>
|
||||
<strong>Spiel-Event</strong>
|
||||
<span>Wer zusagt, bekommt ein Spiel in der Statistik. Für Treffen, Grillen oder Basteltage das Häkchen entfernen.</span>
|
||||
</div>
|
||||
</label>
|
||||
<div class="grid2">
|
||||
<label>Datum
|
||||
<input type="date" id="event-date" required>
|
||||
</label>
|
||||
<div class="grid2 keep">
|
||||
<label>Beginn
|
||||
<input type="time" id="event-time">
|
||||
</label>
|
||||
<label>Ende
|
||||
<input type="time" id="event-end">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label>Notiz (optional)
|
||||
<textarea id="event-note" maxlength="500" placeholder="Link zum Event, Treffpunkt, Ausrüstung …"></textarea>
|
||||
</label>
|
||||
<div class="row wrap">
|
||||
<button type="submit" class="primary" id="event-submit">Eintragen</button>
|
||||
<button type="button" id="event-cancel" hidden>Abbrechen</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="span-all">
|
||||
<div class="section-title">
|
||||
<h2>Kommende Termine</h2>
|
||||
</div>
|
||||
<div id="upcoming" class="events-grid"></div>
|
||||
</section>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
|
||||
Reference in new issue
Block a user