mirror of
https://github.com/guyg1474/hcrb.git
synced 2026-10-16 07:13:28 +02:00
- 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>
103 lines
3.8 KiB
HTML
103 lines
3.8 KiB
HTML
<!doctype html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>Kalender – HCRB</title>
|
||
<link rel="stylesheet" href="/css/style.css">
|
||
</head>
|
||
<body>
|
||
<main>
|
||
<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="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="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="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>
|
||
|
||
<script type="module" src="/js/kalender.js"></script>
|
||
</body>
|
||
</html>
|