screen5: Aus dem Treff wird das Rudel, aus der Zentrale die IrrenAnstalt
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]>
This commit is contained in:
@@ -188,7 +188,7 @@ ok(!!kDogi && !!kModi && !!kGast, "DogFather, ein Modi und zwei Gäste sind ange
|
||||
1. DIE RECHNUNG — ohne Server, ohne Uhr zu fälschen
|
||||
======================================================================= */
|
||||
melde("");
|
||||
melde("=== 1. Wann schläft der Treff ===");
|
||||
melde("=== 1. Wann schläft das Rudel ===");
|
||||
{
|
||||
/* Die Vorgabe ist 0 bis 6 -- geprüft wird gegen die KONSTANTEN, nicht
|
||||
gegen eine abgeschriebene Zahl. Wer die Zeiten ändert, ändert sie
|
||||
@@ -237,8 +237,8 @@ melde("=== 2. Der Raum ===");
|
||||
ok(raeume.length === 1, `und darin genau einen Raum (${raeume.length})`);
|
||||
const treff = raeume[0];
|
||||
ok(treff?.art === "kanal" && treff?.kategorie === "treff",
|
||||
`den Treff (${treff?.art}/${treff?.kategorie})`);
|
||||
ok(treff?.name === "Der Treff", `mit lesbarem Namen: „${treff?.name}“`);
|
||||
`das Rudel (${treff?.art}/${treff?.kategorie})`);
|
||||
ok(treff?.name === "Das Rudel", `mit lesbarem Namen: „${treff?.name}“`);
|
||||
|
||||
/* GENAU EINER. Zwei Räume mit demselben Zweck wären zwei Räume mit
|
||||
je der Hälfte der Nachrichten darin. */
|
||||
@@ -247,7 +247,7 @@ melde("=== 2. Der Raum ===");
|
||||
const d = oeffne();
|
||||
const anzahl = d.prepare(
|
||||
"SELECT COUNT(*) AS n FROM chat_raeume WHERE kategorie = 'treff'").get().n;
|
||||
ok(anzahl === 1, `es gibt genau einen Treff-Raum (${anzahl})`);
|
||||
ok(anzahl === 1, `es gibt genau einen Rudel-Raum (${anzahl})`);
|
||||
|
||||
const drin = d.prepare(`SELECT p.rolle, t.leitung FROM chat_teilnehmer t
|
||||
JOIN personen p ON p.id = t.person_id
|
||||
@@ -292,7 +292,7 @@ let treffId = null;
|
||||
{
|
||||
const r = json(await ruf("/workspace/api/chat/raeume", CREW, "GET", { cookie: kGast }));
|
||||
treffId = r.raeume?.[0]?.id ?? null;
|
||||
ok(!!treffId, `der Treff hat eine Nummer (${treffId})`);
|
||||
ok(!!treffId, `das Rudel hat eine Nummer (${treffId})`);
|
||||
|
||||
ok(r.treff && r.treff.zu === NACHTLAUF,
|
||||
NACHTLAUF
|
||||
@@ -390,7 +390,7 @@ let treffId = null;
|
||||
const imHaus = await ruf(`/workspace/api/chat/raeume/${treffId}/nachrichten`, HAUS, "POST",
|
||||
{ cookie: kCreator }, { text: "Ich auch!" });
|
||||
ok(imHaus.code === 404,
|
||||
`und auf seiner eigenen Adresse kennt der Treff ihn nicht (${imHaus.code})`);
|
||||
`und auf seiner eigenen Adresse kennt das Rudel ihn nicht (${imHaus.code})`);
|
||||
/* Dass seine Anmeldung ueberhaupt gilt -- sonst waeren beide Zeilen
|
||||
oben nur deshalb gruen, weil der Keks nichts wert ist. */
|
||||
const seins = await ruf("/workspace/api/chat/raeume", HAUS, "GET", { cookie: kCreator });
|
||||
@@ -542,7 +542,9 @@ melde("=== 6b. Im Browser ===");
|
||||
|| !!document.getElementById("anruf-video-start"),
|
||||
breiter: document.documentElement.scrollWidth > document.documentElement.clientWidth + 1,
|
||||
}));
|
||||
ok(/Treff/i.test(stand.text), "die Seite nennt den Treff");
|
||||
/* s.o.: Der Ausdruck hat die Umbenennung nicht mitbekommen und
|
||||
haette nach "Treff" gesucht, waehrend die Seite "Rudel" sagt. */
|
||||
ok(/Rudel/i.test(stand.text), "die Seite nennt das Rudel");
|
||||
/* KEIN TELEFONKNOPF. Der Riegel im Server ist das eine -- ein Knopf,
|
||||
der mit 404 antwortet, waere trotzdem ein Knopf, den man drueckt. */
|
||||
ok(stand.anrufKnopf === false, "und es gibt keinen Anrufknopf");
|
||||
|
||||
Reference in New Issue
Block a user