Filipe sah die neue Kachel nicht, obwohl sie live war. Ursache gemessen, nicht vermutet: Node liefert : Cache-Control: no-cache (richtig) Cloudflare macht: Cache-Control: max-age=14400 (ueberschreibt es) cf-cache-status: REVALIDATED, Server: cloudflare Cloudflares voreingestellte Browser-Cache-Zeit von vier Stunden setzt sich ueber das no-cache des Servers hinweg -- aber NUR bei JS und CSS. HTML kommt mit DYNAMIC und no-cache immer frisch durch (geprueft an /creator.html und /workspace/). Genau deshalb genuegt ein Stempel in der HTML: neue Seite -> neue Adresse -> Cloudflare kennt sie nicht -> frische Datei. Keine Cloudflare-Einstellung noetig, nichts, worauf ich warten muss. tools/workspace-stempel.mjs setzt den Stempel auf alle 71 Verweise in 13 Dateien. Der Lauf ist wiederholbar: ein vorhandener Stempel wird ersetzt, nicht angehaengt (geprueft). Gehoert ab jetzt vor jeden Deploy, der JS oder CSS im Workspace anfasst. Ich verlasse mich damit nicht mehr aufs Erinnern -- das war der eigentliche Fehler. Co-Authored-By: Claude Opus 5 <[email protected]>
101 lines
3.9 KiB
HTML
101 lines
3.9 KiB
HTML
<!doctype html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
||
<title>Kalender · Creator Workspace</title>
|
||
<meta name="robots" content="noindex, nofollow" />
|
||
<meta name="theme-color" content="#05070d" />
|
||
<link rel="icon" href="assets/img/favicon.png" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202608281303" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202608281303" />
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608281303" />
|
||
<link rel="stylesheet" href="assets/css/kalender.css?v=202608281303" />
|
||
</head>
|
||
|
||
<body class="start">
|
||
|
||
<header class="kopfleiste">
|
||
<button type="button" class="zurueck-knopf" id="zurueck" hidden>
|
||
<svg class="zurueck-knopf__pfeil" viewBox="0 0 24 24" aria-hidden="true">
|
||
<path d="M14.5 5.5 8 12l6.5 6.5" />
|
||
</svg>
|
||
<span class="zurueck-knopf__text">Zurück</span>
|
||
</button>
|
||
<p class="marke"><a class="zurueck" href="start.html">Creator Workspace</a> · Kalender</p>
|
||
<div class="kopfleiste__rechts">
|
||
<span class="wer" id="wer">…</span>
|
||
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
|
||
</div>
|
||
</header>
|
||
|
||
<main class="inhalt">
|
||
|
||
<section class="kopf-zeile">
|
||
<div>
|
||
<p class="marke">Termine</p>
|
||
<h1 class="titel">Kalender & Calls</h1>
|
||
<p class="unterzeile">Termine, Calls und Fristen aus den Aufgaben – in einer Ansicht.</p>
|
||
</div>
|
||
<button type="button" class="knopf knopf--klein" id="neu-oeffnen">Neuer Termin</button>
|
||
</section>
|
||
|
||
<form class="neu" id="neu" hidden>
|
||
<div class="neu__zeile">
|
||
<label class="feld-schild" for="f-titel">Worum geht es?</label>
|
||
<input id="f-titel" maxlength="160" placeholder="z. B. Wochen-Call mit Luna" required />
|
||
</div>
|
||
<div class="neu__raster">
|
||
<div>
|
||
<label class="feld-schild" for="f-art">Art</label>
|
||
<select id="f-art">
|
||
<option value="call" selected>Call</option>
|
||
<option value="termin">Termin</option>
|
||
<option value="review">Review</option>
|
||
</select>
|
||
</div>
|
||
<div>
|
||
<label class="feld-schild" for="f-beginn">Beginn</label>
|
||
<input id="f-beginn" type="datetime-local" required />
|
||
</div>
|
||
<div>
|
||
<label class="feld-schild" for="f-dauer">Dauer (Minuten)</label>
|
||
<input id="f-dauer" type="number" min="5" max="1440" step="5" value="30" />
|
||
</div>
|
||
<div id="feld-teilnehmer" hidden>
|
||
<label class="feld-schild" for="f-teilnehmer">Mit wem</label>
|
||
<select id="f-teilnehmer"><option value="">—</option></select>
|
||
</div>
|
||
</div>
|
||
<div class="neu__zeile">
|
||
<label class="feld-schild" for="f-ort">Ort oder Link <span class="leise">(optional)</span></label>
|
||
<input id="f-ort" maxlength="400" placeholder="Discord, Meet-Link, Adresse …" />
|
||
</div>
|
||
<div class="neu__zeile">
|
||
<label class="feld-schild" for="f-text">Notiz <span class="leise">(optional)</span></label>
|
||
<textarea id="f-text" rows="2" maxlength="4000"></textarea>
|
||
</div>
|
||
<p class="fehler" id="neu-fehler" role="alert" aria-live="polite"></p>
|
||
<div class="neu__knoepfe">
|
||
<button type="submit" class="knopf knopf--klein" id="neu-speichern">Eintragen</button>
|
||
<button type="button" class="abmelden" id="neu-abbrechen">Abbrechen</button>
|
||
</div>
|
||
</form>
|
||
|
||
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
|
||
|
||
<div class="zeitraum">
|
||
<button type="button" class="schritt" data-tage="14">2 Wochen</button>
|
||
<button type="button" class="schritt" data-tage="30">30 Tage</button>
|
||
<button type="button" class="schritt" data-tage="90">90 Tage</button>
|
||
</div>
|
||
|
||
<div id="liste" aria-busy="true"><p class="leise">Kalender wird geladen …</p></div>
|
||
|
||
</main>
|
||
|
||
<script src="assets/js/kopf.js?v=202608281303" defer></script>
|
||
<script src="assets/js/kalender.js?v=202608281303" defer></script>
|
||
</body>
|
||
</html>
|