Filipe: "die sollen alle in einer reihe sein und nicht 3 und dann eins drunter. perfektionier das." DER GRUND WAR EINE RECHNUNG, DIE ICH NICHT KONTROLLIERT HABE Dort stand `auto-fit` mit 340 px Mindestbreite -- CSS rechnet sich dann selbst aus, wie viele nebeneinanderpassen. Bei vier Tafeln in einer 1240 px breiten Spalte reichte es fuer drei; die vierte rutschte in eine zweite Zeile. `auto-fit` ist bequem, solange die Anzahl offen ist. Sobald sie feststeht, ist es eine Rechnung, die man aus der Hand gibt. Vier sind es, vier stehen nebeneinander -- und zwar mit `flex` statt `grid`, weil damit die OFFENE Tafel breiter sein kann als die geschlossenen. Es ist immer genau eine offen, und die bekommt den anderthalbfachen Anteil: Dort wird gearbeitet, die anderen sind Reiter. Das ist der Unterschied zwischen vier gleich grossen Kaesten und einem Brett. UND EIN VERSPRECHEN, DAS ERST NACH DEM ERSTEN KLICK GALT Das Akkordeon griff nur beim Klicken. Beim Laden kamen die gemerkten Staende aus der Ablage, und die konnten drei offene Tafeln ergeben -- im Bildschirmfoto standen genau so drei offen nebeneinander. Jetzt bleibt beim Aufbau die erste Tafel offen, die etwas enthaelt; alle weiteren klappen zu, ohne den gemerkten Stand zu ueberschreiben. DREIMAL GEMESSEN STATT GESCHAETZT Nach dem Umbau standen dort "LAEUFT AUTO..." und "FESTGEHALT..." -- 252 px je Reiter, gemessen. Ich habe zweimal an den Pixeln gedreht (Anteil 2,2 -> 1,8 -> 1,5, Sperrung 0,08 -> 0,035 em) und es blieb abgeschnitten. Die richtige Antwort war nicht die dritte Zahl, sondern der Name: Ein Reiter braucht ein Wort. Aus "Laeuft automatisch" wurde "Wiederholungen" -- was es genau heisst, steht im Satz darunter, und den liest man ohnehin erst, wenn die Tafel offen ist. Gemessen am Ende: vier Tafeln, EINE Reihe, EINE offen, KEIN abgeschnittener Titel. Sechs Pruefungen gelaufen, alle gruen. OFFEN, damit es nicht untergeht: pruef-call-kategorien meldet auf Windows sporadisch Rueckgabewert 127 -- NACH "ALLES IN ORDNUNG", also beim Beenden des Prozesses (libuv-Assertion beim Schliessen des noch laufenden Servers). Das Ergebnis stimmt, der Rueckgabewert luegt. Wer nur auf den Code sieht, haelt einen gruenen Lauf fuer rot. Co-Authored-By: Claude Opus 5 <[email protected]>
124 lines
5.3 KiB
HTML
124 lines
5.3 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>Mein Steckbrief · Creator Workspace</title>
|
||
<meta name="robots" content="noindex, nofollow" />
|
||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||
<meta name="theme-color" content="#0674b9" />
|
||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202609072357" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202609072357" />
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609072357" />
|
||
<link rel="stylesheet" href="assets/css/profil.css?v=202609072357" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202609072357" />
|
||
</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> · Mein 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>
|
||
<h2 class="team-block__titel">Wer hier mitarbeitet</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>
|
||
|
||
</main>
|
||
|
||
<script src="assets/js/wahl.js?v=202609072357" defer></script>
|
||
<script src="assets/js/bereiche.js?v=202609072357" defer></script>
|
||
<script src="assets/js/kopf.js?v=202609072357" defer></script>
|
||
<script src="assets/js/glocke.js?v=202609072357" defer></script>
|
||
<script src="assets/js/steckbrief.js?v=202609072357" defer></script>
|
||
</body>
|
||
</html>
|