Filipe: "jeder soll sich selber aufgabe vergeben koennen aber nur die
rechte hand und dogfather aufgaben an andere verteilen." Und: "ich will
dass ich da auch die rollen der leute wechseln kann ohne dass ich denen
einen neuen account machen muss ... perfektionier das fuer die rolle
dogfather und rechte hand."
---- AUFGABEN VERTEILEN ---------------------------------------------
Die Regel gab es schon -- sie fragte `istLeitung`, und darin steht die
rechte Hand NICHT. Sie konnte also keine Aufgabe weitergeben.
`hand` DORT EINZUTRAGEN WAERE FAHRLAESSIG GEWESEN: `istLeitung` wird an
57 Stellen in 19 Dateien gefragt -- unter anderem im vertraulichen
Meldeweg, in der Personenverwaltung und in den Auswertungen ueber
Menschen. Das haette in einem Zug ueber Einsicht in fremde Meldungen
entschieden, und das hat niemand gewollt.
Stattdessen `darfAufgabenVerteilen` -- eine eigene Regel mit eigenem
Namen. Man sieht an der Aufrufstelle, worum es geht, und wer sie
spaeter aendert, aendert genau diese eine Sache.
Wer nicht verteilen darf, bekommt KEINE Absage: Die Aufgabe landet bei
ihm selbst. Das ist genau, was Filipe wollte ("jeder soll sich selber
aufgabe vergeben koennen") und freundlicher als ein Fehler.
---- ROLLEN WECHSELN ------------------------------------------------
Auch das gab es schon, samt dem wichtigen Satz in der Rueckfrage: "Der
Zugangscode bleibt derselbe." Es konnte nur DogFather (und Spicy
Media).
DREI GRENZEN, JEDE MIT GRUND:
* Niemand wird zu "admin" -- unveraendert seit dem 11.09.2026.
* Die rechte Hand ernennt keine zweite rechte Hand. Wer jemanden auf
die eigene Ebene hebt, vergibt Vertrauen, das ihm nicht gehoert.
Und wer eine Rolle UEBER sich aendern koennte, koennte sich selbst
befoerdern, indem er zuerst den anderen herabstuft.
* Niemand aendert die eigene Rolle -- sonst waere jede Grenze nur ein
Umweg.
SPICY MEDIA BEHAELT, WAS SIE HATTE. Beim ersten Anlauf waere sie durch
die neue Regel ausgesperrt gewesen -- ein Rueckschritt, den ich selbst
verursacht haette. Sie steht jetzt ausdruecklich in der Tabelle.
---- UND DIE OBERFLAECHE RECHNET NICHT MEHR SELBST ------------------
Die Rollenwahl nahm die Knoepfe des ANLEGE-Formulars. Fuer die rechte
Hand ist das leer -- sie legt niemanden an. Die Wahl waere leer
geblieben, das Recht unbenutzbar.
Der Server schickt jetzt zwei Listen mit: wozu ich machen darf
(`rollen_zum_aendern`) und wessen Rolle ich anfassen darf
(`rollen_anfassbar`). Beide aus denselben Funktionen wie die Schranke.
Damit kann die Seite weder zu streng sein (ein Recht, das niemand
findet) noch zu grosszuegig (ein Knopf, der eine Absage bringt) -- der
Fehler vom 10.09.2026, als zwei Listen drei Zeilen auseinander
einander widersprachen.
Dabei fast hineingelaufen: `ROLLEN_REIHE` ist die SORTIERUNG, und
darin fehlt "gast" mit Absicht. Wer sie fuer eine Aufzaehlung nimmt,
verliert die Community still -- genau diese Verwechslung hat am
17.09.2026 schon einmal verhindert, dass sich jemand zu "Community"
machen liess.
---- AUSSERDEM ------------------------------------------------------
Screen 2: "Unsere Seiten" und "Regeln & Hilfe" haben die Plaetze
getauscht -- nur diese zwei.
GEPRUEFT: pruef-verteilen 11/0 (neu, inkl. der Abgrenzung "darf
verteilen, ist aber NICHT Leitung"), pruef-rollen-anlegen 11/0,
pruef-personen-formular 36/0, pruef-personen-liste 33/0,
pruef-personen-loeschen 40/0, pruef-rechtetafel 19/0, pruef-treff 72/0.
Co-Authored-By: Claude Opus 5 <[email protected]>
397 lines
19 KiB
HTML
397 lines
19 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 · Spicy & Dogi</title>
|
||
<meta name="robots" content="noindex, nofollow" />
|
||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||
<!-- Die Farbe der Fensterleiste, wenn der Workspace als App laeuft.
|
||
Stand auf #0674b9 (kraeftiges Blau) und stach damit als einziger
|
||
heller Balken ueber einer durchweg dunklen Seite. Jetzt derselbe
|
||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||
eine Flaeche sind statt zweier. -->
|
||
<meta name="theme-color" content="#06090f" />
|
||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201856" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201856" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202609201856" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202609201856" />
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201856" />
|
||
<link rel="stylesheet" href="assets/css/kalender.css?v=202609201856" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202609201856" />
|
||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||
<link rel="stylesheet" href="assets/css/haus.css?v=202609201856" />
|
||
</head>
|
||
|
||
<body class="start">
|
||
|
||
<!-- Der Schleier ueber der Buehne (Casper und HasiDog in den unteren
|
||
Ecken, siehe start.css). Ein eigenes Element statt eines dritten
|
||
Pseudo-Elements -- body hat nur ::before und ::after. -->
|
||
<div class="schleier" aria-hidden="true"></div>
|
||
|
||
<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"><span class="marke__text"><a class="zurueck" href="start.html">Creator Workspace</a> · Kalender</span></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 inhalt--breit">
|
||
|
||
<!-- Der Zeitraum ist die Überschrift, nicht eine Beschriftung neben
|
||
Knöpfen: Man liest zuerst, WO man ist, und bewegt sich dann. -->
|
||
<section class="k-kopf">
|
||
<div class="k-kopf__titel">
|
||
<h1 class="k-zeitraum" id="zeitraum">…</h1>
|
||
<p class="k-kopf__unter" id="zeitraum-unter"></p>
|
||
</div>
|
||
<div class="k-nav">
|
||
<button type="button" class="knopf-still k-pfeil" id="zurueck-zeit" aria-label="Vorheriger Zeitraum">‹</button>
|
||
<button type="button" class="knopf-still" id="heute-knopf">Heute</button>
|
||
<button type="button" class="knopf-still k-pfeil" id="vor-zeit" aria-label="Nächster Zeitraum">›</button>
|
||
<button type="button" class="knopf knopf--klein" id="neu-oeffnen">Neuer Termin</button>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- Zwei Reihen, die zwei VERSCHIEDENE Fragen beantworten – und deshalb
|
||
beschriftet sind:
|
||
"Als Nächstes" blickt ab heute nach vorn und ändert sich NICHT
|
||
beim Blättern
|
||
"Im September" beschreibt den Monat, den man gerade ansieht
|
||
Ohne Überschriften wären zwei gleich aussehende Reihen verwirrend. -->
|
||
<!-- ==== ALLES DREI IN EINER KACHEL (08.09.2026) =================
|
||
Filipe: "ich will dass das alles in einer geilen kachel ist wie
|
||
die kacheln in der start seite. und noch geiler."
|
||
|
||
Die drei Abschnitte -- was als Naechstes ansteht, was in diesem
|
||
Monat liegt, was von allein weiterlaeuft -- standen frei auf dem
|
||
Hintergrundbild. Drei Ueberschriften ohne Fassung lesen sich als
|
||
drei lose Listen; zusammen sind sie EINE Auskunft: was ausser den
|
||
Terminen im Kalender sonst noch kommt.
|
||
|
||
Der Umschlag traegt die Kacheloptik der Startseite (Fase, Raster,
|
||
Innenschatten), die drei Abschnitte darin nur noch ihre
|
||
Ueberschrift. Faellt alles drei weg, verschwindet auch die
|
||
Kachel -- siehe `:has()` in kalender.css. -->
|
||
<section class="k-anlasskachel">
|
||
|
||
<section class="k-leiste" id="saison-block" hidden>
|
||
<p class="feldschild">Als Nächstes</p>
|
||
<div class="k-anlassreihe" id="saison"></div>
|
||
</section>
|
||
|
||
<section class="k-leiste" id="monat-block" hidden>
|
||
<p class="feldschild" id="monat-titel">Im Monat</p>
|
||
<div class="k-anlassreihe" id="monatsanlaesse"></div>
|
||
</section>
|
||
|
||
<!-- Die laufenden Wiederholungen. Steht bewusst über dem Kalender und
|
||
nicht in einem Menü versteckt: Was von allein weiterläuft, muss
|
||
man sehen können, sonst weiß nach drei Monaten niemand mehr,
|
||
warum jeden Dienstag ein Call im Kalender steht. -->
|
||
<section class="k-leiste k-serien" id="serien-block" hidden>
|
||
<p class="feldschild">Läuft von allein</p>
|
||
<div class="k-serienliste" id="serien"></div>
|
||
</section>
|
||
|
||
</section><!-- /.k-anlasskachel -->
|
||
|
||
<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>
|
||
<!-- NEUN ARTEN, IN ZWEI GRUPPEN (08.09.2026).
|
||
|
||
Die Gruppen sind nicht Deko: Die ersten drei sind INTERNE
|
||
Termine, die anderen sechs sind AUFTRITTE. Das ist der
|
||
Unterschied, nach dem man sucht ("ist das ein Arbeitstermin
|
||
oder ein Stream?"), und eine Liste aus neun gleichrangigen
|
||
Zeilen laesst ihn nicht erkennen. -->
|
||
<select id="f-art">
|
||
<optgroup label="Intern">
|
||
<option value="call" selected>Call</option>
|
||
<option value="termin">Termin</option>
|
||
<!-- ACHTUNG, ZWEI BEDEUTUNGEN (20.09.2026): `review` heisst
|
||
HIER eine Terminart (ein Gespraech, in dem man
|
||
zurueckschaut) -- NICHT der Aufgaben-/Dateistatus, der
|
||
seit heute "Zur Freigabe" heisst. Ich hatte das beim
|
||
Umbenennen selbst verwechselt. Derselbe Schluessel,
|
||
zwei Welten: Kalender = Termin, Brett = Zustand. -->
|
||
<option value="review">Review</option>
|
||
</optgroup>
|
||
<optgroup label="Auftritt">
|
||
<option value="bigmatch">BigMatch</option>
|
||
<option value="turnier">Turnier</option>
|
||
<option value="special">Special-Live</option>
|
||
<option value="collab">Collab</option>
|
||
<option value="raid">Raid-Train</option>
|
||
<option value="charity">Charity</option>
|
||
</optgroup>
|
||
</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 <span class="feld-schild__still">Minuten</span></label>
|
||
<input id="f-dauer" type="number" min="5" max="1440" step="5" value="30" />
|
||
</div>
|
||
<!-- Wiederholen. Die Auswahl wird erst beim Öffnen gefüllt, weil
|
||
ihre Beschriftungen vom gewählten Datum abhängen: "jeden
|
||
Dienstag", "jeden Monat am 2." – so muss niemand raten, was
|
||
ein Rhythmus im eigenen Fall bedeutet. -->
|
||
<div>
|
||
<label class="feld-schild" for="f-takt">Wiederholen</label>
|
||
<select id="f-takt">
|
||
<option value="">Einmalig</option>
|
||
</select>
|
||
</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>
|
||
|
||
<!-- WER SONST NOCH DABEI IST (05.09.2026).
|
||
Wunsch: "ich will auch 2 leute markieren können mit denen der
|
||
call ist."
|
||
|
||
Einzelne Schalter statt eines <select multiple>: Das verliert
|
||
bei einem Fehlklick die ganze Auswahl und ist am Handy kaum zu
|
||
bedienen.
|
||
|
||
FÜR JEDE ROLLE, nicht nur für die Leitung (05.09.2026:
|
||
*"das soll für jeden verfügbar sein"*). Das ist ohne Risiko,
|
||
weil nicht die Oberfläche entscheidet, wen man auswählen darf,
|
||
sondern der Server: /api/personen liefert jeder Rolle nur die
|
||
zugeteilten Namen, und teilnehmerSetzen() lässt alles andere
|
||
still weg. Ein Creator sieht hier also seine Betreuer, keine
|
||
fremden Creator.
|
||
|
||
Die Klassen heißen k-dabei__* und stehen in kalender.css.
|
||
Vorher waren es die .wahl__*-Klassen aus dateien.css -- die
|
||
diese Seite gar nicht einbindet, weshalb die Namen ohne jeden
|
||
Abstand aneinanderklebten. -->
|
||
<div id="feld-dabei" hidden>
|
||
<p class="feld-schild">Wer ist noch dabei?</p>
|
||
<div class="k-dabei" id="dabei-wahl"></div>
|
||
<p class="leise" id="dabei-hinweis"></p>
|
||
</div>
|
||
|
||
<!-- Erscheint nur, wenn ein Rhythmus gewählt ist. Der Satz darunter
|
||
sagt in Worten, was gleich passiert – eine Regel, die man nicht
|
||
vorlesen kann, stellt man später nicht mehr richtig ab. -->
|
||
<div class="neu__zeile k-wdh" id="feld-wdh" hidden>
|
||
<div class="k-wdh__ende">
|
||
<label class="feld-schild" for="f-ende">Läuft bis
|
||
<span class="leise">(leer = bis du sie abstellst)</span></label>
|
||
<input id="f-ende" type="date" />
|
||
</div>
|
||
<p class="k-wdh__satz" id="wdh-satz" aria-live="polite"></p>
|
||
</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>
|
||
|
||
|
||
|
||
|
||
<!-- KALENDER ABONNIEREN (06.09.2026, Stufe 3.2 des Plans).
|
||
|
||
Steht unten und zugeklappt: Man richtet ihn EINMAL ein und sieht
|
||
ihn danach nie wieder an. Ein Kasten, der dauerhaft Platz nimmt,
|
||
obwohl er einmal im Leben gebraucht wird, drängt sich vor die
|
||
Termine – und um die geht es hier.
|
||
|
||
Warum es das überhaupt gibt: Der Workspace kann benachrichtigen,
|
||
aber er kann nicht verhindern, dass jemand einen Zahnarzttermin
|
||
auf denselben Dienstag legt. Das kann nur ein Kalender, der die
|
||
Termine dort hat, wo ohnehin nachgesehen wird. -->
|
||
<details class="k-abo" id="abo-block">
|
||
<summary class="k-abo__kopf">
|
||
<span class="k-abo__titel">In deinen eigenen Kalender holen</span>
|
||
<span class="k-abo__unter">Google, Apple, Outlook – einmal einrichten, dann läuft es</span>
|
||
</summary>
|
||
<div class="k-abo__inhalt">
|
||
<p class="k-abo__satz" id="abo-satz">
|
||
Du bekommst einen persönlichen Link. Wer ihn hat, sieht deine Termine –
|
||
gib ihn also nicht weiter. Falls doch: Du kannst ihn jederzeit ersetzen,
|
||
der alte ist dann sofort tot.
|
||
</p>
|
||
|
||
<div class="k-abo__zeile" id="abo-hat" hidden>
|
||
<input class="k-abo__feld" id="abo-link" readonly aria-label="Dein Kalender-Link" />
|
||
<button type="button" class="knopf knopf--klein" id="abo-kopieren">Kopieren</button>
|
||
</div>
|
||
|
||
<p class="k-abo__stand" id="abo-stand"></p>
|
||
|
||
<div class="k-abo__knoepfe">
|
||
<button type="button" class="knopf knopf--klein" id="abo-erzeugen">Link erzeugen</button>
|
||
<button type="button" class="abmelden" id="abo-neu" hidden>Neuen Link erzeugen</button>
|
||
<button type="button" class="abmelden abmelden--warnung" id="abo-aus" hidden>Abschalten</button>
|
||
</div>
|
||
|
||
<p class="k-abo__hilfe" id="abo-hilfe" hidden>
|
||
<strong>So trägst du ihn ein:</strong>
|
||
<span class="k-abo__weg">Google Kalender: links unten bei „Weitere Kalender“ auf das Plus,
|
||
dann „Per URL“ – Link einfügen – „Kalender hinzufügen“.</span>
|
||
<span class="k-abo__weg">iPhone: Einstellungen → Apps → Kalender → Accounts →
|
||
Account hinzufügen → Andere → Kalenderabo hinzufügen – Link einfügen.</span>
|
||
<span class="k-abo__weg">Outlook: Kalender → Kalender hinzufügen → Aus dem Internet abonnieren.</span>
|
||
<span class="k-abo__weg leise">Die Kalender holen neue Termine selbst ab – meist innerhalb
|
||
weniger Stunden, nicht sofort. Das legen Google und Apple fest, nicht wir.</span>
|
||
</p>
|
||
|
||
<p class="fehler" id="abo-fehler" role="alert" aria-live="polite"></p>
|
||
</div>
|
||
</details>
|
||
|
||
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
|
||
|
||
<!-- Vier Ansichten auf DENSELBEN Daten. Der Server liefert einen
|
||
Zeitraum, hier wird er nur unterschiedlich dargestellt – so kann
|
||
keine Ansicht etwas anderes zeigen als die andere. -->
|
||
<div class="k-werkzeuge">
|
||
<div class="k-ansichten" role="group" aria-label="Ansicht">
|
||
<button type="button" class="k-ansicht" data-ansicht="monat" aria-pressed="true">Monat</button>
|
||
<button type="button" class="k-ansicht" data-ansicht="woche" aria-pressed="false">Woche</button>
|
||
<button type="button" class="k-ansicht" data-ansicht="liste" aria-pressed="false">Liste</button>
|
||
<button type="button" class="k-ansicht" data-ansicht="zeitstrahl" aria-pressed="false">Zeitstrahl</button>
|
||
</div>
|
||
|
||
<!-- ==== BLÄTTERN, DIREKT ÜBER DEM KALENDER (09.09.2026) ==========
|
||
|
||
Filipe, mit Bildschirmfoto: "ich will dass genau da über dem
|
||
kalender auch noch buttons sind um den monat zu wechseln, tage
|
||
wechseln ... lass die neuen auch richtig geil aussehen, die
|
||
einen rot und die anderen grün von den neuen."
|
||
|
||
Die Pfeile gab es schon -- oben neben der Überschrift, einen
|
||
halben Bildschirm entfernt vom Raster, das sie bewegen. Wer
|
||
durch Monate blättert, sieht auf das Raster und nicht auf die
|
||
Überschrift; der Weg dorthin war jedes Mal ein Blicksprung.
|
||
|
||
WARUM SIE TROTZDEM BESCHRIFTET SIND und nicht nur ‹ › heißen:
|
||
Ein Pfeil sagt nicht, WIE WEIT er springt. In der Monatsansicht
|
||
ist ein Schritt ein Monat, in der Wochenansicht eine Woche, in
|
||
Liste und Zeitstrahl sechs Wochen. Genau das steht jetzt drauf
|
||
und wird beim Umschalten mitgeführt (kalender.js). -->
|
||
<div class="k-schritte" role="group" aria-label="Zeitraum wechseln">
|
||
<button type="button" class="k-schritt k-schritt--zurueck" id="schritt-zurueck">
|
||
<span class="k-schritt__pfeil" aria-hidden="true">‹</span>
|
||
<span class="k-schritt__text" id="schritt-zurueck-text">Monat zurück</span>
|
||
</button>
|
||
<button type="button" class="k-schritt k-schritt--heute" id="schritt-heute">Heute</button>
|
||
<button type="button" class="k-schritt k-schritt--vor" id="schritt-vor">
|
||
<span class="k-schritt__text" id="schritt-vor-text">Monat vor</span>
|
||
<span class="k-schritt__pfeil" aria-hidden="true">›</span>
|
||
</button>
|
||
</div>
|
||
|
||
<div class="k-filter" id="filter"></div>
|
||
</div>
|
||
|
||
<div id="kalender" aria-busy="true"><p class="leise">Kalender wird geladen …</p></div>
|
||
|
||
<!-- Der Tagesdialog. Als echtes <dialog>: Esc schließt, der Tastaturfokus
|
||
bleibt drin, und der Rest der Seite ist für Vorleseprogramme still –
|
||
das alles bringt das Element mit, ohne dass es nachgebaut wird. -->
|
||
<!-- DIE FASSUNG UND DAS GLAS SIND ZWEI EBENEN (screen2, 09.09.2026).
|
||
Der <dialog> selbst traegt nur noch die Fase und den
|
||
Farbverlauf der Fassung; alles Sichtbare liegt in
|
||
`.k-dialog__glas` darin. Ohne diese zweite Ebene muesste die
|
||
Fassung ein `border` sein -- und ein Rand folgt dem Rechteck,
|
||
nicht der abgeschraegten Ecke. Dieselbe Bauart wie bei der
|
||
Zentrale und der Rollenkachel auf der Anmeldeseite. -->
|
||
<dialog id="tagdialog" class="k-dialog" aria-labelledby="tagdialog-titel">
|
||
<div class="k-dialog__glas">
|
||
<div class="k-dialog__kopf">
|
||
<div>
|
||
<strong id="tagdialog-titel" class="k-dialog__titel">…</strong>
|
||
<span id="tagdialog-unter" class="k-dialog__unter"></span>
|
||
</div>
|
||
<button type="button" class="knopf-still" id="tagdialog-zu" aria-label="Schließen">✕</button>
|
||
</div>
|
||
<div id="tagdialog-anlaesse" class="k-dialog__anlaesse"></div>
|
||
<div id="tagdialog-liste" class="k-dialog__liste"></div>
|
||
<div class="k-dialog__fuss">
|
||
<button type="button" class="knopf knopf--klein" id="tagdialog-neu">Hier eintragen</button>
|
||
<span class="k-dialog__tipp">Esc schließt</span>
|
||
</div>
|
||
</div><!-- /.k-dialog__glas -->
|
||
</dialog>
|
||
|
||
<!-- ====================================================================
|
||
DER WECKER (07.09.2026)
|
||
|
||
Filipe: "wie so ein wecker, den man in den eintraegen aktivieren
|
||
oder ausschalten kann ... auch mehrmals informiert."
|
||
|
||
Ein eigener Dialog und kein Aufklapp-Feld im Tagesfenster: Der
|
||
Wecker gehoert zu EINEM Termin, und im Tagesfenster stehen mehrere.
|
||
Ein Feld, das sich dort aufklappt, schiebt alles darunter weg --
|
||
man verliert die Zeile, die man gerade angesehen hat.
|
||
|
||
<dialog> statt eines selbstgebauten Kastens: Es bringt das
|
||
Wichtigste mit, was man sonst vergisst -- Escape schliesst, der
|
||
Tastaturfokus bleibt darin gefangen, und der Rest der Seite ist
|
||
fuer Vorleseprogramme abgemeldet. -->
|
||
<dialog class="tagdialog wecker-dialog" id="wecker-dialog" aria-labelledby="wecker-titel">
|
||
<div class="tagdialog__kopf">
|
||
<div>
|
||
<h2 class="titel" id="wecker-titel">Erinnerung</h2>
|
||
<p class="leise" id="wecker-wann"></p>
|
||
</div>
|
||
<button type="button" class="knopf-still" id="wecker-zu" aria-label="Schließen">✕</button>
|
||
</div>
|
||
<p class="leise wecker-hinweis">
|
||
Nur für dich. Andere Teilnehmer stellen ihre Erinnerungen selbst ein.
|
||
</p>
|
||
<div class="wecker-liste" id="wecker-liste"></div>
|
||
<p class="fehler" id="wecker-fehler" role="alert" aria-live="polite"></p>
|
||
</dialog>
|
||
|
||
</main>
|
||
|
||
<script src="assets/js/meldung.js?v=202609201856" defer></script>
|
||
<script src="assets/js/nachfrage.js?v=202609201856" defer></script>
|
||
|
||
<script src="assets/js/wahl.js?v=202609201856" defer></script>
|
||
<script src="assets/js/bereiche.js?v=202609201856" defer></script>
|
||
<script src="assets/js/kopf.js?v=202609201856" defer></script>
|
||
<script src="assets/js/glocke.js?v=202609201856" defer></script>
|
||
<script src="assets/js/kalender.js?v=202609201856" defer></script>
|
||
<script src="assets/js/kalender-abo.js?v=202609201856" defer></script>
|
||
</body>
|
||
</html>
|