Nach dem Umbau von heute Nachmittag habe ich nachgesehen, WER
tagAusZelle() sonst noch ruft -- und genau dort die naechste Luecke
gefunden, bevor sie jemanden getroffen hat.
DIE FUNKTION HAT SEIT HEUTE DREI AUSGAENGE (Tag, Zeitraum, Grund).
Gekannt hat den dritten nur der Backstage-Weg. Im Einzel-Import stand
weiterhin `gelesen.tag` -- bei einem Zeitraum `undefined`:
VORSCHAU: `undefined > heute` ist false, die Zeile faellt durch
und landet mit `tag: undefined` in der Liste.
SCHREIBWEG: `if (!tag)` greift, die Zeile wird still uebersprungen.
Die Vorschau haette also eine Zeile versprochen, die danach nirgends
steht. Zwei Aussagen ueber dieselbe Datei, die einander widersprechen,
und beide sehen fuer sich plausibel aus -- das ist der Unterschied, den
niemand bemerkt.
Das ist an diesem Tag die FUENFTE Wiederholung derselben Sache: eine
Regel, mehrere Aufrufer, und einer kennt sie nicht. Ein dritter Ausgang
taugt nur, wenn ihn ALLE Aufrufer kennen.
Jetzt legt auch der Einzel-Import einen Zeitraum in leistung_zeitraum
ab -- dieselbe Tabelle, dieselbe Regel, dieselbe Anzeige. Und die
Dauer-Einheit gilt dort ebenfalls; sie fehlte in der Vorschau noch.
DIE MELDUNG SAGT JETZT, WAS ANGEKOMMEN IST: "1 Zeitraum uebernommen"
statt "1 Tage uebernommen". Bei einer Backstage-Ausgabe ueber zwei
Wochen haette man sie sonst in der Tagesliste gesucht und nicht
gefunden.
pruef-backstage-import 106 -> 118. Die Pruefung, auf die es ankommt,
vergleicht VORSCHAU UND ERGEBNIS: Was die Vorschau verspricht, muss
danach dastehen -- genau die Aussage, die vorher falsch gewesen waere.
Dazu, dass in der Vorschau die Spanne steht und kein leerer Tag, und
die Gegenprobe, dass eine echte Tagesdatei weiterhin als Tage durchgeht.
ZWEI EIGENE FEHLER DABEI: Ich habe `.length` auf eine Zahl angewendet
(`fehlerhaft` ist eine Anzahl, keine Liste) -- immer `undefined`, immer
rot. Und zum zweiten Mal heute den Absolutwert gemessen, wo die
Veraenderung gehoert: Lumi hatte aus einem frueheren Teil der Pruefung
schon eine Tageszeile in derselben Spanne.
Co-Authored-By: Claude Opus 5 <[email protected]>
120 lines
5.2 KiB
HTML
120 lines
5.2 KiB
HTML
<!doctype html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
||
<title>Team · Spicy & Dogi</title>
|
||
<meta name="robots" content="noindex, nofollow" />
|
||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||
<meta name="theme-color" content="#06090f" />
|
||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609141634" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609141634" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202609141634" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202609141634" />
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609141634" />
|
||
<link rel="stylesheet" href="assets/css/team.css?v=202609141634" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202609141634" />
|
||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||
<link rel="stylesheet" href="assets/css/haus.css?v=202609141634" />
|
||
</head>
|
||
|
||
<body class="start">
|
||
|
||
<div class="schleier" aria-hidden="true"></div>
|
||
|
||
<header class="kopfleiste">
|
||
<button type="button" class="zurueck-knopf" id="zurueck" hidden>
|
||
<svg class="zurueck-knopf__pfeil" viewBox="0 0 24 24" aria-hidden="true">
|
||
<path d="M14.5 5.5 8 12l6.5 6.5" />
|
||
</svg>
|
||
<span class="zurueck-knopf__text">Zurück</span>
|
||
</button>
|
||
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Creator Workspace</a> · Team</span></p>
|
||
<div class="kopfleiste__rechts">
|
||
<span class="wer" id="wer">…</span>
|
||
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
|
||
</div>
|
||
</header>
|
||
|
||
<main class="inhalt inhalt--breit">
|
||
|
||
<!-- ==== DER KOPF ================================================
|
||
Er sagt in einem Satz, was diese Seite ist UND was sie nicht
|
||
ist. Der zweite Teil ist der wichtigere: Eine Seite mit Zahlen
|
||
über Kollegen wird sonst als Überwachung gelesen -- und dann
|
||
arbeitet niemand mehr offen damit.
|
||
|
||
Aus der Recherche (Fachliteratur zu Arbeitslast-Dashboards):
|
||
Der Zweck ist, Stellen zu finden, an denen Unterstützung fehlt.
|
||
Wer das nicht dazuschreibt, baut ein Kontrollwerkzeug, auch wenn
|
||
er es nicht wollte. -->
|
||
<!-- ==== EINE ECHTE KACHEL, IM TON DER KATEGORIE (09.09.2026) ====
|
||
|
||
Filipe: "perfektionnir das in einer kachel in der farbe von der
|
||
kategorie bitte."
|
||
|
||
`t-kachel` steht in der Modulliste von module.css und bekommt
|
||
damit dieselbe Form wie jede Kachel im Haus: gefraeste Fase oben
|
||
links, Kantenlicht, Eckwinkel, Raster. Die FARBE kommt aus
|
||
`--ton` -- derselben Variablen, aus der die Kachel auf der
|
||
Startseite ihren Ton zieht, und dort ist es Ton 22 (#ffd166).
|
||
Beide lesen dieselbe Zahl; die Kachel auf der Startseite und die
|
||
Ueberschrift hier koennen also nicht auseinanderlaufen. -->
|
||
<section class="t-kachel" data-ton="22">
|
||
<div class="t-kopf">
|
||
<div class="t-kopf__text">
|
||
<p class="feldschild">Rund um das Team</p>
|
||
<h1 class="t-kopf__titel">Manager & Scouts</h1>
|
||
<p class="t-kopf__unter" id="kopf-unter">
|
||
Wer betreut wen, wo staut sich etwas, wo fehlt jemand.
|
||
</p>
|
||
</div>
|
||
<p class="t-kopf__grenze">
|
||
Termine, Chats und Dateien kommen hier nicht vor – weder Inhalte
|
||
noch Zahlen. Das ist eine <strong>Arbeitslage</strong>, keine Überwachung.
|
||
</p>
|
||
</div>
|
||
</section>
|
||
|
||
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
|
||
|
||
<!-- ==== DIE LÜCKEN ZUERST ======================================
|
||
Eine Kennzahl sagt, wie es läuft. Eine Lücke sagt, wo etwas
|
||
fehlt -- und nur das Zweite kann man heute abstellen. Deshalb
|
||
steht sie oben und nicht unter den Tabellen. -->
|
||
<section class="t-luecken" id="luecken" hidden></section>
|
||
|
||
<!-- ==== DIE LAGE IN ZAHLEN ===================================== -->
|
||
<section class="t-lage" id="lage" hidden></section>
|
||
|
||
<!-- ==== DIE LEUTE ==============================================
|
||
Jede Person einzeln, nicht als Durchschnitt: Zwei Scouts mit je
|
||
sechs Creators und einer mit achtzehn ergeben einen Schnitt von
|
||
zehn -- und der sagt nichts über den, bei dem es klemmt. -->
|
||
<section class="t-gruppe" id="manager-block" hidden>
|
||
<h2 class="feldschild">Manager</h2>
|
||
<div class="t-liste" id="manager-liste"></div>
|
||
</section>
|
||
|
||
<section class="t-gruppe" id="scout-block" hidden>
|
||
<h2 class="feldschild">Scouts</h2>
|
||
<div class="t-liste" id="scout-liste"></div>
|
||
</section>
|
||
|
||
<p class="leise" id="laedt">Die Arbeitslage wird geladen …</p>
|
||
|
||
</main>
|
||
|
||
<script src="assets/js/wahl.js?v=202609141634" defer></script>
|
||
<script src="assets/js/bereiche.js?v=202609141634" defer></script>
|
||
<script src="assets/js/kopf.js?v=202609141634" defer></script>
|
||
<script src="assets/js/glocke.js?v=202609141634" defer></script>
|
||
<script src="assets/js/team.js?v=202609141634" defer></script>
|
||
</body>
|
||
</html>
|