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:
guyg1474andClaude Opus 5.5 committed 2026-10-12 00:13:52 +02:00
1 parent 43356a120c
commit 486e6f6784
23 files changed
+1757 -387

No files matched your search

+28 -9
View File
@@ -7,17 +7,36 @@
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
<main class="narrow">
<div class="card">
<div class="card-head">
<h2>Gespielte Spieltage</h2>
<main>
<header class="page-head">
<div>
<span class="eyebrow">Gespielte Spieltage</span>
<h1>Statistik</h1>
<p id="stats-info"></p>
</div>
<div class="actions">
<select id="stats-year" aria-label="Jahr"></select>
</div>
<p id="stats-info" class="muted"></p>
<p id="stats-edit-hint" class="muted" hidden>Mit − / + passt du die Zahl von Hand an, z. B. für spontane Fahrten,
die nicht im Kalender standen.</p>
<p id="stats-empty" class="muted" hidden>Noch keine Mitglieder eingetragen.</p>
<ol id="stats-list" class="list stats"></ol>
</header>
<div class="split wide-left">
<div class="card">
<h2>Rangliste</h2>
<p id="stats-edit-hint" class="muted" hidden>Mit − / + passt du die Zahl von Hand an, z. B. für spontane Fahrten,
die nicht im Kalender standen.</p>
<p id="stats-empty" class="muted" hidden>Noch keine Mitglieder eingetragen.</p>
<ol id="stats-list" class="list stats"></ol>
</div>
<div class="card">
<h2>So wird gezählt</h2>
<ul class="facts">
<li>Jeder Termin im Kalender, der als <strong>Spiel-Event</strong> markiert ist und bei dem du zugesagt hast, zählt als ein Spiel, sobald der Tag vorbei oder heute ist.</li>
<li>Termine ohne Spiel (Treffen, Grillen, Basteltage) zählen nicht.</li>
<li>Externe werden nicht aufgeführt.</li>
<li>Zu Neujahr wird der Endstand gespeichert und die Zählung beginnt bei 0.</li>
</ul>
</div>
</div>
</main>