From ae2f12c67d5e6bfdcbb037870481cd73f7a520f6 Mon Sep 17 00:00:00 2001 From: Dogfather Date: Sat, 3 Oct 2026 15:25:26 +0200 Subject: [PATCH] "Fuer wen"-Reihe weg -- aber nur bei Team Dogi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Filipe, mit Bildschirmfoto der Leiste "FUER WEN · Alle 3 2 · Marina 1 · Diene 0": "brauchen wir nicht auf der aufgaben seite." GETRENNT GEFUEHRT, wie seit dem 24.09. fuer jeden Umbau. Es ist DIESELBE Reihe in beiden Haeusern, aber nicht dieselbe Aufgabe: Team Dogi -> "Fuer wen", darin drei, vier Modis, die ohnehin alle auf einem Schirm stehen. Ein Filter fuer eine Liste, die kuerzer ist als er. WEG. Spicy Media -> "Alle Creator" / "Deine Creator". Scouts und Manager filtern damit durch ihre Creator, und das sind deutlich mehr. BLEIBT. Die Trennung ist eine einzige Zeile an `ich.haus` -- das kommt vom Server. Eine Rollenliste im Browser waere die zweite Wahrheit und fuer DogFather, der in beiden Haeusern arbeitet, sogar falsch. Der Zweig fuer die dritte Beschriftung ist mit entfernt, nicht stehengelassen: "Fuer wen" ist von nirgends mehr erreichbar, und ein Zweig, den niemand erreicht, sieht beim Lesen aus wie ein Fall, den es gibt -- beim naechsten Umbau pflegt ihn jemand mit. BEWIESEN IN BEIDE RICHTUNGEN, sonst waere die Trennung eine Behauptung: * pruef-handy-teamdogi (neu, 3 Pruefungen, 244 -> 247): auf crew. im echten Browser ist die Reihe weg -- MIT der Gegenprobe, dass die Seite ueberhaupt steht (4 Knoepfe in der Schwester-Reihe). "Reihe nicht da" waere sonst auch auf einer kaputten Seite wahr. * pruef-aufgabenbrett (49, unveraendert): bei Spicy Media steht sie weiterhin da, mit "Alle, Tili, Luna" und der Beschriftung "Alle Creator". ZWEI DINGE AM PRUEFWERKZEUG, die mich heute Zeit gekostet haben: 1. `probleme` wurde seit jeher gefuellt und NIE ausgegeben. Am Ende stand "1 Befund" und sonst nichts -- wer das liest, weiss DASS etwas ist, nicht WAS, und muss den ganzen Lauf noch einmal anstossen. Die Befunde stehen jetzt unter der Zahl. 2. Der Anmeldeweg stand in der Schleife, und fuer die neue Messung habe ich ihn abgeschrieben -- dabei eine aeltere Fassung erwischt, ohne `isVisible()` und mit `click()` statt `check()`. Ergebnis: 30 Sekunden Zeitablauf an der Altersfrage, die es fuer DogFather gar nicht gibt. Jetzt ein Helfer, den beide Aufrufer benutzen. Co-Authored-By: Claude Opus 5 --- server/pruef-handy-teamdogi.mjs | 108 +++++++++++++++++++++++++++++--- workspace/anruf-probe.html | 10 +-- workspace/app.webmanifest | 8 +-- workspace/assets/js/aufgaben.js | 47 +++++++++----- 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/manager-ziele.html | 28 ++++----- 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, 817 insertions(+), 706 deletions(-) diff --git a/server/pruef-handy-teamdogi.mjs b/server/pruef-handy-teamdogi.mjs index 7aef5354..6128de12 100644 --- a/server/pruef-handy-teamdogi.mjs +++ b/server/pruef-handy-teamdogi.mjs @@ -599,6 +599,28 @@ const ROLLEN = [ ]; const BREITEN = [[390, 844, "iPhone"], [412, 915, "Android"]]; +/** Meldet sich auf der Team-Adresse an und wartet, bis die Startseite steht. + * + * EINE STELLE, ZWEI AUFRUFER (03.10.2026). Diese sechs Zeilen standen + * in der Schleife unten, und als ich sie fuer eine zweite Messung + * gebraucht habe, habe ich sie abgeschrieben -- und dabei eine + * aeltere Fassung erwischt: ohne `isVisible()` und mit `click()` + * statt `check()`. Ergebnis war ein Zeitablauf nach 30 Sekunden an + * der Altersfrage, die es fuer DogFather gar nicht gibt. Eine halbe + * Stunde fuer eine Abschrift. + * + * Die Altersfrage erscheint nur fuer die Community -- deshalb erst + * fragen, ob sie ueberhaupt sichtbar ist. */ +async function anmeldenAufCrew(seite, rolle, code) { + await seite.goto(BASIS + "/workspace/", { waitUntil: "domcontentloaded", timeout: 20000 }); + await seite.click(`.rolle[data-rolle="${rolle}"]`, { timeout: 8000 }); + await seite.fill("#code", code); + const frage = await seite.$("#alter-ok"); + if (frage && await frage.isVisible().catch(() => false)) await frage.check(); + await seite.click("button[type=submit]"); + await seite.waitForURL("**/start.html", { timeout: 20000 }); +} + let fehler = 0, geprueft = 0, elementeGesamt = 0, bedienbarGesamt = 0; const probleme = []; const melde = (t) => console.log(t); @@ -634,14 +656,7 @@ for (const [breite, hoehe, geraet] of BREITEN) { /* ---- Anmelden, wie ein Mensch es tut ---------------------------- */ let drin = false; try { - await seite.goto(BASIS + "/workspace/", { waitUntil: "domcontentloaded", timeout: 20000 }); - await seite.click(`.rolle[data-rolle="${rolle}"]`, { timeout: 8000 }); - await seite.fill("#code", code); - /* Die Altersfrage erscheint nur für die Community. */ - const frage = await seite.$("#alter-ok"); - if (frage && await frage.isVisible().catch(() => false)) await frage.check(); - await seite.click("button[type=submit]"); - await seite.waitForURL("**/start.html", { timeout: 20000 }); + await anmeldenAufCrew(seite, rolle, code); drin = true; } catch (f) { /* EINE GESCHEITERTE ANMELDUNG IST DER SCHLIMMSTE BEFUND -- danach @@ -864,9 +879,86 @@ melde("\n --- Gegenprobe (beide Fehler MÜSSEN gefunden werden) ---"); await kontext.close(); } +/* ===================================================================== + DIE "FUER WEN"-REIHE GIBT ES AUF crew. NICHT MEHR (03.10.2026) + + Filipe, mit Bildschirmfoto der Leiste "FUER WEN · Alle 3 2 · + Marina 1 · Diene 0": "brauchen wir nicht auf der aufgaben seite." + + WARUM DAS HIER GEPRUEFT WIRD UND NICHT IM AUFGABENBRETT: Es ist + DIESELBE Reihe in beiden Haeusern, und sie bleibt bei Spicy Media + -- dort filtern Scouts und Manager durch ihre Creator. Die + Gegenprobe steht deshalb schon in pruef-aufgabenbrett ("Mara sieht + Alle, Tili, Luna"), und nur die crew-Seite fehlte. Ohne diese + Zeilen waere die Trennung eine Behauptung: Niemand wuerde merken, + wenn die Reihe auf crew. zurueckkaeme -- oder wenn sie der Agentur + nebenbei mit abhanden kaeme. + + DIE GEGENPROBE STEHT DANEBEN, und sie ist hier das Wichtigste: + "Reihe nicht da" waere auch auf einer leeren oder kaputten Seite + wahr. Deshalb muss die Schwester-Reihe (Alle / Heute faellig / + Ueberfaellig) im selben Atemzug SICHTBAR sein. Erst beides zusammen + heisst "die Seite steht, und genau dieses eine Stueck fehlt". + ===================================================================== */ +{ + const kontext = await browser.newContext({ + viewport: { width: 390, height: 844 }, hasTouch: true, isMobile: true, + ignoreHTTPSErrors: true, + }); + const seite = await kontext.newPage(); + let gemessen = null; + try { + await anmeldenAufCrew(seite, "admin", "CODE-DOGI-0001"); + await seite.goto(BASIS + "/workspace/aufgaben.html", + { waitUntil: "domcontentloaded", timeout: 20000 }); + await seite.waitForTimeout(1200); + gemessen = await seite.evaluate(() => { + const r = document.getElementById("creator-reihe"); + const a = document.getElementById("ausschnitte"); + return { + reiheDa: !!r && r.hidden === false, + knoepfe: document.querySelectorAll(".creator-knopf").length, + schwesterDa: !!a && a.hidden === false, + schwesterKnoepfe: a ? a.querySelectorAll("button").length : 0, + }; + }); + } catch (f) { + melde(` FEHL "Fuer wen"-Reihe: nicht messbar -- ${String(f.message).slice(0, 160)}`); + probleme.push(`"Fuer wen"-Reihe: nicht messbar (${String(f.message).slice(0, 70)})`); + fehler++; + } + if (gemessen) { + geprueft += 3; + const g1 = gemessen.schwesterDa && gemessen.schwesterKnoepfe >= 2; + const g2 = !gemessen.reiheDa; + const g3 = gemessen.knoepfe === 0; + melde(""); + melde(` ${g1 ? "ok " : "FEHL"} die Aufgabenseite steht wirklich ` + + `(${gemessen.schwesterKnoepfe} Knoepfe in der Ausschnitt-Reihe)`); + melde(` ${g2 ? "ok " : "FEHL"} und die "Fuer wen"-Reihe ist weg (sichtbar: ${gemessen.reiheDa})`); + melde(` ${g3 ? "ok " : "FEHL"} auch kein einzelner Knopf davon (${gemessen.knoepfe})`); + if (!g1) { fehler++; probleme.push('"Fuer wen": die Seite stand gar nicht -- die Messung beweist nichts'); } + if (!g2 || !g3) { fehler++; probleme.push('"Fuer wen"-Reihe steht auf crew. wieder da'); } + } + await kontext.close(); +} + await browser.close(); try { rmSync(ordner, { recursive: true, force: true }); } catch { /* egal */ } +/* DIE BEFUNDE GEHOEREN UNTER DIE ZAHL (03.10.2026). + + `probleme` wurde seit jeher gefuellt und NIE ausgegeben: Am Ende + stand "1 Befund" und sonst nichts. Wer das liest, weiss, DASS etwas + ist, aber nicht was -- und muss den ganzen Lauf noch einmal + anstossen, um es zu erfahren. Genau das ist mir heute passiert. + Ein Befund ohne Grund ist eine Fundstelle, die man ueberliest. */ +if (probleme.length) { + melde(""); + melde(" --- Befunde im Einzelnen ---"); + for (const t of probleme) melde(` · ${t}`); +} + melde(""); melde(` ${geprueft} Seitenaufrufe, ${elementeGesamt} Elemente, ${bedienbarGesamt} Bedienelemente gemessen`); melde(` ${fehler} Befund${fehler === 1 ? "" : "e"}`); diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html index 49cb2438..9523d704 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`. --> - - + + - +