Files
dogfather-universe/workspace/steckbrief.html
T
DogFatherGitandClaude Opus 5 807d7d4a1c Das Foyer: eine Seite vor dem Saal, mit Plan, Eintritt und Vorschlägen
Filipe: „diese kachel soll nicht mehr geschlossen sein, ABER wenn man
drauf drückt geht zuerst eine seite auf mit reihen/kategorien. links
eine reihe wo die nächsten geplanten videos schon bereit stehen. wan
und umd wie viel uhr … und das soll geschlossen sein außer für vanvan
und dogfather. in der mitte sollen die leute dan wenn eine sendung
läuft drauf drücken können und der sendung beitreten. auch bei der
vorschau schon und dan rechts will ich die letzte reihe/kategorie, da
sollen die leute alle mir videos anraten können … und nur ich und
vanvan sehen sie."

Haus: Team Dogi (crew.dogfather-universe.com). Die Agentur ist nicht
berührt -- pruef-haus-trennung 107/0, pruef-workspace-seiten 37/0.

WARUM EINE EIGENE SEITE UND KEIN VIERTER ZUSTAND DES SAALS

Der Saal meldet jeden an, der ihn öffnet („dabei"), baut Verbindungen
auf und hält den Ereignisstrom offen. Das ist richtig für jemanden,
der zusieht -- und falsch für jemanden, der nur nachsehen will, ob
heute Abend etwas läuft. Wäre das Foyer der vierte Zustand derselben
Seite, zählte jeder Blick als Zuschauer, und die Zahl im Regiepult
sähe nach Publikum aus, wo niemand zusieht.

Im Foyer wird nur gelesen: Stand holen, zeichnen, alle 20 Sekunden
nachfragen -- und nicht, solange der Reiter im Hintergrund liegt. Kein
Ereignisstrom: Der hielte eine Verbindung offen, und manche Browser
geben je Adresse nur sechs her; im Saal wird jede davon gebraucht.

DREI REIHEN

  LINKS   die Warteschlange, nach TERMIN sortiert statt nach Platz.
          Was keinen hat, steht unten; was vorbei ist, bekommt
          „· überfällig". Nur admin und rechte Hand -- und für alle
          anderen steht sie gar nicht erst da, statt leer oder
          gesperrt zu sein. Ein Kasten mit Schloss erzählt, dass es
          etwas zu sehen gäbe. Entschieden wird das am Server; die
          Seite fragt nicht nach der Rolle, sondern danach, ob die
          Auskunft gekommen ist.
  MITTE   Lampe (Geschlossen / Gleich / Auf Sendung), Vorschaubild,
          Titel, Satz -- und der Knopf, der NUR dasteht, wenn er auch
          hineinführt. Er ist ein Link und kein Button: Wer ihn mit
          der mittleren Maustaste antippt, bekommt einen neuen Reiter.
  RECHTS  Video anraten. Jeder darf schicken, niemand sieht fremde,
          jeder sieht seine eigenen mit Stand. Vier Sperren, und jede
          beantwortet etwas anderes: zu schnell (45 s), zu viele offen
          (5 je Person), schon angeraten, steht schon bereit.

Am Telefon steht die MITTE oben. Dort ist „links" nur noch „vor allem
anderen", und das wäre die falsche Reihenfolge.

WAS SONST NOCH DAZUGEHÖRT

* Jede Zeile der Warteschlange im Saal hat jetzt ein Terminfeld.
* Die Kachel sagt nicht mehr „geschlossen" -- das Foyer ist immer
  offen. „gleich" und „● live" bleiben: Sie sagen etwas, das man ohne
  sie nicht weiß.
* reaktion.html steht in OHNE_KACHEL_UEBERALL. Die erlaubten Seiten
  werden aus den Kachelzielen abgeleitet; als die Kachel aufs Foyer
  zeigte, war der Saal plötzlich von keiner mehr genannt und
  antwortete mit einer Umleitung.

DREI DOPPELTE ANTWORTEN BESEITIGT

* „Wie viele Vorschläge darf einer offen haben" stand VIERMAL:
  dreimal als `je_person_max || 5` und einmal als Wort „fünf" im Satz
  (plus ein fünftes Mal in meldung.js). Kommt jetzt vom Server.
* `maxlength="200"` im Formular neben VORSCHLAG_NOTIZ_MAX im Server.
  Das Feld lernt die Grenze von der Auskunft.
* Die drei Foyer-Tafeln hatten eine eigene Fläche (Weiß mit 4,5 %) und
  eine eigene Form. Beides gibt es im Haus längst: Material in
  start.css (45 Klassen, gemessen), Form in module.css. Die eigene
  Fläche war dazu fast durchsichtig -- über einem hellen
  Hintergrundbild stand der Text ohne deckenden Grund. Gefunden hat
  das nicht eine Prüfung, sondern das Bildschirmfoto.

EINE LÜCKE IN DER PRÜFUNG GESCHLOSSEN

In module.css steht dieselbe 48er-Klassenliste ACHTMAL. Sieben trugen
die Marke MODULLISTE und wurden verglichen; die achte -- die Umrandung
beim Tabben (:focus-visible) -- nicht. Sie war damit die Einzige, die
still hätte abweichen können, ausgerechnet bei der Regel, die nur
sieht, wer mit der Tastatur bedient. pruef-css-klassen erwartet jetzt
acht. Eine steigende Prüfzahl, und sie ist begründet.

UND EINER, DEN KEIN WERKZEUG FINDEN KANN

Der Satz oben lautete „Links steht, was ansteht; rechts kannst du
etwas anraten." Für die Community gibt es „links" gar nicht, und am
Telefon stehen die Reihen untereinander. Eine Richtung im Text ist
eine Aussage über das Aussehen -- und das ändert sich mit dem
Bildschirm und mit der Rolle. Jetzt steht dort, WAS geht, nicht WO.

GEMESSEN

  mess-foyer (neu)        70 Messungen, 0 Fehler, 9 Bildschirmfotos
  pruef-reaktion          538, 0 Fehler (vorher 478)
  pruef-handy-teamdogi    263 Seitenaufrufe, 0 Befunde (vorher 244)
  pruef-sackgassen        14, 0 Fehler
  pruef-crew-adresse      173, 0 Fehler
  pruef-haus-trennung     107, 0 Fehler
  pruef-struktur          102, 0 Fehler
  pruef-neue-seiten       109, 0 Fehler
  pruef-portnummern        41, 0 Fehler
  pruef-haus-seiten        38, 0 Fehler
  pruef-workspace-seiten   37, 0 Fehler
  pruef-breiten           45 Seiten auf fünf Breiten, 0 beanstandet
  pruef-community-sicht    10, 0 Fehler
  pruef-deutsche-texte     12, 0 Fehler
  pruef-css-klassen       grün

mess-foyer klickt den ganzen Weg durch: Ein Gast schickt ein Video,
DogFather sieht es mit Namen, nimmt es, und es muss links im Plan
stehen. Zum Schluss macht es sechs seiner Messungen absichtlich kaputt
und prüft, dass sie das merken.

NICHT BEHOBEN, WEIL NICHT MEINS: pruef-meldungen ist rot (28
Kennungen ohne Satz, 3 Rohanzeigen) -- gemessen im worktree auf dem
letzten Commit schon vorher, Zeichen für Zeichen dieselbe Liste. Die
Dateien gehören überwiegend der Agentur; das gehört in einen eigenen
Durchgang.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-10-08 11:02:54 +02:00

166 lines
7.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<title>Mein Steckbrief · 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=202610081102" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610081102" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610081102" />
<link rel="stylesheet" href="assets/css/start.css?v=202610081102" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610081102" />
<link rel="stylesheet" href="assets/css/profil.css?v=202610081102" />
<link rel="stylesheet" href="assets/css/module.css?v=202610081102" />
<!-- 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=202610081102" />
</head>
<body class="start" data-buehne="halle">
<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&nbsp;Workspace</a> · Mein&nbsp;Steckbrief</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">
<section class="kopf-zeile">
<div>
<p class="marke">Über mich</p>
<h1 class="titel">Mein Steckbrief</h1>
<p class="unterzeile">
Das hier gehört dir. Dein Bild steht danach in der Kopfleiste, in der
Personenliste und überall dort, wo dein Name auftaucht.
</p>
</div>
</section>
<!-- Der eigene Steckbrief. Steht GANZ OBEN und über allem anderen: Er
gehört jedem im Workspace, nicht nur Creatorn – ein Scout, ein
Manager und DogFather haben ihn genauso. Die Creator-Akte darunter
ist etwas anderes (die führen die Betreuer). -->
<section class="steckbrief" id="steckbrief" hidden>
<div class="steckbrief__kopf">
<div class="steckbrief__bildfeld">
<span class="steckbrief__bild" id="sb-bild" aria-hidden="true"></span>
<div class="steckbrief__bildknoepfe">
<label class="schritt" for="sb-datei">Bild wählen</label>
<input type="file" id="sb-datei" accept="image/jpeg,image/png,image/webp" hidden />
<button type="button" class="schritt" id="sb-bild-weg" hidden>entfernen</button>
</div>
</div>
<div class="steckbrief__text">
<p class="feldschild">Mein Profil</p>
<h2 class="steckbrief__name" id="sb-name">…</h2>
<p class="steckbrief__rolle" id="sb-rolle"></p>
<label class="feld-schild" for="sb-ueber">Ein Satz über dich</label>
<textarea id="sb-ueber" rows="2" maxlength="400"
placeholder="z. B. Ich streame Gaming und Just Chatting, meistens abends."></textarea>
<p class="feldschild steckbrief__schild">Meine Kanäle</p>
<!-- Bewusst nur der öffentliche Name, kein Login: siehe die
Begründung im Kopf von server/workspace-steckbrief.js. -->
<div class="steckbrief__kanaele" id="sb-kanaele"></div>
<p class="fehler" id="sb-fehler" role="alert" aria-live="polite"></p>
<div class="steckbrief__fuss">
<button type="button" class="knopf knopf--klein" id="sb-speichern">Profil speichern</button>
<span class="steckbrief__stand" id="sb-stand" role="status" aria-live="polite"></span>
</div>
</div>
</div>
</section>
<!-- DAS TEAM. Wunsch vom 01.09.2026: "ich will, dass wir Manager,
Scouts, DogFather auch die Fotos, Namen und so alles sehen, alles
was die in ihrem Profil eintragen."
Bis dahin war der Steckbrief eine Einbahnstraße: Jeder pflegte
seinen, und niemand bekam ihn je zu Gesicht. Die Schnittstelle
dafür lag fertig da (GET /workspace/api/steckbrief) und wurde von
keiner einzigen Seite aufgerufen.
Wer wen sieht, entscheidet weiterhin der Server. -->
<!-- EIGENE KLASSEN, nicht die vorhandenen .block__* : Die stehen in
automation.css und wissen.css, und diese Seite lädt beide nicht.
Genau so sind hier schon zweimal Stile ins Leere gelaufen -- der
Aufbau sah richtig aus, auf dem Bildschirm stand nacktes HTML.
Alles zu .team-* steht in start.css, die jede Seite lädt. -->
<section class="team-block" id="team-block" hidden>
<div class="team-block__kopf">
<div>
<p class="feldschild">Das Team</p>
<!-- „Wer hier dabei ist" statt „Wer hier mitarbeitet" (19.09.2026).
Seit die Community einen Steckbrief hat, liest diesen Titel
auch jemand, der NICHT mitarbeitet — er schaut zu. Das Wort
hätte ihm gesagt, dass er hier eigentlich nicht gemeint ist. -->
<h2 class="team-block__titel">Wer hier dabei ist</h2>
</div>
<span class="team-block__zahl" id="team-zahl"></span>
</div>
<p class="team-block__text" id="team-text"></p>
<div class="team-gitter" id="team"></div>
</section>
<!-- ==== WAS IST ÜBER MICH GESPEICHERT? (15.09.2026) ==============
Art. 15 DSGVO. Kein Antrag, kein Formular, kein Warten – ein
Knopf. Er steht auf den beiden Seiten, die einem Menschen selbst
gehören: dem Steckbrief und den Rudel-Regeln. Die Community hat
keinen Steckbrief; ohne die zweite Stelle hätte ausgerechnet die
Gruppe mit den wenigsten Rechten auch diesen nicht. -->
<section class="meine-daten">
<div class="meine-daten__kopf">
<h2 class="meine-daten__titel">Was ist über mich gespeichert?</h2>
<button type="button" class="knopf-still" id="auskunft-knopf">Datei herunterladen</button>
</div>
<p class="meine-daten__satz">
Alles, was dieser Workspace über dich weiß, als Datei zum Mitnehmen.
Zugangsgeheimnisse sind nicht dabei, und wo andere Menschen vorkommen,
stehen sie nicht mit Namen darin – ihre Daten gehören ihnen.
</p>
<p class="leise" id="auskunft-stand" hidden></p>
</section>
</main>
<script src="assets/js/meldung.js?v=202610081102" defer></script>
<script src="assets/js/hochladen.js?v=202610081102" defer></script>
<script src="assets/js/nachfrage.js?v=202610081102" defer></script>
<script src="assets/js/wahl.js?v=202610081102" defer></script>
<script src="assets/js/bereiche.js?v=202610081102" defer></script>
<script src="assets/js/installieren.js?v=202610081102" defer></script>
<script src="assets/js/kopf.js?v=202610081102" defer></script>
<script src="assets/js/auskunft.js?v=202610081102" defer></script>
<script src="assets/js/glocke.js?v=202610081102" defer></script>
<script src="assets/js/steckbrief.js?v=202610081102" defer></script>
</body>
</html>