Kapitel 04: der Knopf heisst "Hingehen" -- und das Datum war gar keins
Zwei kleine Dinge aus dem Bauplan, Kapitel 04. Das zweite war ein
echter Fehler, und er war auf dem Weg nach draussen.
"AKTUALISIERT AM" -- UND DANN STUENDE DA EIN ZEITSTEMPEL
`datumKurz` prueft mit einem Ausdruck, der ein `$` am Ende hatte. Die
Stufenkarte schickt einen reinen Tag ("2026-10-13"), die Karte aber
einen ganzen Zeitstempel ("2026-10-06T18:22:31.123Z", aus
`new Date().toISOString()` -- siehe anleitung-tabellen.js und
workspace-anleitung.js). Die zweite Form bestand die Pruefung nicht
und waere UNVERAENDERT durchgereicht worden: Auf der Karte haette
woertlich "aktualisiert am 2026-10-06T18:22:31.123Z" gestanden. Kein
Fehler, kein Absturz, keine rote Meldung -- genau die Sorte Schaden,
die `node --check` nicht sehen kann, und die hier auch niemand
gesehen haette, weil die Zeile nur in der Pflege steht.
Gefunden hat es keine Eingebung, sondern das Nachsehen, WAS der
Server wirklich schickt. Die Pruefung fragt ihn jetzt selbst und
rechnet nicht gegen eine Erinnerung.
"HINGEHEN" STATT "ZUR KACHEL"
So steht es im Plan, und es ist die Sprache der Seite: Sie duzt,
begruesst mit Namen und sagt "Schoen, dass du da bist". "Kachel" ist
das Wort, mit dem wir INTERN ueber die Dinge reden; wer neu ist, hat
es noch nie gehoert.
"AKTUALISIERT AM" STEHT NUR IN DER PFLEGE -- eine Entscheidung, die
der Plan so nicht trifft. Fuer ein Mitglied beantwortet das Datum
keine Frage; DASS sich etwas geaendert hat, sagt ihm die Marke "Neu"
daneben, die von selbst wieder verschwindet. Fuer DogFather
beantwortet es eine sehr konkrete: "Habe ich die schon angefasst?"
Eine Zeile, die auf jeder der 34 Karten steht und niemanden angeht,
zieht den Blick von den drei Zeilen darueber weg. .an-karte__stand
ist deshalb klein und still -- --text-still, dieselbe Stimme wie die
Schilder "Wozu"/"Merke", deren Kontrast auf dieser Flaeche schon
geprueft ist. Keine neue, noch blassere Farbe, die niemand bemerkt,
bis sie nicht mehr lesbar ist.
AUSSERDEM: pruef-community-sicht war rot, und zwar zu Recht.
Die handgefuehrte Liste COMMUNITY_SEITEN kannte die neue
Einweisungsseite nicht und meldete "ZU VIEL: anleitung.html". Das ist
kein Mangel der Liste, sondern ihr Zweck -- sie nennt die
ueberzaehlige Seite selbst. anleitung.html ist jetzt eingetragen, mit
Begruendung, und bei willkommen.html steht dran, dass sie nur noch
weiterleitet. 13 -> 14 Seiten, gruen.
GEPRUEFT (pruef-anleitung 188 -> 196):
- der Weg-Knopf heisst "Hingehen" (1x), "Zur Kachel" nirgends (0x)
- "aktualisiert am" haengt an der Pflege (1x), nicht an jeder Karte
- .an-karte__stand ist wirklich gestaltet
- der Server schickt "geaendert" als ganzen Zeitstempel (14 von 14)
- ...und die Karte macht daraus einen lesbaren Tag (14 von 14)
- der reine Tag der Stufenkarte bleibt richtig (13.10.2026)
- Gegenprobe: was kein Datum ist, wird auch zu keinem gemacht
Die Rechenvorschrift wird dafuer AUSGEFUEHRT und nicht mit einem
Muster angesehen -- ein Muster waere eine zweite, ungenaue
Nachbildung. Und die Voraussetzung ("der Server schickt wirklich
einen Zeitstempel") wird gemessen, nicht angenommen; ohne sie waere
die Zeile darunter eine Rechnung gegen eine Erinnerung, und die
altert.
GEGENPROBE GEFAHREN: `$` wieder eingebaut -> "...und die Karte macht
daraus einen lesbaren Tag (0 von 14)", EXIT=1, und die Zahl bleibt
196. Eine Pruefung, die immer bestaetigt, bestaetigt nichts.
Dazu gruen, gezielt und nicht als Gesamtlauf:
pruef-css-klassen 4698 Klassenverwendungen, die neue Klasse ist
gestaltet; 42 Stellen unter 11,5 px wie
bisher (die neue Zeile ist 12,16 px)
pruef-community-sicht 10 Pruefungen, 0 Fehler
pruef-haus-trennung 107 geprueft, 0 Fehler -- das Agenturhaus
bleibt von der geaenderten Client-Datei
unberuehrt
pruef-deutsche-texte 12 Pruefungen, 0 Fehler
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -535,6 +535,27 @@ a.an-schritt__rumpf:hover .an-schritt__name { text-decoration: underline; }
|
||||
.an-karte__weg:hover { background: color-mix(in srgb, var(--ton, var(--akzent)) 14%, transparent); }
|
||||
.an-karte__weg:focus-visible { outline: 2px solid var(--akzent); outline-offset: 2px; }
|
||||
|
||||
/* „aktualisiert am 06.10.2026" — steht NUR in der Pflege unter dem
|
||||
Knopf (anleitung.js setzt es hinter `pflegeAn`). Deshalb darf es
|
||||
auch aussehen wie eine Randnotiz und nicht wie ein Satz der Karte:
|
||||
klein, still, kein eigener Abstand nach oben über die Lücke des
|
||||
Karten-`gap` hinaus. Wer die Karte liest, soll die drei Zeilen
|
||||
darüber lesen; wer sie pflegt, findet die Angabe genau dort, wo er
|
||||
ohnehin hinsieht — direkt beim Ändern-Knopf.
|
||||
|
||||
`--text-still` statt einer eigenen Farbe: Es ist dieselbe Stimme wie
|
||||
die Schilder „Wozu" / „Merke", und sie ist gegen `--flaeche` bereits
|
||||
geprüft. Eine neue, noch blassere Farbe hier wäre genau der
|
||||
Kontrast-Rückschritt, den niemand bemerkt, bis er nicht mehr lesbar
|
||||
ist. */
|
||||
.an-karte__stand {
|
||||
margin: 0;
|
||||
font-size: .76rem;
|
||||
line-height: 1.4;
|
||||
color: var(--text-still);
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
/* =====================================================================
|
||||
NICHT DEINS
|
||||
===================================================================== */
|
||||
|
||||
@@ -35,9 +35,25 @@
|
||||
};
|
||||
const $ = (id) => document.getElementById(id);
|
||||
/** „2026-10-13" -> „13.10.2026". Der Server schickt den Tag in der
|
||||
* sortierbaren Form; gelesen wird hier die gewohnte. */
|
||||
* sortierbaren Form; gelesen wird hier die gewohnte.
|
||||
*
|
||||
* OHNE $ AM ENDE — und das ist nachgemessen, nicht geraten. Es
|
||||
* kommen ZWEI Formen herein, und sie sehen nur am Anfang gleich aus:
|
||||
* • `r.datum` ist ein reiner Tag („2026-10-13"), der Server
|
||||
* schneidet ihn selbst zurecht (`toISOString().slice(0, 10)`).
|
||||
* • `eintrag.geaendert` ist ein ganzer Zeitstempel
|
||||
* („2026-10-06T18:22:31.123Z"), so wie `new Date().toISOString()`
|
||||
* ihn schreibt — siehe anleitung-tabellen.js und
|
||||
* workspace-anleitung.js.
|
||||
* Mit dem $ hätte die zweite Form die Prüfung nicht bestanden und
|
||||
* wäre UNVERÄNDERT durchgereicht worden: Auf der Karte stünde dann
|
||||
* wörtlich „aktualisiert am 2026-10-06T18:22:31.123Z". Kein Fehler,
|
||||
* kein Absturz — nur eine Zeile, die niemand lesen will. Genau die
|
||||
* Sorte Schaden, die ein `node --check` nicht sieht.
|
||||
* Die Uhrzeit wird bewusst weggelassen: Gefragt ist „habe ich die
|
||||
* schon angefasst?", nicht die Minute. */
|
||||
const datumKurz = (iso) => {
|
||||
const m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(String(iso || ''));
|
||||
const m = /^(\d{4})-(\d{2})-(\d{2})/.exec(String(iso || ''));
|
||||
return m ? `${m[3]}.${m[2]}.${m[1]}` : String(iso || '');
|
||||
};
|
||||
|
||||
@@ -226,12 +242,36 @@
|
||||
zeile('Merke', eintrag.merke);
|
||||
karte.append(zeilen);
|
||||
|
||||
const weg = el('a', 'an-karte__weg', 'Zur Kachel');
|
||||
/* „HINGEHEN" UND NICHT „ZUR KACHEL" (06.10.2026). So steht es im
|
||||
Bauplan, Kapitel 04 — und es ist die Sprache der Seite: Sie
|
||||
duzt, begrüßt mit Namen und sagt „Schön, dass du da bist".
|
||||
„Zur Kachel" ist das Wort, mit dem wir INTERN über die Dinge
|
||||
reden; wer neu ist, hat das Wort Kachel noch nie gehört. */
|
||||
const weg = el('a', 'an-karte__weg', 'Hingehen');
|
||||
/* MIT dem Zusatz hinter dem Fragezeichen. `bereich.html?b=live` und
|
||||
`bereich.html?b=technik` sind dieselbe Seite und verschiedene
|
||||
Kacheln; ohne den Zusatz landeten fünf Karten am selben Ort. */
|
||||
weg.href = kachel.ziel;
|
||||
karte.append(weg);
|
||||
|
||||
/* „AKTUALISIERT AM" — NUR IN DER PFLEGE (Bauplan Kapitel 04).
|
||||
|
||||
Der Plan nennt es bei der Karte. Für ein Mitglied beantwortet
|
||||
es aber keine Frage: Ob ein Text vor drei Wochen oder gestern
|
||||
geschrieben wurde, ändert nichts daran, was zu tun ist — und
|
||||
DASS sich etwas geändert hat, sagt ihm die Marke „Neu"
|
||||
daneben, die von selbst wieder verschwindet.
|
||||
|
||||
Für DogFather beantwortet es eine sehr konkrete: „Habe ich die
|
||||
schon angefasst?" Deshalb steht es dort, wo die Frage gestellt
|
||||
wird, und nirgendwo sonst. Eine Zeile, die auf jeder der 34
|
||||
Karten steht und niemanden angeht, ist genau die Sorte
|
||||
Kleingedrucktes, die den Blick von den drei Zeilen darüber
|
||||
wegzieht. */
|
||||
if (pflegeAn && eintrag.geaendert) {
|
||||
karte.append(el('p', 'an-karte__stand',
|
||||
`aktualisiert am ${datumKurz(eintrag.geaendert)}`));
|
||||
}
|
||||
return karte;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user