Alles fertig: Konsole montiert, Tageskachel als Instrument, zwei Seiten repariert
DIE KONSOLE -- DREI STUFEN DRAUF
1. VIER NIETEN in den vier Fasen. Das Einzige, was eine Flaeche
endgueltig zu einem GEGENSTAND macht, ist die Frage, wie sie
befestigt ist. Ein Gehaeuse haengt nicht in der Luft.
2. EINE GEFRAESTE NUT trennt Text von Instrumenten -- dunkel auf der
Lichtseite, hell auf der Schattenseite. Genau umgekehrt zu einer
aufgemalten Linie, und deshalb sieht sie nach Material aus.
3. DIE UHR SITZT IN EINER MULDE statt auf der Platte.
Drei Fehler dabei, alle im Bildschirmfoto gesehen: Die Nieten waren
QUADRATE (eine Hintergrundebene laesst sich nicht runden -- jetzt aus
Radialverlaeufen, die selbst rund sind). Die Mulde lag UEBER der Uhr
und hat die polierte Luenette zu mattem Grau gedaempft (`::after` wird
nach allen Kindern gezeichnet). Und das Raster musste von der
Nieten-Ebene herunter: Eine Ebene hat nur EINE Deckkraft.
DIE TAGESKACHEL "WAS IST DRAN"
Die drei Zeilen sind jetzt MODULE -- Fase, Kantenlicht in der Farbe
ihres Bereichs, Eckwinkel. Sie sind damit kleine Ausgaben derselben
Bauteile, zu denen sie fuehren, was sie ja auch sind. Die ZAHL wurde
zum gefassten Schild wie das Zeichen auf den Kacheln, und zwischen den
Haelften laeuft dieselbe gefraeste Nut wie auf der Konsole.
Ein Rueckschritt dabei, von der Pruefung sofort gemeldet: Ich hatte
die Ziffer weiss gemacht, weil das auf Metall gut aussieht -- damit
war ihre Aussage weg. Die Zahl traegt die Farbe ihres Bereichs und bei
etwas Ueberfaelligem die Warnfarbe; das ist die schnellste Auskunft der
ganzen Kachel. Die Farbe gehoert in die Ziffer, nicht ins Schild.
SPICY MEDIA SIEHT DIE ZAHLEN JETZT NIRGENDS
Vorher nur Kachel und Seite -- die Creator-Zahlen standen weiterhin im
Dashboard, weil das sie ueber eine eigene Schnittstelle holt. Die ist
jetzt zu (404 am Server, nicht in der Oberflaeche). Das Dashboard
bleibt fuer sie stehen: Es faengt den Fehlschlag ausdruecklich ab.
Mit Pruefung und Gegenprobe.
UND ZWEI SEITEN, DIE BEIM ANSEHEN AUFFIELEN
Das ist der Ertrag der Durchsicht jener zwoelf Seiten, die bisher nur
GEPRUEFT und nie ANGESEHEN worden waren:
* chat.html und uebersicht.html luden kopf.js OHNE wahl.js. Der
Umschalter "Meine Sicht" fiel dort auf das nackte Systemfeld
zurueck: 92 x 19 px, grauer Kasten, Systemschrift -- auf allen
anderen Seiten ist es ein selbst gebautes Bedienelement, hinter dem
dasselbe Feld unsichtbar bei 2 x 2 px liegt. Kaputt war nichts. Es
sah nur aus wie aus einem anderen Programm, und genau das findet
keine Pruefung, die auf Fehlermeldungen achtet.
Neue Pruefung: Wer kopf.js laedt, muss wahl.js laden -- und vorher.
* Der Chat-Rahmen gehoerte als einzige grosse Flaeche noch nicht zum
Modulsystem. Jetzt schon.
18 Pruefungen gelaufen, alle gruen. Rechner und Handy angesehen,
dazu Kalender, Chat, Automationen, Uebersicht, Start-Check,
Steckbrief, Bereiche, Profil, Content, Scouting und Report.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -426,6 +426,57 @@ console.log("\n=== Gegenprobe ===");
|
||||
"aus classList.add(bedingung ? 'a' : 'b') werden beide Klassen gelesen, aber nicht die Variable");
|
||||
}
|
||||
|
||||
/* =======================================================================
|
||||
WER kopf.js LAEDT, MUSS AUCH wahl.js LADEN
|
||||
|
||||
Gefunden am 07.09.2026 beim Durchsehen der Seiten, die bis dahin nur
|
||||
GEPRUEFT und nie ANGESEHEN worden waren -- chat.html und
|
||||
uebersicht.html luden kopf.js ohne wahl.js.
|
||||
|
||||
Der Umschalter "Meine Sicht" ist auf allen anderen Seiten ein selbst
|
||||
gebautes Bedienelement (`.wahl2`), hinter dem ein unsichtbares
|
||||
Systemfeld fuer Vorleseprogramme liegt. Ohne wahl.js faellt kopf.js
|
||||
auf dieses Systemfeld zurueck: 92 x 19 Pixel, grauer Kasten, weisse
|
||||
Schrift, Systemschriftgroesse -- gemessen, nicht geschaetzt. Auf den
|
||||
anderen Seiten misst dasselbe Feld 2 x 2 Pixel bei Deckkraft null,
|
||||
weil es dort nur noch der Zugaenglichkeit dient.
|
||||
|
||||
KAPUTT WAR NICHTS. Der Umschalter funktionierte auf beiden Seiten --
|
||||
er sah nur aus wie aus einem anderen Programm. Genau diese Sorte
|
||||
Fehler findet keine Pruefung, die auf Fehlermeldungen achtet, und
|
||||
auch keine, die Klassennamen zaehlt: Die Klasse `.sicht__feld` ist
|
||||
NIRGENDS gestaltet und gilt deshalb zu Recht als Struktur-Anker.
|
||||
|
||||
Deshalb hier eine Pruefung auf die ABHAENGIGKEIT statt auf die Optik:
|
||||
Wer das eine laedt, muss das andere laden -- und zwar vorher. */
|
||||
console.log("\n=== Wer kopf.js laedt, laedt auch wahl.js");
|
||||
{
|
||||
const seitenMitKopf = [];
|
||||
for (const seite of readdirSync(WS).filter((f) => f.endsWith(".html"))) {
|
||||
const html = readFileSync(join(WS, seite), "utf8");
|
||||
const skripte = [...html.matchAll(/<script[^>]+src="assets\/js\/([a-z0-9-]+)\.js/g)]
|
||||
.map((m) => m[1]);
|
||||
if (!skripte.includes("kopf")) continue;
|
||||
seitenMitKopf.push({ seite, skripte });
|
||||
}
|
||||
ok(seitenMitKopf.length >= 10,
|
||||
`${seitenMitKopf.length} Seiten laden kopf.js`);
|
||||
|
||||
const ohneWahl = seitenMitKopf.filter((s) => !s.skripte.includes("wahl")).map((s) => s.seite);
|
||||
ok(ohneWahl.length === 0, ohneWahl.length
|
||||
? `ohne wahl.js: ${ohneWahl.join(", ")}`
|
||||
: "alle davon laden auch wahl.js");
|
||||
|
||||
/* UND ZWAR VORHER. kopf.js fragt beim Aufbau nach dem fertigen
|
||||
Bedienelement; kommt wahl.js danach, ist es zu spaet. */
|
||||
const zuSpaet = seitenMitKopf
|
||||
.filter((s) => s.skripte.indexOf("wahl") > s.skripte.indexOf("kopf"))
|
||||
.map((s) => s.seite);
|
||||
ok(zuSpaet.length === 0, zuSpaet.length
|
||||
? `wahl.js steht zu spaet auf: ${zuSpaet.join(", ")}`
|
||||
: "und immer VOR kopf.js");
|
||||
}
|
||||
|
||||
/* =======================================================================
|
||||
KEIN SKRIPT BAUT SICH SEINE EIGENE ROLLENLISTE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user