Filipe: „ich hätte das gerne oben also nicht in dieser kachel sondern über der kachel wo die videos laufen werden und das soll extrem perfektioniert werden." WARUM DAS MEHR IST ALS EIN UMHÄNGEN Die Register standen INNERHALB des einklappbaren Teils. Wer die Regie zuklappte, um mehr Bild zu haben, hatte sie nicht mehr — und genau dann braucht man sie. Oben ändert sich ihre Aufgabe: aus dem Inhaltsverzeichnis einer Schublade wird eine Steuerleiste über der Sendung. Daraus folgen vier Dinge, die vorher nicht nötig waren: 1. EIN REGISTER MACHT DIE ZUGEKLAPPTE REGIE AUF. Vorher wechselte nur der Reiter, die Tafel lag im zugeklappten Teil — sichtbar passierte nichts. Nur auf, nie zu: Zugemacht wird mit dem Griff. Ein Knopf, der beim zweiten Druck das Gegenteil tut, versteckt irgendwann etwas, das jemand gerade liest. 2. SIE BRICHT NICHT UM, SIE ROLLT. Sieben Register in zwei Zeilen kosten am oberen Rand rund 90 px — und zwar dem Video. Gemessen: eine Zeile auf 1440 px wie auf 390 px, dort mit Einrasten und weichen Rändern als Auskunft, dass es weitergeht. 3. SIE LÖST EIN, WAS `role="tablist"` VERSPRICHT. Pfeiltasten wandern, Pos1/Ende springen, genau ein Register liegt in der Tabulatorfolge. Steht die Rolle im Markup und tut das Programm es nicht, sagt ein Vorleser etwas an, was nicht stimmt — schlimmer als keine Rolle. Gemessen wird das gedrückt, nicht gelesen: fünf Tastendrücke, und Fokus, Auswahl und offene Tafel müssen jedes Mal dasselbe sagen. 4. EINE GLEITENDE MARKE zeigt, wo man steht — Glas mit Lichtkante, darunter ein roter Streifen zur offenen Tafel. Ist die Regie zugeklappt, wird er leise: Der Streifen führt dann nirgendwohin. Dazu ein Schild „Regie" links (am Handy weg), damit die sieben Wörter am oberen Rand nicht wie eine zweite Navigation aussehen. DER FEHLER, DER MICH ZWEI ANLÄUFE GEKOSTET HAT Die Leiste war im Browser 1 px hoch, ihre Register standen 55 px hoch daneben und ragten über das Video. Ursache: 900 Zeilen weiter unten stand eine ZWEITE `grid-template-rows` für `.saal` (aus der Zeit, als der Saal zwei Zeilen hatte). Sie stand später und gewann — die Leiste landete in der `1fr`-Zeile und bekam null Pixel. Und fast hätte ich das Falsche repariert: Beim Durchprobieren habe ich `style.gridTemplateRows` gesetzt — ein Stilattribut schlägt jede Regel im Stilblatt. Damit „funktionierten" `auto` und `min-content` gleich gut, weil beide die zweite Regel aushebelten, und es sah nach einem Unterschied zwischen den beiden aus. Erst nach dem Entfernen der Doppelung hat die Gegenprobe gezeigt: `auto` tut es genauso. Eine Probe, die mehr ändert als das, wonach man sucht, beantwortet eine andere Frage. Es gibt jetzt eine Prüfung, dass genau EINE Regel die Zeilen des Saals bestimmt. ZWEI WEITERE FUNDE AUS DER MESSUNG Am Handy blieben bei offener Regie 131 px für das Bild — ein Streifen. Mein erster Versuch (62dvh → 52dvh) machte es auf 75 px SCHLECHTER: Die Ursache lag woanders, die Leiste des Pults bricht dort in vier Zeilen um und ist rund 200 px hoch, wovon ein Anteil der Fensterhöhe nichts wissen kann. Mit `min(52dvh, 19rem)` sind es 210 px. Und die Spendenkarte wurde als „steht aus dem Bild heraus" gemeldet: 413 statt 430 px, links −1. 413 ist genau das 0,96-fache — die Messung hatte die Karte im Ausblenden erwischt. Sie wartet jetzt auf `data-da="ja"` und misst nur, was ganz da ist. GEPRUEFT pruef-reaktion 280 (vorher 260), 0 Fehler — Abschnitt 18 neu. mess-reaktion: Rückgabewert 0, kein ACHTUNG; misst die Leiste jetzt auf 1440 und auf 390 px, samt Tastatur und Aufklappen. Dazu grün: handy, buehne, struktur, css-klassen, tippziele. Co-Authored-By: Claude Opus 5 <[email protected]>
165 lines
7.2 KiB
HTML
165 lines
7.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>Dashboard · Spicy & Dogi</title>
|
||
<meta name="robots" content="noindex, nofollow" />
|
||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||
<!-- Die Farbe der Fensterleiste, wenn der Workspace als App laeuft.
|
||
Stand auf #0674b9 (kraeftiges Blau) und stach damit als einziger
|
||
heller Balken ueber einer durchweg dunklen Seite. Jetzt derselbe
|
||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||
eine Flaeche sind statt zweier. -->
|
||
<meta name="theme-color" content="#06090f" />
|
||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281412" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281412" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281412" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202609281412" />
|
||
<!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der
|
||
Dialog "Creator anlegen". -->
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281412" />
|
||
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609281412" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202609281412" />
|
||
<!-- 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=202609281412" />
|
||
</head>
|
||
|
||
<body class="start">
|
||
|
||
<!-- Der Schleier ueber der Buehne (Casper und HasiDog in den unteren
|
||
Ecken, siehe start.css). Ein eigenes Element statt eines dritten
|
||
Pseudo-Elements -- body hat nur ::before und ::after. -->
|
||
<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> · Dashboard</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">
|
||
|
||
<section class="kopf-zeile">
|
||
<div>
|
||
<p class="marke">Alles zentral</p>
|
||
<h1 class="titel" id="titel">Dashboard</h1>
|
||
<p class="unterzeile" id="unterzeile">
|
||
Eine Karte je Creator – mit einem Blick sehen, wo es hakt und wo es läuft.
|
||
</p>
|
||
</div>
|
||
<!-- Der Knopf steht HIER und nicht in der Personenverwaltung
|
||
(07.09.2026). Ein Manager kommt dort gar nicht hinein, und er
|
||
soll es auch nicht -- dahinter liegen Rollen, Codes, Sperren und
|
||
das Protokoll. Hier dagegen sieht er ohnehin seine Creator; der
|
||
neue erscheint eine Zeile weiter unten. Das Skript blendet den
|
||
Knopf für Scouts und Creator aus, der Server lässt sie ohnehin
|
||
nicht durch. -->
|
||
<button type="button" class="knopf knopf--klein" id="creator-neu" hidden>Creator anlegen</button>
|
||
</section>
|
||
|
||
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
|
||
|
||
<!-- Creator anlegen. Derselbe Dialog-Aufbau wie überall sonst. -->
|
||
<dialog class="dialog" id="creator-dialog">
|
||
<form method="dialog" class="neu neu--blank" id="creator-form">
|
||
<h2 class="dialog__titel">Creator anlegen</h2>
|
||
<p class="dialog__unter">
|
||
Der Zugangscode erscheint genau einmal – danach ist er weg und
|
||
kann nur neu gesetzt werden.
|
||
</p>
|
||
|
||
<div class="neu__zeile">
|
||
<label class="feld-schild" for="cn-name">Name</label>
|
||
<input id="cn-name" maxlength="60" required autocomplete="off" />
|
||
</div>
|
||
|
||
<div class="neu__zeile" id="cn-scout-zeile" hidden>
|
||
<label class="feld-schild" for="cn-scout">Betreuung</label>
|
||
<select id="cn-scout"></select>
|
||
<p class="feld-hinweis">
|
||
Ohne Auswahl betreust du ihn selbst. Zur Auswahl stehen nur
|
||
deine eigenen Scouts.
|
||
</p>
|
||
</div>
|
||
|
||
<!-- Der Code. Steht erst nach dem Anlegen da und wird nie
|
||
nachgeladen -- die Seite ist die einzige Stelle, an der er je
|
||
zu sehen ist. -->
|
||
<div class="neu__zeile" id="cn-code-zeile" hidden>
|
||
<p class="feld-schild">Zugangscode für <span id="cn-code-name"></span></p>
|
||
<p class="code-anzeige" id="cn-code"></p>
|
||
<p class="feld-hinweis">
|
||
Jetzt weitergeben. Nach dem Schließen ist er nicht mehr abrufbar.
|
||
</p>
|
||
</div>
|
||
|
||
<p class="fehler" id="cn-fehler" role="alert" aria-live="polite"></p>
|
||
|
||
<div class="dialog__knoepfe">
|
||
<button type="submit" class="knopf knopf--klein" id="cn-speichern">Anlegen</button>
|
||
<button type="button" class="abmelden" id="cn-zu">Schließen</button>
|
||
</div>
|
||
</form>
|
||
</dialog>
|
||
|
||
<!-- FRÜHWARNUNG (06.09.2026).
|
||
|
||
Steht GANZ OBEN, noch vor den Summen. Die Summen beantworten "wie
|
||
steht es insgesamt", die Karten "wie steht es bei jedem" – aber
|
||
die Frage, mit der ein Betreuer morgens ankommt, ist eine dritte:
|
||
"wo muss ich HEUTE hin?" Sie stand bis jetzt nirgends.
|
||
|
||
Bewusst OHNE Punktzahl. Ein Wert wie "Abwanderungsrisiko 73"
|
||
klingt nach Wissenschaft und ist eine Behauptung: Man kann ihn
|
||
nicht prüfen, nicht widersprechen und nicht erklären. Hier stehen
|
||
stattdessen die einzelnen Beobachtungen im Klartext, jede mit
|
||
ihrem Beleg – dann entscheidet ein Mensch.
|
||
|
||
Ein Creator sieht diesen Block nie (der Server liefert ihm gar
|
||
keine Daten). Zu lesen, dass ein System einen für gefährdet hält,
|
||
ist keine Mitteilung an die betroffene Person. -->
|
||
<section class="warnblock" id="fruehwarnung" hidden aria-labelledby="warn-titel">
|
||
<div class="klapp-kopf">
|
||
<h2 class="feldschild" id="warn-titel">Wo ich diese Woche nachfassen würde</h2>
|
||
</div>
|
||
<div class="warnliste" id="warnliste"></div>
|
||
</section>
|
||
|
||
<!-- Summen über alle sichtbaren Creator. Steht oben, weil die Frage
|
||
"wie steht es insgesamt" vor der Frage "bei wem" kommt. -->
|
||
<section class="summen" id="summen" hidden></section>
|
||
|
||
<div id="liste" aria-busy="true"><p class="leise">Übersicht wird geladen …</p></div>
|
||
|
||
<p class="stand" id="stand" hidden></p>
|
||
|
||
</main>
|
||
|
||
<script src="assets/js/meldung.js?v=202609281412" defer></script>
|
||
<script src="assets/js/nachfrage.js?v=202609281412" defer></script>
|
||
|
||
|
||
<script src="assets/js/bereiche.js?v=202609281412" defer></script>
|
||
|
||
<script src="assets/js/wahl.js?v=202609281412" defer></script>
|
||
<script src="assets/js/installieren.js?v=202609281412" defer></script>
|
||
<script src="assets/js/kopf.js?v=202609281412" defer></script>
|
||
<script src="assets/js/glocke.js?v=202609281412" defer></script>
|
||
<script src="assets/js/uebersicht.js?v=202609281412" defer></script>
|
||
</body>
|
||
</html>
|