diff --git a/server/bild-kampagne.mjs b/server/bild-kampagne.mjs index a481cbad..2401a7d7 100644 --- a/server/bild-kampagne.mjs +++ b/server/bild-kampagne.mjs @@ -155,6 +155,30 @@ const browser = await pw.chromium.launch(); const fehlerAufSeite = []; +/** Den Einlesekasten aufmachen, falls er zu ist. + * + * Seit dem 08.10.2026 steht er von sich aus zu -- er war auf + * 412 px auf 521 px gewachsen, mehr als ein halber + * Telefonbildschirm vor der ersten Kachel. Jede Stelle, die + * seinen INHALT braucht, muss ihn also erst oeffnen. + * + * AN EINER STELLE, NICHT DREIMAL ABGESCHRIEBEN: Beim ersten + * Versuch stand das Oeffnen nur oben bei der Messung, und die + * zwei `fill()` weiter unten liefen in eine 30-Sekunden-Frist -- + * mit einer Meldung ueber ein Textfeld, das es laut Fehlertext + * sehr wohl gab. Das ist die unangenehme Sorte Fehlschlag: Er + * sagt die Wahrheit und fuehrt trotzdem in die Irre. */ +const kastenAufmachen = async (seite) => { + const schild = await seite.$("#kampagne-schild"); + if (!schild) return false; + const zu = await seite.evaluate(() => + document.getElementById("kampagne-form")?.hidden === true); + if (!zu) return true; + await schild.click(); + await seite.waitForTimeout(250); + return true; +}; + const anmelden = async (seite, rolle, code) => { await seite.goto(BASIS + "/workspace/", { waitUntil: "networkidle" }); await seite.click(`.rolle[data-rolle="${rolle}"]`); @@ -214,16 +238,47 @@ async function messen(breite, hoehe, name) { return { rolle: j.rolle, darf: j.darf_kampagne_einlesen, wirt: location.host }; }); console.log(" /api/ich: " + JSON.stringify(ichSagt)); + + /* ERST AUFKLAPPEN (08.10.2026). + + Der Kasten steht seit heute zu -- er war auf 412 px auf 521 px + gewachsen, mehr als ein halber Telefonbildschirm vor der ersten + Kachel. Gemessen werden soll trotzdem der INHALT: Textfeld, + Knopf, Kontrast, Tippziele. Zugeklappt haben die alle die Hoehe + null, und die Messung meldete einen Schaden, wo keiner ist. + + DASS ER ZUGEHT, MISST pruef-eventkarte (Abschnitt 4c) -- dort + gehoert es hin, zusammen mit dem Rest der Bedienung. Hier geht + es um das Aussehen des offenen Kastens. */ + await kastenAufmachen(seite); + const mass = await seite.evaluate(() => { const k = document.getElementById("kampagneholen"); if (!k || k.hidden) return { da: false }; - const r = (e) => { const b = e.getBoundingClientRect(); + /* EIN FEHLENDES ELEMENT GIBT NULLEN, KEINEN ABSTURZ + (berichtigt 08.10.2026). Vorher warf `r(null)` mitten in der + Messung, und der ganze Lauf endete mit „unbehandelter + Fehler" -- ohne zu sagen, WELCHES Element fehlte. Nullen + machen die Zusicherung darunter rot und nennen dabei den + Namen. Ein Fehlschlag ist rot und steht da; ein Absturz + sieht aus wie ein kaputtes Werkzeug. */ + const r = (e) => { + if (!e) return { x: 0, y: 0, b: 0, h: 0, fehlt: true }; + const b = e.getBoundingClientRect(); return { x: Math.round(b.x), y: Math.round(b.y), - b: Math.round(b.width), h: Math.round(b.height) }; }; + b: Math.round(b.width), h: Math.round(b.height) }; + }; const feld = document.getElementById("kampagne-text"); const knopf = document.getElementById("kampagne-holen"); const sagt = document.getElementById("kampagne-sagt"); - const titel = k.querySelector(".kampagneholen__titel"); + /* DIE UEBERSCHRIFT IST SEIT DEM 08.10.2026 DAS KLAPPSCHILD. + `.kampagneholen__titel` gibt es nicht mehr -- der `

` ist + ein `