Entwicklung: die Auswertung je Person -- und elf Seiten ohne Farbe
Filipe: "dan perfektionierst du eine neue wo diagramme texte und so zu
jedem modi gemacht wird und diese kategorie kannst du entwicklung nenen."
1. DAS EIGENTLICHE PROBLEM WAR, DASS ES KEINE VERGANGENHEIT GAB.
`entwicklung_stand` hat den Schluessel (person, punkt, beurteiler) und
wird bei jeder Aenderung UEBERSCHRIEBEN -- dort richtig, eine Beobachtung
ueber einen Menschen soll aktuell sein. Nur: Damit existierte nichts,
woraus sich ein Verlauf zeichnen liesse. Nachgemessen: 43 Zeilen Stand,
NULL Zeilen Geschichte. Ein Diagramm ueber einen einzigen Zeitpunkt ist
kein Diagramm, sondern ein Balken.
Neu: `entwicklung_lauf` haengt jede Aenderung an, statt zu ueberschreiben.
Sie steht in workspace-entwicklung.js, bei der Tabelle, zu der sie
gehoert -- die Auswertung liest nur. Andersherum gaebe es einen Ring
zwischen zwei Modulen, und Ringe halten in JavaScript genau so lange,
bis jemand eine Konstante auf oberster Ebene benutzt.
KEIN ANLASS, NIE. Neben jedem "da hakt es" steht ein Satz, woran man es
gemerkt hat -- fuer ein Gespraech aufgeschrieben. Eine Chronik dieser
Saetze waere das Belastendste, was dieses Haus speichern kann. Die Spur
hat gar keine Spalte dafuer, und die Pruefung liest die TABELLE, nicht
die Ausgabe: Eine Spalte, die es gibt, wird eines Tages gefuellt.
Die Startaufnahme uebernimmt den heutigen Stand mit seinen ECHTEN Daten,
damit die Seite am ersten Tag nicht leer ist -- und zaehlt ausdruecklich
NICHT als Bewegung. Der Tag, an dem die Spur entstand, war kein Tag, an
dem 43 Dinge gleichzeitig passiert sind.
2. WAS GEZEIGT WIRD: BEWEGUNG, KEINE NOTE.
Keine Punktzahl, kein Prozentwert, kein Durchschnitt, keine Rangliste,
kein Vergleich zwischen zwei Menschen. Das ist die Recherche, nicht
Vorsicht: Ueberrechtfertigung (Deci), sozialer Vergleich senkt die
Leistung derer, die schlechter dastehen, Schwaechenfokus ebenso.
Stattdessen das progress principle (Amabile/Kramer, ~12 000
Tagebucheintraege): Sichtbarer Fortschritt ist der staerkste einzelne
Treiber. Deshalb Diagramm 1 "Was sich bewegt hat" -- zwei Richtungen um
eine Nulllinie, ein Massstab fuer beide. Diagramm 2 der Streifen (Punkt
x Monat), fortgeschrieben, aber nach 90 Tagen sichtbar verblasst.
Und die Texte in dieser Reihenfolge: was sich bewegt hat, was traegt,
erst danach was liegt.
Selbst gezeichnet, kein Diagrammpaket: 60 kB ueber die Leitung von
jemandem, der mit dem Handy im Stream steht -- und es braechte eigene
Farben neben die Hausfarben. Jede Zelle traegt ihr Zeichen als Text,
jeder Balken seine Zahl, darunter eine Legende: Die Farbe ist nie die
Auskunft.
Zwei Gesichter: Die Leitung sieht die Karten, ein Modi ausschliesslich
die Bewegung in der eigenen -- ohne Namen, ohne Anlass, ohne Streifen.
3. NEBENBEFUND, GROESSER ALS ERWARTET: ELF SEITEN OHNE FARBE.
Der Umbau von heute frueh heisst "Jede Seite traegt die Farbe ihrer
Kachel". Nachgemessen traf das auf 18 von 34 Seiten zu. Elf Seiten mit
echter Kachel gingen leer aus -- ausgerechnet die von Team Dogi:
befinden, bewerben, bewerbungen, entwicklung, hilfe, rechte, talente,
teamlage, teilen, treff-moderation, treff-regeln, unsere-seiten.
Der Grund: `zuSeite()` sucht nur in `Bereiche.GRUPPEN`, und dort stehen
ausschliesslich die Kacheln der Agentur. Die von Team Dogi liefert der
Server (`ich.bereiche`, `ich.bereiche_zusatz`). Auffallen konnte das
nicht -- eine Seite ohne Farbe sieht aus wie eine, die eben keine hat.
kopf.js faerbt jetzt zweimal: sofort aus GRUPPEN (Agenturseiten ohne
Flackern wie bisher), und noch einmal aus den Serverkacheln, sobald
`werZeigen` sie bringt. Nur, wenn beim ersten Mal nichts gefunden wurde.
pruef-buehne misst den Kontrast an echten Bildpunkten und kannte diese
zwoelf Seiten nicht. Jetzt stehen sie in der Liste; ihre Frist waechst
mit der Laenge, statt als feste Zahl irgendwann zu reissen. Gemessen
fuer werdegang.html: 4,83:1 am Computer, 6,22:1 am Handy.
4. TON 38 SAH FREI AUS UND WAR ES NICHT.
Erster Anlauf war Ton 38, weil 37 die hoechste Nummer in workspace.js
ist. Gezaehlt in start.css sind es 39, alle vergeben. Genau davor warnt
das Farbwerkzeug im eigenen Kopf ("Ton 22, weil er frei AUSSAH").
Dabei aufgefallen: Die zwei Kacheln von heute Nacht wurden ohne das
Werkzeug gesetzt. Ton 39 lag 0,0362 von Ton 15 entfernt -- der engste
Abstand im ganzen Haus, zwei praktisch gleiche Cyan-Toene. Filipe dazu
mehrfach: "keine die sich irgendwie aehnlich sind".
Neues Werkzeug `tools/kachel-farbe-einzeln.mjs`: zieht EINE Farbe nach,
ohne die anderen anzufassen. Das grosse Werkzeug haette alle 40 neu
gefaerbt -- jede Kachel im Haus, ungefragt. Es bricht ab, wenn es nicht
alle Toene lesen kann: Der erste Anlauf las 31 von 40, weil einstellige
Nummern mit ZWEI Leerzeichen dastehen, und rechnete froehlich weiter.
Ergebnis: kleinster Abstand 0,0362 -> 0,0840, durch Aendern von zwei
Kacheln, die es erst seit gestern Nacht gibt.
5. anruf-probe.html lud `basis.css` und `kopf.css` -- beide gibt es
nicht. Ausgerechnet dort faellt es nicht auf, weil die Seite ihre eigene
Stilangabe im Kopf hat. pruef-struktur war deshalb rot (5 Befunde) und
ist jetzt gruen.
GEMESSEN: pruef-werdegang 95/0 (neu), pruef-entwicklung 43/0,
pruef-befinden 75/0, pruef-rechtetafel 19/0, pruef-zwischenspeicher 21/0,
pruef-start-ansicht 0 Fehler, pruef-struktur 0 Fehler (vorher 5),
pruef-buehne fuer werdegang.html 0 Fehler.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -663,7 +663,37 @@
|
||||
Die Zuordnung kommt aus assets/js/bereiche.js, also aus derselben
|
||||
Liste wie die Kachel selbst. Wer dort eine Farbe ändert, ändert
|
||||
Kachel UND Seite -- sie können gar nicht auseinanderlaufen. */
|
||||
(function seiteEinfaerben() {
|
||||
/* ==== GEFUNDEN AM 19.09.2026: DIE HAELFTE DER SEITEN BEKAM NICHTS =====
|
||||
|
||||
Der Umbau von heute Nacht heisst "Jede Seite traegt die Farbe ihrer
|
||||
Kachel". Nachgemessen traf das auf 18 von 34 Seiten zu. Elf
|
||||
Seiten mit echter Kachel gingen leer aus:
|
||||
|
||||
befinden, bewerben, bewerbungen, entwicklung, hilfe, rechte,
|
||||
talente, teamlage, teilen, treff-moderation, treff-regeln,
|
||||
unsere-seiten
|
||||
|
||||
Es sind ausgerechnet die von Team Dogi -- also die, die Filipe
|
||||
taeglich benutzt.
|
||||
|
||||
DER GRUND: `B.zuSeite()` sucht nur in `Bereiche.GRUPPEN`, und dort
|
||||
stehen ausschliesslich die Kacheln der AGENTUR. Die Kacheln von
|
||||
Team Dogi und vom Treff liefert der SERVER (`ich.bereiche`,
|
||||
`ich.bereiche_zusatz`) -- die kannte diese Stelle nicht.
|
||||
|
||||
Auffallen konnte das nicht: Eine Seite ohne Farbe sieht aus wie
|
||||
eine Seite, die eben keine hat. Dieselbe Sorte Fehler wie bei
|
||||
`chat.html` am 09.09. -- im Quelltext sieht die Zeile richtig aus,
|
||||
und nur das Nachzaehlen findet sie.
|
||||
|
||||
JETZT ZWEIMAL, UND DAS IST ABSICHT:
|
||||
1. sofort beim Laden aus GRUPPEN -- die Agenturseiten haben ihre
|
||||
Farbe damit ohne ein einziges Flackern, wie bisher.
|
||||
2. noch einmal, sobald der Server gesagt hat, wer man ist. Nur
|
||||
wenn beim ersten Mal nichts gefunden wurde.
|
||||
Zweimal zeichnen verhindert `kopf.dataset.gezeichnet`.
|
||||
================================================================= */
|
||||
function seiteEinfaerben(zusatz) {
|
||||
const B = window.Bereiche;
|
||||
/* Der Kalender hat einen eigenen Kopf (.k-kopf), weil dort der
|
||||
Zeitraum die Überschrift ist. Er soll sein Zeichen trotzdem
|
||||
@@ -671,8 +701,11 @@
|
||||
einzige ohne. */
|
||||
if (!B) return;
|
||||
|
||||
const bereich = B.zuSeite(location.pathname, location.search);
|
||||
if (!bereich) return;
|
||||
/* Erst die Kacheln, die der Server geschickt hat -- sie sind die
|
||||
genauere Auskunft: Wer diese Seite oeffnen darf, hat sie auch als
|
||||
Kachel bekommen. Danach die Agenturliste aus dem Browser. */
|
||||
const bereich = ausListe(zusatz) || B.zuSeite(location.pathname, location.search);
|
||||
if (!bereich) return false;
|
||||
|
||||
/* ==== ERST DIE SEITE, DANN DIE PLAKETTE ==========================
|
||||
|
||||
@@ -721,9 +754,12 @@
|
||||
ohne ihn anzufassen. Dadurch funktioniert das auf allen dreizehn
|
||||
Seiten, ohne dreizehn HTML-Dateien zu ändern. */
|
||||
const kopf = document.querySelector('.kopf-zeile, .k-kopf');
|
||||
if (!kopf) return;
|
||||
/* `true` und nicht `false`: Ton und Buehne SIND gesetzt. Nur die
|
||||
Plakette faellt aus, weil es keinen Kopf gibt -- das ist kein
|
||||
Grund, es beim zweiten Anlauf noch einmal zu versuchen. */
|
||||
if (!kopf || kopf.dataset.gezeichnet === 'ja') return true;
|
||||
const erstes = kopf.firstElementChild;
|
||||
if (!erstes) return;
|
||||
if (!erstes) return true;
|
||||
|
||||
const plakette = document.createElement('span');
|
||||
plakette.className = 'kopf-zeichen';
|
||||
@@ -745,7 +781,43 @@
|
||||
schatten.append(B.zeichenBauen(bereich.zeichen, 'kopf-wasserzeichen__svg'));
|
||||
kopf.append(schatten);
|
||||
kopf.dataset.gezeichnet = 'ja';
|
||||
})();
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Die Kachel zu dieser Seite in einer Liste vom Server suchen.
|
||||
*
|
||||
* UEBER DAS ZIEL UND NICHT UEBER DEN NAMEN. Namen aendern sich --
|
||||
* am 19.09. hiess eine Kachel morgens noch "Entwicklung" und
|
||||
* mittags "Eure Aufgaben". Das Ziel ist die Angabe, die bleibt. */
|
||||
function ausListe(listen) {
|
||||
if (!Array.isArray(listen) || !listen.length) return null;
|
||||
const datei = String(location.pathname).split('/').pop() || 'start.html';
|
||||
const gesucht = datei + (location.search || '');
|
||||
let treffer = null;
|
||||
for (const k of listen) {
|
||||
if (!k || !k.ziel) continue;
|
||||
if (k.ziel === gesucht) return k;
|
||||
if (!treffer && String(k.ziel).split('?')[0] === datei) treffer = k;
|
||||
}
|
||||
return treffer;
|
||||
}
|
||||
|
||||
const schonEingefaerbt = seiteEinfaerben(null);
|
||||
|
||||
/* Der zweite Anlauf. `werZeigen` ruft jede Seite auf, sobald der
|
||||
Server geantwortet hat -- es ist die einzige Stelle, an der die
|
||||
Kacheln von Team Dogi im Browser ankommen. */
|
||||
if (!schonEingefaerbt) {
|
||||
const vorherWer = window.werZeigen;
|
||||
window.werZeigen = function (ich) {
|
||||
try { if (typeof vorherWer === 'function') vorherWer.apply(this, arguments); }
|
||||
finally {
|
||||
seiteEinfaerben([
|
||||
...(ich?.bereiche || []), ...(ich?.bereiche_zusatz || []),
|
||||
]);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/* ---------- Der Schriftzug oben links -----------------------------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user