Files
hcrb/private/kalender.html
T
guyg1474andClaude Opus 5.5 486e6f6784 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>
2026-10-12 00:13:52 +02:00

103 lines
3.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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 &amp; 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>