Filipe, 24.09.2026: "wenn ich bei der einen was mache soll nichts bei
der anderen passieren." -- und heute: "ja los".
GEMESSEN, BEVOR ETWAS ANGEFASST WURDE (jedes Brett x beide Adressen x
vier Rollen):
AGENTUR-Adresse DogFather 18 Bretter
Manager 6 Bretter
Creator 6 Bretter
Modi kommt nicht rein (401)
CREW-Adresse DogFather 18 Bretter
Modi 13 Bretter
Manager kommt nicht rein (401)
Creator kommt nicht rein (401)
Die Anmeldung war also dicht. Durch griff genau EINE Rolle: DogFather.
Er wohnt in beiden Haeusern, und die Riegel in sichtbarEintrag()
fragten nach der ROLLE, nicht nach der Adresse. Auf der Crew-Adresse
stand damit das Brett der Agentur samt Inhalt.
Nachgemessen ist der Durchgriff AELTER als der gestrige Eventkarten-
Umbau -- zweimal gemessen, mit und ohne ihn, gleiches Ergebnis.
RIEGEL 0 in sichtbarEintrag(): Wer auf einer Adresse angemeldet ist,
sieht nur Eintraege dieses Hauses. Er haengt den uebrigen Riegeln
UM, statt in jeden Ausgang geschrieben zu werden -- die Funktion hat
drei Rueckgabepunkte, und der naechste waere sonst wieder offen.
Nachher, dieselbe Messung: DogFather sieht auf der Agenturadresse nur
Agentur-Eintraege, auf der Crew-Adresse nur die des Rudels. Manager,
Creator und Modi unveraendert.
WAS DABEI SCHIEFGING UND WIE ES AUFFIEL
1. Die erste Fassung liess bei `haus IS NULL` den BEREICH entscheiden.
pruef-haus-trennung.mjs wurde sofort rot: "Lunas Live vom Montag"
verschwand von der Agenturadresse. `live`, `technik` und
`community` tragen BEIDES -- die Kacheln von Team Dogi und die
Creator-Akten. Eine Regel, die jedem Brett genau ein Haus zuweist,
kann das nicht. Jetzt bleibt ein Eintrag ohne Haus sichtbar: ein
Eintrag zu viel faellt auf, ein fehlender nicht.
2. Damit NULL kein Dauerloch ist: FUENF von ACHT Stellen, die
Eintraege anlegen, setzten `haus` gar nicht (workspace-video.js,
-content.js, -bewerbung.js, -treff.js, -vorlagen.js). Nachgetragen.
3. Und `person.haus` war dafuer der falsche Massstab: Legt DogFather
ueber die Agenturadresse ein Highlight an, gehoert es trotzdem dem
Rudel -- sonst sieht die Community es nie. pruef-treff.mjs hat das
gefunden (2 Fehler). Neu: hausFuerNeuenEintrag() -- bei den sieben
Brettern des Rudels entscheidet das BRETT, sonst die Adresse.
NEU: pruef-haus-luecke.mjs (12 Pruefungen). Sie sucht die
Einfuege-Stellen im Quelltext und wird rot, sobald eine neunte
dazukommt, die `haus` vergisst -- mit Gegenprobe, dass das Suchmuster
eine solche Stelle auch wirklich erkennt. Ein Kommentar daneben haette
es nicht verhindert; das steht so schon im Projektgedaechtnis.
NEBENBEI: In bereich.js stand seit gestern `|| "Agentur-Events"` als
Rueckfall fuer das Etikett der Vorschau. pruef-treff.mjs verbietet
das zu Recht -- wie ein Brett heisst, haengt am Haus, und der Server
sagt es. Der Rueckfall ist weg; fehlt die Angabe, steht lieber kein
Etikett da als ein falsches.
pruef-treff.mjs nachgezogen (85 -> 86 Pruefungen, nicht weniger): Die
Zusage "DogFather sieht den Beitrag" wird jetzt auf der Crew-Adresse
geprueft, mit Gegenprobe fuer die Agenturadresse.
GEPRUEFT, alle gruen:
pruef-haus-luecke 12 pruef-haus-trennung 100
pruef-crew-adresse 169 pruef-treff 86
pruef-eventkarte 77 pruef-agentur 62
pruef-haus-seiten 38 pruef-eintrag-bild 24
pruef-vorlagen 24 pruef-video, -content, -bewerbung,
-bereiche-lesend: in Ordnung
Co-Authored-By: Claude Opus 5 <[email protected]>
126 lines
5.5 KiB
HTML
126 lines
5.5 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>Talente · 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=202610032333" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610032333" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202610032333" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202610032333" />
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610032333" />
|
||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610032333" />
|
||
<!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie
|
||
der Regel hier waere die zweite Stelle, an der dieselbe Sache
|
||
anders aussieht. -->
|
||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610032333" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202610032333" />
|
||
<link rel="stylesheet" href="assets/css/haus.css?v=202610032333" />
|
||
</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">Team Dogi</a> · Talente</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">Entwicklung & Nachwuchs</p>
|
||
<h1 class="titel">Talente</h1>
|
||
<p class="unterzeile">
|
||
Zuschauer, die ins Team passen könnten. Ein Trichter, keine Liste –
|
||
jede Stufe hat genau einen nächsten Schritt.
|
||
</p>
|
||
</div>
|
||
</section>
|
||
|
||
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
|
||
|
||
<!-- DIE ANFRAGEN GEHOEREN AN DEN ANFANG DIESES TRICHTERS.
|
||
|
||
Wer sich selbst meldet, ist ein Kandidat wie jeder andere -- nur
|
||
dass er die erste Frage ("besteht ueberhaupt Interesse?") schon
|
||
beantwortet hat. Deshalb steht der Weg dorthin auf DIESER Seite
|
||
und nicht als eigene Kachel daneben: Sonst waere aus einem Weg
|
||
zwei Seiten geworden, die man abwechselnd aufmacht.
|
||
|
||
Der Kasten steht ueber der Liste, weil eine unbeantwortete
|
||
Anfrage dringender ist als ein Kandidat, der seit Wochen
|
||
beobachtet wird. -->
|
||
<section id="anfragen-tor" class="bw-tor" hidden></section>
|
||
|
||
<!-- ==================================================================
|
||
HIER STEHEN NAMEN VON MENSCHEN, DIE NICHTS DAVON WISSEN.
|
||
|
||
Diese Seite gehört DogFather und der rechten Hand — sonst niemand,
|
||
keine Agentur, und ganz sicher nicht die Community. Durchgesetzt
|
||
wird das in der Rechtetafel UND in workspace-entwicklung.js; der
|
||
Satz hier ist nur die Erinnerung daran, warum.
|
||
|
||
Deshalb gibt es auch keine Rückmeldung an einen Kandidaten und
|
||
keinen heimlichen Test mit einem Zweitkonto. Wer beobachtet wird,
|
||
ohne es zu wissen, hat ein Recht darauf, dass daraus nichts
|
||
Öffentliches wird.
|
||
============================================================== -->
|
||
|
||
<!-- DER ZUGANGSCODE STEHT AUSSERHALB DER LISTE, und das ist kein
|
||
Schönheitsgrund. Die Liste wird nach jeder Änderung neu
|
||
gezeichnet – stünde der Kasten darin, wäre der Code in genau dem
|
||
Moment wieder weg, in dem er entsteht: wenn die Karte auf „Im
|
||
Team“ springt.
|
||
|
||
DERSELBEN KLASSEN WIE IN „PERSONEN & ZUGÄNGE“. Ein Geheimnis
|
||
sieht im ganzen Haus gleich aus – zwei Gestaltungen für dieselbe
|
||
Sache wären zwei Gelegenheiten, eine davon falsch zu machen. -->
|
||
<div class="code-kasten" id="code-kasten" hidden role="status" aria-live="polite">
|
||
<p class="code-kasten__schild">Zugangscode für <span id="code-name"></span></p>
|
||
<p class="code-kasten__code" id="code-wert"></p>
|
||
<p class="code-kasten__hinweis">
|
||
Dieser Code wird <strong>nur jetzt</strong> angezeigt und ist danach nicht mehr
|
||
abrufbar. Persönlich weitergeben und in Bitwarden ablegen.
|
||
</p>
|
||
<div class="t-text__knoepfe">
|
||
<button type="button" class="knopf knopf--klein" id="code-kopieren">Kopieren</button>
|
||
<button type="button" class="abmelden" id="code-schliessen">Verstanden, schließen</button>
|
||
</div>
|
||
</div>
|
||
|
||
<section id="trichter" class="t-trichter" aria-busy="true"></section>
|
||
|
||
<section id="liste" class="t-liste" aria-busy="true">
|
||
<p class="leise">wird geladen …</p>
|
||
</section>
|
||
|
||
</main>
|
||
|
||
<script src="assets/js/meldung.js?v=202610032333" defer></script>
|
||
<script src="assets/js/nachfrage.js?v=202610032333" defer></script>
|
||
|
||
<script src="assets/js/wahl.js?v=202610032333" defer></script>
|
||
<script src="assets/js/bereiche.js?v=202610032333" defer></script>
|
||
<script src="assets/js/installieren.js?v=202610032333" defer></script>
|
||
<script src="assets/js/kopf.js?v=202610032333" defer></script>
|
||
<script src="assets/js/glocke.js?v=202610032333" defer></script>
|
||
<script src="assets/js/holen.js?v=202610032333" defer></script>
|
||
<script src="assets/js/talente.js?v=202610032333" defer></script>
|
||
</body>
|
||
</html>
|