From 721ad262df8d5ea69482ec76a04cdc269b775fdb Mon Sep 17 00:00:00 2001 From: Dogfather Date: Wed, 30 Sep 2026 17:33:37 +0200 Subject: [PATCH] =?UTF-8?q?Entwicklung:=20=E2=80=9EDeine=20Karte"=20laesst?= =?UTF-8?q?=20sich=20einklappen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit VanVan im Support: „Deine Karte im Bereich eure Aufgaben kann man noch nicht einklappen, was die Seite unnötig lang zieht und unübersichtlich macht." GEMESSEN (mess-vanvan-karte, Abschnitt 5). Es ist IHRE eigene Karte, nicht die eines Modi -- im Bildschirmfoto steht an jedem Punkt „1 × Läuft", also eine einzige Antwort. Ueber die rechte Hand urteilt nur DogFather; bei ihr ist deshalb alles durch und die Karte entsprechend lang, waehrend ein Modi zwei Stimmen braucht. vorher nachher Seite gesamt 7245 px 2945 px davon „Deine Karte" 6186 px 1886 px (zugeklappt 636 px) Schalter 0 6 + „Alle"-Knopf 6186 von 7245 px waren eine einzige Karte -- 85 Prozent der Seite, 68 Zeilen am Stueck, kein einziger Schalter. DERSELBE MECHANISMUS WIE NEBENAN, NICHT EIN ZWEITER. Die Karte der Leitung klappt seit Langem auf und zu. Die Klassen, der Pfeil, die Zahl im Kopf und der Knopf „Alle auf-/zuklappen" sind dieselben -- ein zweiter Mechanismus daneben waere der, der beim naechsten Umbau vergessen wird, und er saehe anders aus, obwohl er dasselbe tut. Herausgeloest als `klappAbschnitt()`. WELCHER STEHT OFFEN: Was ich TUN soll („Deine Aufgaben"), und von den Beobachtungen die erste Kategorie. Alle zu hiesse „jedes Mal erst suchen", alle auf waere der Zustand von vorher. DIE ZAHL STEHT IM KOPF (14, 12, 12, 11, 10, 9). Eine zugeklappte Kategorie, die nicht sagt, wie viel in ihr steckt, klappt man einmal auf und danach nie wieder zu. GEPRUEFT Die Messung ist jetzt selbst die Wache: Sie schlaegt an, wenn es keine Schalter gibt (so ist der Befund entstanden), wenn Zuklappen weniger als die Haelfte spart, und wenn es Schalter ohne „Alle"-Knopf gibt. Alle drei nachgestellt. Ein ANTEIL und keine feste Pixelzahl -- 68 Punkte heute, vielleicht 90 naechstes Jahr. pruef-entwicklung 79/0, pruef-werdegang 103/0, pruef-entwicklung-kacheln 34/0, pruef-css-klassen, pruef-zwischenspeicher 34/0. Co-Authored-By: Claude Opus 5 --- server/mess-vanvan-karte.mjs | 104 ++++++++++++++++++- workspace/anruf-probe.html | 10 +- workspace/app.webmanifest | 8 +- workspace/assets/css/entwicklung.css | 13 +-- workspace/assets/js/entwicklung.js | 146 +++++++++++++++++++++++++-- workspace/aufgaben.html | 38 +++---- workspace/automation.html | 32 +++--- workspace/befinden.html | 34 +++---- workspace/bereich.html | 44 ++++---- workspace/bewerben.html | 38 +++---- workspace/bewerbungen.html | 36 +++---- workspace/buehne.html | 6 +- workspace/calls.html | 34 +++---- workspace/chat.html | 40 ++++---- workspace/content.html | 34 +++---- workspace/crew-index.html | 12 +-- workspace/crew.webmanifest | 8 +- workspace/dateien.html | 34 +++---- workspace/entwicklung.html | 36 +++---- workspace/hilfe.html | 30 +++--- workspace/index.html | 10 +- workspace/kalender.html | 34 +++---- workspace/leistung.html | 32 +++--- workspace/material.html | 32 +++--- workspace/notizen.html | 28 ++--- workspace/personen.html | 32 +++--- workspace/profil.html | 36 +++---- workspace/reaktion.html | 38 +++---- workspace/rechte.html | 34 +++---- workspace/report.html | 36 +++---- workspace/scouting.html | 32 +++--- workspace/start.html | 32 +++--- workspace/startcheck.html | 34 +++---- workspace/steckbrief.html | 36 +++---- workspace/support.html | 28 ++--- workspace/tafel.html | 6 +- workspace/talente.html | 36 +++---- workspace/team.html | 32 +++--- workspace/teamlage.html | 34 +++---- workspace/teilen.html | 30 +++--- workspace/treff-moderation.html | 32 +++--- workspace/treff-regeln.html | 32 +++--- workspace/uebersicht.html | 32 +++--- workspace/unsere-seiten.html | 30 +++--- workspace/unterstuetzen.html | 32 +++--- workspace/werdegang.html | 32 +++--- workspace/willkommen.html | 30 +++--- workspace/wissen.html | 34 +++---- 48 files changed, 912 insertions(+), 691 deletions(-) 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`. --> - - + + - +