diff --git a/server/mess-anleitung-crew.mjs b/server/mess-anleitung-crew.mjs index a4e089e0..f9364ef6 100644 --- a/server/mess-anleitung-crew.mjs +++ b/server/mess-anleitung-crew.mjs @@ -71,7 +71,15 @@ for (let i = 0; i < 60; i++) { } catch { await new Promise((r) => setTimeout(r, 250)); } } -const ROLLEN = [["gast", "Community"], ["modi", "Modi"], ["linke", "Linke Hand"], ["hand", "Rechte Hand"]]; +/* DogFather ist dabei, obwohl er keine Fassung bekommt: Die Abnahme + verlangt alle fuenf Rollen, und bei ihm soll die Seite die PFLEGE + zeigen. Beim ersten Anlauf fehlte er in dieser Liste -- die Messung + meldete daraufhin "302 anleitung.html" und sah aus wie ein Befund + am Haus. Es war die fehlende Anmeldung: ohne Person kein Keks, ohne + Keks die Anmeldewand. Eine Messung, die ihren eigenen Aufbau nicht + im Griff hat, erzeugt Befunde, die niemandem gehoeren. */ +const ROLLEN = [["gast", "Community"], ["modi", "Modi"], ["linke", "Linke Hand"], + ["hand", "Rechte Hand"], ["admin", "DogFather"]]; { const d = new DatabaseSync(process.env.WORKSPACE_DB); for (const [rolle] of ROLLEN) { @@ -180,9 +188,17 @@ for (const [rolle, wie] of ROLLEN) { args: [`--host-resolver-rules=MAP ${CREW} 127.0.0.1`, "--ignore-certificate-errors"], ignoreHTTPSErrors: true, }); + /* ALLE FUENF ROLLEN, so wie der Bauplan die Abnahme verlangt: + „Melde dich in allen fuenf Rollen an und pruefe." DogFather ist + dabei, obwohl er keine Fassung hat -- gerade bei ihm soll man + sehen, dass die Seite ihm die PFLEGE zeigt und nicht eine leere + Einweisung. */ for (const [rolle, wie, datei] of [ ["gast", "Community", "bild-anleitung-crew-community.png"], + ["modi", "Modi", "bild-anleitung-crew-modi.png"], + ["linke", "Linke Hand", "bild-anleitung-crew-linke.png"], ["hand", "Rechte Hand", "bild-anleitung-crew-hand.png"], + ["admin", "DogFather", "bild-anleitung-crew-dogi.png"], ]) { /* ANGEMELDET WIRD UEBER DIE SCHNITTSTELLE, nicht ueber die Wand. Auf der Crew-Wand liegt bei 390 px das Buehnenbild ueber den @@ -231,12 +247,20 @@ for (const [rolle, wie] of ROLLEN) { stufe: z("stufe-block") && !z("stufe-block").hidden, stufeText: z("stufe-jetzt")?.textContent || "", titel: z("seiten-titel")?.textContent || "", + /* Hat diese Rolle eine Fassung -- oder die Pflege? */ + fassung: z("fassung") && !z("fassung").hidden, + ohneFassung: z("ohne-fassung") && !z("ohne-fassung").hidden, + pflege: z("pflege") && !z("pflege").hidden, + platzhalter: /Ein Brett zum Sammeln/.test(document.body.textContent || ""), }; }); console.log(` === ${wie} im Browser (390 px) ===`); console.log(` Titel : "${lage.titel}"`); console.log(` Karten : ${lage.karten}`); + console.log(` Fassung / Pflege : ${lage.fassung ? "Fassung" : "-"} / ` + + `${lage.ohneFassung ? "Auskunft" : "-"} / ${lage.pflege ? "Pflege" : "-"}`); + console.log(` Platzhaltertext : ${lage.platzhalter ? "JA -- Befund" : "nein"}`); console.log(` Drei Dinge vorweg : ${lage.vorweg}`); console.log(` Deine Stufe : ${lage.stufe} ${lage.stufeText}`); console.log(` Querscrollen : ${lage.quer ? "JA -- Befund" : "nein"}`); diff --git a/server/pruef-anleitung.mjs b/server/pruef-anleitung.mjs index 761ca90c..67bd5023 100644 --- a/server/pruef-anleitung.mjs +++ b/server/pruef-anleitung.mjs @@ -1411,6 +1411,37 @@ for (const rolle of ["gast", "modi", "linke", "hand"]) { } } +/* ===================================================================== + DIE PFLEGELEISTE HAENGT AN BEIDEN WEGEN, NICHT NUR AN EINEM + --------------------------------------------------------------------- + Die Seite hat genau zwei Ausgaenge: `zeigen()` (es gibt eine + Fassung) und `ohneFassung()` (es gibt keine -- DogFather). Die + Pflegeleiste hing bis zum 06.10.2026 nur am ersten. Folge: Genau + der eine Mensch, fuer den die Pflege gebaut ist, sah beim Oeffnen + der Kachel EINEN SATZ und sonst nichts -- gemessen auf der + Crew-Adresse, wo er keine Fassung hat. + + WAS HIER GEPRUEFT WIRD, IST EINE ZAHL UND KEIN WORTLAUT: Beide + Ausgaenge muessen die Leiste entscheiden. Das ist schwaecher als + eine Messung im Browser (die liegt in mess-anleitung-crew und sagt + „Pflege: ja") -- aber sie laeuft bei jeder Aenderung mit, und + schwaecher ist hier besser als gar nicht. Kommentare werden vorher + entfernt, sonst zaehlte dieser Absatz sich selbst mit. */ +melde("\n=== Die Pflegeleiste haengt an beiden Ausgaengen ==="); +{ + const quelle = readFileSync( + new URL("../workspace/assets/js/anleitung.js", import.meta.url), "utf8"); + const nurCode = quelle + .replace(/\/\*[\s\S]*?\*\//g, " ") + .replace(/(^|[^:])\/\/[^\n]*/g, "$1 "); + const stellen = (nurCode.match(/\$\('pflege'\)\.hidden/g) || []).length; + ok(stellen === 2, + `die Pflegeleiste wird an beiden Ausgaengen entschieden (${stellen})`); + const ausgaenge = (nurCode.match(/function (zeigen|ohneFassung)\(/g) || []).length; + ok(ausgaenge === 2, + `…und es gibt genau diese zwei Ausgaenge (${ausgaenge})`); +} + /* ---------- Abschluss ------------------------------------------------ */ try { rmSync(ordner, { recursive: true, force: true }); } catch { /* egal */ } console.log(`\n${fehler ? "FEHLER: " + fehler : "Alles in Ordnung"} — ${geprueft} Prüfungen`); diff --git a/workspace/anleitung.html b/workspace/anleitung.html index 0fa581e5..7b2fbd0d 100644 --- a/workspace/anleitung.html +++ b/workspace/anleitung.html @@ -7,17 +7,17 @@ - - - - - + + + + + - - + +
@@ -289,16 +289,16 @@ Und anleitung.js braucht es doppelt: Symbol, Farbe, Name und Adresse jeder Karte kommen von dort, nicht vom Server. --> - + - - - - - - + + + + + +