Filipe: „funktioniert nichts davon was machst du?"
Zu Recht. Ich habe an einem Abend fuenf Dinge repariert, jedes einzeln
nachgewiesen -- und bei ihm klingelte trotzdem nichts. Der Grund ist
jedes Mal derselbe gewesen: Ich kann von hier aus messen, was der
SERVER tut, aber nicht, was in SEINEM Browser ankommt. Und genau dort
lag es.
Gemessen habe ich gerade wieder: Der Server liefert die richtige Datei
aus (32616 Bytes, Klingelton enthalten), sobald sie mit Stempel
angefordert wird. Ohne Stempel kommt eine sieben Stunden alte Fassung
aus dem Zwischenspeicher. WELCHE von beiden sein Browser anfordert,
sehe ich nicht -- und das ist die Frage, an der alles haengt.
/workspace/anruf-probe.html dreht das um. Sie laeuft in SEINEM Browser
und beantwortet der Reihe nach:
1. Ist die neue Fassung ueberhaupt geladen? Sie holt anruf.js und
sieht nach, ob Klingelton und Nachklingeln darin stehen. Fehlen
sie, kommt die Seite aus dem Zwischenspeicher -- und JEDE
Reparatur ist unsichtbar, egal wie oft man neu laedt.
2. Darf der Browser Ton abspielen? (Er erlaubt ihn erst nach der
ersten Beruehrung -- wer ueber eine Benachrichtigung hereinkommt,
hoert sonst nichts und haelt das Telefon fuer kaputt.)
3. Sind Benachrichtigungen erlaubt UND ist ein Geraet beim Server
angemeldet? Das sind zwei verschiedene Dinge, und die Luecke
dazwischen sieht man sonst nirgends.
4. Steht die Verbindung, ueber die das Klingeln kommt?
Dazu ein Knopf, der genau den Klingelton abspielt, den ein Anruf
macht. Wer ihn hoert, weiss, dass es an der Seite nicht liegt.
Am Ende steht EIN Satz: das Wichtigste zuerst, mit dem, was zu tun
ist. Keine Liste zum Selbstdeuten.
Sie ruft niemanden an und zeigt nichts ueber andere.
Co-Authored-By: Claude Opus 5 <[email protected]>
135 lines
5.4 KiB
HTML
135 lines
5.4 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>Meldungen & 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=202609190013" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609190013" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202609190013" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202609190013" />
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609190013" />
|
||
<link rel="stylesheet" href="assets/css/treff.css?v=202609190013" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202609190013" />
|
||
<link rel="stylesheet" href="assets/css/haus.css?v=202609190013" />
|
||
</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 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 & 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/wahl.js?v=202609190013" defer></script>
|
||
<script src="assets/js/bereiche.js?v=202609190013" defer></script>
|
||
<script src="assets/js/kopf.js?v=202609190013" defer></script>
|
||
<script src="assets/js/treff-moderation.js?v=202609190013" defer></script>
|
||
</body>
|
||
</html>
|