Filipe: "ich will dass alles von der excel datei genommen wird.
perfektionnier das, aber wenn ich dir runter lade soll alles notiert
und angezeigt werden." Dazu eine echte Ausgabe als Vorlage.
DER SCHWERSTE FUND STECKTE VOR DEN DATEN, NICHT IN IHNEN.
Seine Ausgabe "Creator_innendaten" hat DREI Spalten, die nach Person
aussehen: "Creator*in-ID", "Creator*innen-Anmeldename" und "Agent".
`personSpaltenRaten` nahm die erste mit dem Wort "creator" darin --
die ID. Danach wurde nach einem Creator namens "700001" gesucht.
Nachgemessen an seiner echten Kopfzeile: handle = KEINE, name =
"Creator*in-ID". Diese Datei haette KEINE EINZIGE Zeile zugeordnet,
mit einem Hinweis ("steht bei keinem Creator im Feld TikTok"), der in
die voellig falsche Richtung zeigt.
Jetzt ist "Anmeldename" der Handle, eine Kennnummer ist fuer beide
Spalten ausgeschlossen, und "creator" allein reicht nicht mehr als
Namensspalte -- sonst haette weiter hinten "Neue*r LIVE-Creator*innen"
(Wert: "Nein") die Stelle uebernommen. An fuenf Kopfzeilen gemessen.
UND DANN: NICHTS FAELLT MEHR WEG.
41 Spalten in der Datei, acht werden gedeutet. Die restlichen 33 --
letzter Monat, fuenf Prozentwerte, Matches, Multi-Gast-LIVEs, Fanclub,
Graduierungs- und Stufenstatus -- wurden lautlos weggeworfen.
KEINE 33 NEUEN SPALTEN, sondern eine Zeile je Spalte mit dem NAMEN als
Schluessel. Eine abgeschriebene Spaltenliste hat in diesem Haus schon
zweimal Daten gekostet und waere beim naechsten Backstage-Update
falsch. Gegenprobe in der Pruefung: eine erfundene Spalte
("Sternenstaub pro Woche") kommt genauso durch -- es wird also keine
Liste gepflegt, die Datei entscheidet.
An SEINER echten Datei gemessen, ohne sie irgendwo hineinzuschreiben:
40 von 41 Spalten gespeichert (die 41. ist leer), Zeitraum 01.09.-
13.09. erkannt, 32 als Zahl, 8 als Text.
UND EIN MESSFEHLER, DER LEHRREICH IST: Meine erste Pruefung meldete
"zugeklappt ist die Liste 141 px hoch", im Bildschirmfoto war dort
nichts. An einem Miniaturfall nachgemessen: getBoundingClientRect,
offsetHeight, offsetParent und getClientRects liefern bei einem
<details> in BEIDEN Zustaenden identische Werte -- Chromium verbirgt
den Inhalt mit content-visibility:hidden, und das behaelt die letzte
Ausmessung. Nur checkVisibility() kann es unterscheiden. Die Messung
log, nicht die Seite.
pruef-backstage-import 160 (war 133), pruef-xlsx 75,
pruef-leistung-optik 59, pruef-leistung, pruef-css-klassen und
pruef-auskunft (46, DSGVO -- die neue Tabelle ist automatisch dabei,
weil die Auskunft ihre Liste aus PRAGMA foreign_key_list ableitet):
alle gruen.
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=202609160146" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609160146" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202609160146" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202609160146" />
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609160146" />
|
||
<link rel="stylesheet" href="assets/css/team.css?v=202609160146" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202609160146" />
|
||
<!-- 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=202609160146" />
|
||
</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=202609160146" defer></script>
|
||
<script src="assets/js/bereiche.js?v=202609160146" defer></script>
|
||
<script src="assets/js/kopf.js?v=202609160146" defer></script>
|
||
<script src="assets/js/glocke.js?v=202609160146" defer></script>
|
||
<script src="assets/js/team.js?v=202609160146" defer></script>
|
||
</body>
|
||
</html>
|