Files
dogfather-universe/workspace/treff-moderation.html
T
DogFatherGit cc39552b4f Eine Eingabe geht nicht mehr wortlos verloren
Filipe: "Was passiert, wenn jemand eine Funktion abbricht?"

GEMESSEN: Acht Dialoge im Workspace enthalten Eingabefelder --
"Aufgabe bearbeiten" (10 Felder), der Tageseintrag in der Leistung
(8), Ziele, Netzwerk, Import, ein neuer Chat-Raum, ein Creator. Bei
allen galt: Esc, Klick daneben oder "Abbrechen" wirft ALLES weg,
wortlos. Wer zehn Felder ausgefuellt hat und mit dem Daumen den Rand
trifft, faengt von vorn an.

Neu: window.verwurfWache() in nachfrage.js.

BEIDE SCHLIESSWEGE, denn sie laufen verschieden:
  Esc / Klick daneben  loest `cancel` aus, close() wird NICHT gerufen
  "Abbrechen"-Knopf    ruft close(), loest kein `cancel` aus
Wer nur einen abfaengt, hat eine halbe Sicherung -- und die ist
schlimmer als keine, weil man ihr vertraut.

NICHT VON HAND VERTEILT: Jeder Dialog mit Feldern bekommt sie
automatisch (ausser dem Nachfrage-Dialog selbst -- er wuerde beim
Schliessen nach sich selbst fragen, in sich selbst, und haenge fuer
immer). Wer morgen einen neunten baut, hat sie, ohne daran zu denken.

UND SIE FRAGT NUR BEI WIRKLICHER AENDERUNG. Beim Oeffnen wird ein
Abbild der Felder genommen, beim Schliessen verglichen. Wer einen
Dialog aufmacht und gleich wieder zu, merkt nichts.

ZWEI SACHEN BEIM BAUEN GEMESSEN STATT VERMUTET:

  MEINE EIGENE "ROBUSTHEIT" HAT DIE WACHE STILL AUSGESCHALTET.
  Gegen den Fall "Felder werden erst nach dem Oeffnen gefuellt" hatte
  ich einen zweiten Schnappschuss beim Hineinklicken (`focusin`)
  eingebaut. Gemessen: Der entstand NACH dem Tippen -- Fokus und
  Werteingabe passieren im selben Atemzug. `beimOeffnen` war danach
  gleich dem getippten Text, und der Dialog ging wortlos zu. Die
  Sicherung sah eingebaut aus und tat nichts.
  Jetzt wird im naechsten BILD nachgetragen: Was das Skript beim
  Oeffnen nachtraegt, ist drin; getippt haben kann in derselben
  Sechzehntelsekunde niemand.
  (Nachgemessen: Alle acht Dialoge fuellen heute VOR showModal.)

  ZWEIMAL ESC HINTEREINANDER SCHLIESST TROTZDEM. Das ist Chromiums
  "close watcher": Eine Seite darf den Nutzer nicht mit Esc
  einsperren. Die Regel ist richtig; dagegen anzubauen waere falsch.
  Sie steht deshalb im Code und in der Pruefung -- festgehalten,
  nicht umgangen. Der Knopf unterliegt ihr nicht, und am Handy gibt
  es ohnehin kein Esc.

Elf Speicherwege rufen `vergessen()`, damit nach erfolgreichem
Speichern nicht gefragt wird. Eine Warnung nach dem Speichern waere
genau die, die man wegklickt -- und danach auch die echte.

pruef-nachfrage 49/0 (war 33), davon zehn am Bildschirm:
  unberuehrt geht er ohne Nachfrage zu
  nach einer Aenderung fragt Esc nach, der Dialog bleibt offen
  "Weiter bearbeiten" laesst ihn offen UND der Text steht noch da
  auch der Abbrechen-Knopf fragt -- jedes Mal
  "Verwerfen" schliesst wirklich, und der Text steht nirgends

pruef-aufgabenbrett, -leistung, -uebersicht-browser, -chat-optik,
-css-klassen gruen, pruef-tippziele 11/0.
2026-09-20 15:11:25 +02:00

138 lines
5.5 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, viewport-fit=cover" />
<title>Meldungen &amp; Maßnahmen · Der Treff</title>
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201509" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201509" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201509" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201509" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201509" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609201509" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201509" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201509" />
</head>
<body class="start">
<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">Der&nbsp;Treff</a> · Meldungen</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">
<section class="kopf-zeile">
<div>
<p class="marke">Der Treff · Moderation</p>
<h1 class="titel">Meldungen &amp; Maßnahmen</h1>
<p class="unterzeile">
Was gemeldet wurde, was entfernt wurde und mit welcher Begründung –
alles an einer Stelle.
</p>
</div>
</section>
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
<!-- ==================================================================
WARUM DIESE SEITE EXISTIERT
Die Schnittstellen dafür gab es zuerst, die Seite nicht. Eine
Meldung, die nur über eine Schnittstelle abrufbar ist, ist keine
Meldung — sie ist eine Zeile in einer Datenbank, die niemand
liest. Der DSA verlangt in Artikel 16, dass Meldungen
BEARBEITET werden; ohne eine Stelle, an der sie erscheinen,
wäre das ein Versprechen an eine Schublade.
DREI ABSCHNITTE, IN DIESER REIHENFOLGE: Was liegt an (Meldungen)
— was wurde getan (Entfernt) — wer ist gesperrt (Maßnahmen). Wer
diese Seite öffnet, hat fast immer die erste Frage.
============================================================== -->
<!-- WAS HEREINKOMMT (17.09.2026). Steht GANZ OBEN, vor den offenen
Meldungen: Eine Meldung setzt voraus, dass jemand etwas gesehen
hat. Wer acht Bretter durchklicken muss, um zu sehen, ob etwas
Neues da ist, tut es nicht achtmal am Tag -- und was niemand
ansieht, moderiert auch niemand. -->
<section class="treff-abschnitt">
<h2 class="treff-abschnitt__titel">Was hereinkommt</h2>
<div class="treff-abschnitt__inhalt">
<p>
Die neuesten Beiträge aus allen Bereichen der Community –
an einer Stelle, damit niemand acht Bretter durchklicken muss.
</p>
</div>
<div id="zulauf" aria-busy="true"><p class="leise">wird geladen …</p></div>
</section>
<section class="treff-abschnitt">
<h2 class="treff-abschnitt__titel">Offene Meldungen</h2>
<div class="treff-abschnitt__inhalt">
<p>
Zu jeder Entscheidung gehört ein Satz. Er wird festgehalten –
auch damit man später weiß, warum etwas so entschieden wurde.
</p>
</div>
<div id="meldungen" aria-busy="true"><p class="leise">wird geladen …</p></div>
</section>
<section class="treff-abschnitt">
<h2 class="treff-abschnitt__titel">Entfernt</h2>
<div class="treff-abschnitt__inhalt">
<p>
Was entfernt wurde, und warum. Die Begründung überlebt den Beitrag –
das ist der Sinn der Sache
<span class="leise">(Digital Services Act, Artikel 17)</span>.
</p>
</div>
<div id="entfernt" aria-busy="true"><p class="leise">wird geladen …</p></div>
</section>
<section class="treff-abschnitt">
<h2 class="treff-abschnitt__titel">Die Mitglieder</h2>
<div class="treff-abschnitt__inhalt">
<p>
Wer da ist, seit wann, auf welcher Stufe – und wer gerade eine Pause
hat. Von hier aus wird gehandelt; die Stufe steht nur hier und
<strong>nie</strong> neben dem Namen im Treff.
</p>
</div>
<div id="mitglieder" aria-busy="true"><p class="leise">wird geladen …</p></div>
</section>
<section class="treff-abschnitt">
<h2 class="treff-abschnitt__titel">Hinweise, Pausen, Ausschlüsse</h2>
<div class="treff-abschnitt__inhalt">
<p id="leiter">…</p>
</div>
<div id="massnahmen" aria-busy="true"><p class="leise">wird geladen …</p></div>
</section>
</main>
<script src="assets/js/meldung.js?v=202609201509" defer></script>
<script src="assets/js/nachfrage.js?v=202609201509" defer></script>
<script src="assets/js/wahl.js?v=202609201509" defer></script>
<script src="assets/js/bereiche.js?v=202609201509" defer></script>
<script src="assets/js/kopf.js?v=202609201509" defer></script>
<script src="assets/js/treff-moderation.js?v=202609201509" defer></script>
</body>
</html>