diff --git a/server/mess-vanvan-karte.mjs b/server/mess-vanvan-karte.mjs index 68f175ad..caf7525f 100644 --- a/server/mess-vanvan-karte.mjs +++ b/server/mess-vanvan-karte.mjs @@ -211,7 +211,15 @@ console.log("=== 3. Was der Modi auf der Seite Eure Aufgaben WIRKLICH sieht ===" ueberschriften: [...document.querySelectorAll("h1, h2")] .map((x) => x.textContent.trim()).filter(Boolean).slice(0, 12), karteDa: !!karte && !karte.hidden, - auftragsblock: auf ? auf.querySelector(".e-block__titel")?.textContent.trim() : null, + /* SEIT DEM 30.09.2026 IST DER KOPF EIN SCHALTER. Der Name steht + in `.e-block__name`, die Zahl daneben in `.e-block__stand` -- + `.e-block__titel` gibt es hier nicht mehr. Die Zeile meldete + `undefined` und haette das stillschweigend weiter getan. */ + auftragsblock: auf + ? [auf.querySelector(".e-block__name")?.textContent.trim(), + auf.querySelector(".e-block__stand")?.textContent.trim()].join(" ") + : null, + auftragKlappbar: !!auf?.querySelector(".e-block__schalter"), aufgabenTitel: auf ? [...auf.querySelectorAll(".e-punkt__titel")].map((x) => x.textContent.trim()) : [], @@ -224,7 +232,8 @@ console.log("=== 3. Was der Modi auf der Seite Eure Aufgaben WIRKLICH sieht ===" }); console.log(` Ueberschriften: ${w.ueberschriften.join(" | ")}`); console.log(` Karte sichtbar: ${w.karteDa}, Punktzeilen darin: ${w.punkte}`); - console.log(` Abschnitt: ${JSON.stringify(w.auftragsblock)}`); + console.log(` Abschnitt: ${JSON.stringify(w.auftragsblock)} ` + + `(einklappbar=${w.auftragKlappbar})`); console.log(` Seine Aufgaben: ${JSON.stringify(w.aufgabenTitel)}`); console.log(` Lage dazu: ${JSON.stringify(w.aufgabenLage)}`); console.log(` Satz: ${w.satz}`); @@ -327,6 +336,97 @@ console.log("=== 4. Was VanVan an einem Punkt sieht ==="); await kontext.close(); } +/* ===================================================================== + 5. VANVANS ZWEITE MELDUNG: „Deine Karte kann man nicht einklappen" + + „was die Seite unnötig lang zieht und unübersichtlich macht." + + IHRE EIGENE KARTE, nicht die eines Modi. Im Bildschirmfoto steht an + jedem Punkt „1 × Läuft" -- eine einzige Antwort. Ueber die rechte + Hand urteilt nur DogFather, also ist bei ihr alles „fertig" und die + Karte entsprechend lang. Ein Modi braucht zwei Stimmen und sieht + deshalb meist gar nichts. + + GEMESSEN WIRD DIE HOEHE. „Unnötig lang" ist eine Zahl, keine + Meinung -- und ohne sie laesst sich nachher nicht sagen, ob es + besser geworden ist. + ===================================================================== */ +console.log(""); +console.log("=== 5. VanVans eigene Karte: wie lang wird die Seite? ==="); +{ + /* Filipe bewertet VanVan durch -- alle Punkte, wie im echten Haus + ueber Monate gewachsen. */ + let gesetzt = 0; + for (const pt of ENTWICKLUNG_FREMD) { + const a = await ruf(kDogi, `/workspace/api/entwicklung/person/${idVan}/${pt.schluessel}`, + { stufe: "laeuft", anlass: "" }, "PUT"); + if (a.status === 200) gesetzt++; + } + console.log(` Filipe hat ${gesetzt} von ${ENTWICKLUNG_FREMD.length} Punkten gesetzt.`); + + const { kontext, seite, konsole } = await alsWer(kVan, 1280, 1000); + await seite.goto(`${BASIS}/workspace/entwicklung.html`, { waitUntil: "networkidle" }); + await seite.waitForTimeout(1800); + + const m = await seite.evaluate(() => { + const karte = document.getElementById("karte-block"); + const r = karte?.getBoundingClientRect(); + return { + seitenhoehe: document.documentElement.scrollHeight, + kartenhoehe: r ? Math.round(r.height) : 0, + bloecke: karte ? karte.querySelectorAll(".e-block").length : 0, + zeilen: karte ? karte.querySelectorAll(".e-punkt").length : 0, + /* Gibt es ueberhaupt einen Schalter zum Zuklappen? */ + schalter: karte ? karte.querySelectorAll(".e-block__schalter").length : 0, + alleKnopf: karte ? karte.querySelectorAll(".e-bloecke__alle").length : 0, + }; + }); + console.log(` Seite gesamt: ${m.seitenhoehe} px`); + console.log(` Davon „Deine Karte": ${m.kartenhoehe} px ` + + `(${m.bloecke} Abschnitte, ${m.zeilen} Zeilen)`); + console.log(` Schalter zum Zuklappen: ${m.schalter}, „Alle"-Knopf: ${m.alleKnopf}`); + if (!m.schalter) { + console.log(" ACHTUNG: Kein einziger Abschnitt laesst sich zuklappen -- " + + "genau VanVans Meldung."); + } else { + /* ZUKLAPPEN UND NACHMESSEN. Ohne diesen Griff hiesse „es gibt + Schalter" nur, dass es Schalter gibt. */ + const nach = await seite.evaluate(() => { + const k = document.querySelector("#karte-block .e-bloecke__alle"); + if (k && k.textContent.includes("zuklappen")) k.click(); + else document.querySelectorAll("#karte-block .e-block__schalter") + .forEach((s) => { if (s.getAttribute("aria-expanded") === "true") s.click(); }); + const r = document.getElementById("karte-block")?.getBoundingClientRect(); + return { + kartenhoehe: r ? Math.round(r.height) : 0, + sichtbar: [...document.querySelectorAll("#karte-block .e-punkt")] + .filter((z) => z.getBoundingClientRect().height > 0).length, + }; + }); + console.log(` Zugeklappt: ${nach.kartenhoehe} px ` + + `(${nach.sichtbar} Zeilen noch sichtbar)`); + const gespart = m.kartenhoehe - nach.kartenhoehe; + const anteil = Math.round(gespart / Math.max(1, m.kartenhoehe) * 100); + console.log(` Gespart: ${gespart} px (${anteil} %)`); + /* EIN ANTEIL UND KEINE FESTE PIXELZAHL. Wie hoch die Karte ist, + haengt am Bestand -- 68 Punkte heute, vielleicht 90 im + naechsten Jahr. Eine feste Grenze waere die Rechnung von + gestern; „mehr als die Haelfte weg" gilt auch dann noch. */ + if (anteil < 50 || nach.sichtbar > 0) { + console.log(" ACHTUNG: Zuklappen bringt kaum etwas " + + `(${anteil} %, ${nach.sichtbar} Zeilen bleiben stehen).`); + } + } + if (m.schalter && !m.alleKnopf) { + console.log(" ACHTUNG: Es gibt Schalter, aber keinen Knopf, der alle " + + "auf einmal zuklappt -- bei sechs Abschnitten ist das sechsmal tippen."); + } + await seite.screenshot({ path: "server/mess-vanvan-karte-eigene.png", fullPage: true }); + console.log(" Bild: server/mess-vanvan-karte-eigene.png"); + if (konsole.length) console.log(" KONSOLE:", konsole.slice(0, 3).join(" | ")); + await kontext.close(); +} + await browser.close(); try { rmSync(ordner, { recursive: true, force: true }); } catch { /* Rest im Temp */ } console.log(""); diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html index d0668401..906e2fc3 100644 --- a/workspace/anruf-probe.html +++ b/workspace/anruf-probe.html @@ -16,8 +16,8 @@ verdeckt. Gefunden hat es pruef-struktur. Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. --> - - + + - +