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`. -->
-
-
+
+
-
+