Files
dogfather-universe/workspace/team.html
T
DogFatherGitandClaude Opus 5 7acd7a7674 Das Suchfeld nimmt wieder Eingaben, eigene Kanalnamen, Community in Kanälen
screen1, drei Teile.

=== 1. „bei suchen kann man nichts reinschreiben" ===

MEIN FEHLER VOM SELBEN TAG. Beim Popover-Umbau heute frueh hing die
Liste am <body>, damit sie nicht hinter dem modalen Dialog
verschwindet. Gemessen: Das Suchfeld war da, der Fokus landete nicht
darin, ein getipptes Zeichen kam nicht an.

DER GRUND IST DER FOKUS-KAEFIG. Ein Dialog aus showModal() sperrt den
Fokus auf seinen eigenen DOM-Baum ein. Die Liste lag im Top Layer --
sichtbar und anklickbar, aber ausserhalb des Kaefigs. Klicken braucht
keinen Fokus, Tippen schon. Deshalb fiel es niemandem auf: Die Liste
stand da, sie filterte auf Knopfdruck, nur eine Eingabe kam nicht an.

DIE LOESUNG WAR EINE KOMBINATION, die ich vorher fuer unmoeglich
hielt. Im Dialog wurde die Liste vom clip-path der abgeschraegten
Ecke abgeschnitten, draussen war sie nicht bedienbar. Ein POPOVER
wird aber in die Top Layer gehoben und dort gezeichnet -- der
Beschnitt des Elternteils erreicht es nicht mehr, waehrend der
DOM-Baum (und damit der Fokus) der des Dialogs bleibt. Jetzt haengt
sie wieder im Dialog UND ist ein Popover: bedienbar und unbeschnitten.

Gemessen beides gegeneinander: „comm" getippt -> kommt an, filtert auf
1 Treffer; und die LETZTE Zeile der vollen Liste ist wirklich
anklickbar (elementFromPoint trifft sie selbst, nicht den Dialog).
Daraus ist pruef-suchfeld geworden -- der Fehler war von aussen nicht
zu sehen, und gefunden hat ihn Filipe, nicht ich.

=== 2. „einen neuen namen erstellen den es noch nicht gibt" ===

`data-frei="ja"` war in wahl.js seit langem gebaut und wurde NIE
GESETZT -- dieselbe Sorte Lueue wie `grund_min` heute Morgen. Jetzt
gesetzt; der getippte Text erscheint als eigener Eintrag ganz oben.

Der Server nahm bisher nur die neun festen Zustaendigkeiten. Jetzt
auch einen eigenen Namen: Der SCHLUESSEL wird daraus abgeleitet
(„Technik & Ton" -> "eigen-technik-ton"), der ANGEZEIGTE Name bleibt
wie geschrieben. Das Praefix ist kein Schmuck -- ohne es entstuende
aus dem Namen „Community" derselbe Schluessel wie beim festen Thema,
und der eindeutige Index lehnte ihn ab, obwohl der Kanal nicht
existiert. Gemessen: genau dieser Fall antwortet jetzt mit 201.

Der alte Kommentar sprach sich gegen freie Namen aus („der sichere
Weg zu Clipping neben Clipping-Team"). Das Risiko bleibt und wird
begrenzt: Derselbe Name zweimal ergibt denselben Schluessel und damit
409.

=== 3. „kanäle mit den leuten mit der community rolle" ===

Seit dem 19.09. nimmt `ohneAussen()` die Community aus den Listen
aller anderen. Die Begruendung dort ist ausdruecklich: „Ein
Zweier-Gespraech ist kein Kanal. Es hat keine Nachtruhe, kein Modi
liest mit, und niemand koennte moderieren."

Genau diese Begruendung laesst den Kanal offen. Die Sperre bleibt
fuer GESPRAECHE und faellt fuer KANAELE -- `?fuer=kanal` an der
Partnerliste, und nur fuer den, der Kanaele ueberhaupt aufmachen
darf. Sonst waere der Parameter ein Weg, an `ohneAussen` vorbei Namen
zu erfahren.

Gemessen: DogFather sieht im Gespraech VanVan und Miss, im Kanal
zusaetzlich Kessi und Tom (beide Community). Ein Modi bekommt die
erweiterte Liste auch mit dem Parameter nicht.

Gruen: pruef-suchfeld (8, neu), pruef-chat-kanaele (81),
pruef-treffchat, pruef-chat-neu, pruef-freie-namen (32),
pruef-nachfrage (53), pruef-css-klassen.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-24 11:37:03 +02:00

125 lines
5.4 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>Team · Spicy &amp; 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=202609241136" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241136" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241136" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241136" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241136" />
<link rel="stylesheet" href="assets/css/team.css?v=202609241136" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241136" />
<!-- 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=202609241136" />
</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&nbsp;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 &amp; 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/nachfrage.js?v=202609241136" defer></script>
<script src="assets/js/wahl.js?v=202609241136" defer></script>
<script src="assets/js/bereiche.js?v=202609241136" defer></script>
<script src="assets/js/installieren.js?v=202609241136" defer></script>
<script src="assets/js/kopf.js?v=202609241136" defer></script>
<script src="assets/js/glocke.js?v=202609241136" defer></script>
<script src="assets/js/holen.js?v=202609241136" defer></script>
<script src="assets/js/team.js?v=202609241136" defer></script>
</body>
</html>