Filipe, 22.09.2026: "ersetze die zentrale durch, Die IrrenAnstalt.
genau so geschrieben bitte. und alles was treff heißt oder wo treff
steht soll durch Rudel ersetzt werden bitte."
Die Schreibweise "IrrenAnstalt" mit grossem A in der Mitte ist so
gewollt. Das steht als Hinweis daneben, damit sie beim naechsten Mal
niemand "korrigiert".
WAS UMBENANNT WURDE: alles, was jemand LIEST -- Kachelnamen,
Ueberschriften, Markenzeilen, Saetze, Meldungen, Aufgabenvorlagen.
116 Zeilen in 42 Dateien.
WAS BLEIBT: Adressen (treff-regeln.html), Bezeichner (TREFF_ROLLEN),
Datenbankwerte (bereich = 'treff'), Abfrageteile (b=treff). Eine
Adresse umzubenennen bricht jedes Lesezeichen, und ein Datenbankwert
umzuschreiben waere eine Umstellung ohne Gegenwert. Dieselbe
Entscheidung wie heute frueh bei Dogi-Media, wo material.html auch
material.html geblieben ist.
DREI GRAMMATIKFEHLER IM EIGENEN ENTWURF, alle vor dem Ausliefern
gefunden -- ein blindes Ersetzen reicht hier nicht:
1. "der Treff" ist maennlich, "das Rudel" saechlich. Ohne Tabelle
waere ueberall "Der Rudel" gestanden. (Und "Treffer" waere zu
"Rudeler" geworden, "Treffen" zu "Rudelen" -- deshalb greift die
Regel nur bei Wortgrenze und nie vor einem Kleinbuchstaben.)
2. BINDESTRICH-ZUSAMMENSETZUNGEN. In "der Treff-Chat" gehoert der
Artikel zu "Chat", nicht zu "Treff". Der erste Durchlauf machte
daraus "das Rudel-Chat", "das Rudel-Kacheln" und "ein Rudel-Raum".
Jetzt greift die Artikelregel nur, wenn das Wort allein steht.
3. GESCHUETZTE LEERZEICHEN. In den Markenzeilen steht
`Der Treff`, damit die zwei Woerter nicht umbrechen. Das
Muster hat daran vorbeigegriffen: "Der Rudel", auf fuenf
Seiten. Jetzt wird das Trennzeichen mitgefasst und unveraendert
wieder eingesetzt.
Gefunden wurden alle drei, weil jede einzelne der 116 Zeilen vor dem
Schreiben als ALT/NEU ausgegeben und gelesen wurde -- und danach
gezielt nach falschen Artikeln gesucht ("den Rudel", "der Rudel",
"einen Rudel"). Uebrig blieben sechs Treffer, und die sind alle
richtig: "einen Rudel-Raum", "der Rudel-Chat", "den Rudel-Regeln" --
Zusammensetzungen, bei denen der Artikel zum letzten Wort gehoert.
UND ZWEI PRUEFUNGEN, die die Umbenennung nicht mitbekommen haetten:
`/Treff/.test(...)` und `/Treff/i.test(...)`. Ein regulaerer Ausdruck
ist keine Zeichenkette -- sie haetten ab sofort nach einem Wort
gesucht, das die Seite nicht mehr sagt, und waeren still rot geworden,
ohne dass etwas kaputt ist.
Geprueft, alle gruen: pruef-treff, pruef-treffchat,
pruef-deutsche-texte, pruef-uebernahme, pruef-crew-adresse,
pruef-willkommen, pruef-wege-nach-draussen, pruef-vorlagen,
pruef-start-ansicht, pruef-struktur.
Co-Authored-By: Claude Opus 5 <[email protected]>
93 lines
3.8 KiB
JavaScript
93 lines
3.8 KiB
JavaScript
/* =====================================================================
|
||
Die Zahlen im Regeltext (11.09.2026)
|
||
|
||
Dieses Skript schreibt nichts dazu -- es setzt nur die Zahlen ein,
|
||
die im Text stehen muessen: Fristen, Stufen, Mindestalter, wie lange
|
||
jemand aus dem Team eine Pause geben darf.
|
||
|
||
WARUM UEBERHAUPT EIN SKRIPT FUER FUENF ZAHLEN
|
||
|
||
Weil sie sonst zweimal existieren wuerden: einmal als Regel im Code
|
||
(DABEI_TAGE, STAMM_TAGE, MINDESTALTER ...) und einmal als Wort in
|
||
der HTML-Datei. Beim naechsten Nachjustieren waere eine von beiden
|
||
geaendert worden, und der Regeltext haette etwas anderes versprochen
|
||
als der Server tut. Das faellt niemandem auf -- und wer es bemerkt,
|
||
glaubt dem Text, nicht dem Verhalten.
|
||
|
||
Ein Regeltext, der sich selbst widerspricht, ist ausserdem rechtlich
|
||
das Gegenteil dessen, wofuer er da ist.
|
||
|
||
WENN DIE ANTWORT AUSBLEIBT, bleibt "…" stehen. Das ist Absicht: Eine
|
||
fehlende Zahl sieht man, eine falsche nicht.
|
||
===================================================================== */
|
||
(() => {
|
||
const $ = (id) => document.getElementById(id);
|
||
|
||
const melde = (t) => {
|
||
const f = $('fehler');
|
||
if (f) { f.textContent = t; f.hidden = !t; }
|
||
};
|
||
|
||
(async () => {
|
||
let r;
|
||
try {
|
||
const a = await fetch('/workspace/api/treff/regeln', { credentials: 'same-origin' });
|
||
if (a.status === 401) { location.assign('/workspace/'); return; }
|
||
if (!a.ok) { melde('Die Zahlen konnten nicht geladen werden. Der Text gilt trotzdem.'); return; }
|
||
r = await a.json();
|
||
} catch {
|
||
melde('Die Zahlen konnten nicht geladen werden. Der Text gilt trotzdem.');
|
||
return;
|
||
}
|
||
|
||
/* Die drei Stufen -- aus der Antwort gebaut, nicht aus drei festen
|
||
Zeilen. Wer eine vierte Stufe einbaut, bekommt sie hier von
|
||
selbst; eine feste Liste haette sie unterschlagen, ohne dass
|
||
irgendwo etwas rot wird. */
|
||
const liste = $('stufen');
|
||
if (liste && Array.isArray(r.stufen)) {
|
||
const was = {
|
||
neu: 'Lesen und bei Wünschen mitstimmen.',
|
||
dabei: `Ab ${r.dabei_tage} Tagen: Du kannst im Rudel schreiben, `
|
||
+ 'Wünsche einstellen und dich bei „Mitmachen“ melden.',
|
||
stamm: `Ab ${r.stamm_tage} Tagen und ${r.stamm_beitraege} eigenen Beiträgen: `
|
||
+ 'Du kannst Clips und Bilder einstellen – sie erscheinen, sobald '
|
||
+ 'jemand aus dem Team sie freigegeben hat.',
|
||
};
|
||
liste.textContent = '';
|
||
for (const s of r.stufen) {
|
||
const li = document.createElement('li');
|
||
const stark = document.createElement('strong');
|
||
stark.textContent = s.name;
|
||
li.append(stark, ' – ', was[s.schluessel] || '');
|
||
liste.append(li);
|
||
}
|
||
}
|
||
|
||
if ($('alter')) {
|
||
$('alter').textContent =
|
||
`Mindestalter: ${r.mindestalter} Jahre. Wer jünger ist, hat hier nichts `
|
||
+ 'verloren – nicht weil wir es kompliziert machen wollen, sondern weil '
|
||
+ 'das Rudel zu einem Stream für Erwachsene gehört.';
|
||
}
|
||
|
||
/* WEN MAN ANSPRICHT -- mit dem Namen aus den Daten.
|
||
|
||
Im HTML steht „jemandem aus dem Team". Das ist kein Platzhalter,
|
||
sondern eine Fassung, die auch dann stimmt, wenn das Skript nicht
|
||
laeuft -- ein Satz mit einem sichtbaren Loch darin waere
|
||
schlechter als einer, der etwas allgemeiner ist. */
|
||
if ($('kontakt-wem') && r.rolle_name) {
|
||
$('kontakt-wem').textContent = `einem ${r.rolle_name}`;
|
||
}
|
||
|
||
if ($('ausschluss')) {
|
||
$('ausschluss').textContent =
|
||
`Ein ${r.rolle_name} kann eine Pause von bis zu ${r.pause_frist_tage} Tagen geben. `
|
||
+ 'Alles, was länger gilt, und jeder endgültige Ausschluss ist DogFathers '
|
||
+ 'Entscheidung. Jede dieser Entscheidungen wird mit Grund festgehalten – '
|
||
+ 'auch, damit man sie zurücknehmen kann.';
|
||
}
|
||
})();
|
||
})();
|