Filipe, mit dem Bildschirmfoto auf crew.: "wieso steht es noch da?" -- "1 Punkt im Start-Check braucht Handlung", mit einem Pfeil auf eine Seite, die seit einer Stunde dort gesperrt ist. MEIN FEHLER VON HEUTE MITTAG. Ich hatte die Seiten gesperrt und ausdruecklich dazugeschrieben "nur die Seiten, nicht die Schnittstellen" -- und dabei uebersehen, dass es eine DRITTE Stelle gibt. Die Hinweise auf der Startseite sind keine Seite und keine Schnittstelle, sondern eine Liste von VERWEISEN. Der Satz im Kommentar klang vollstaendig und war es nicht. Nachgesehen, wer sonst noch Seitenziele ausliefert, statt zu raten: workspace-hinweise.js alle 16 Hinweise, ueber dazu() -> behoben workspace-suche.js jeder Treffer traegt ein Ziel -> behoben workspace-push.js Benachrichtigungen tragen eines -> OFFEN Die ersten beiden bekommen dieselbe Regel wie die Seiten, nicht eine zweite: gehoertAufDieseAdresse(). Was hier keine Seite hat, bekommt hier auch keinen Hinweis und keinen Treffer. Bei der Suche fallen leere Gruppen mit weg (eine Ueberschrift ohne Treffer sieht aus, als waere etwas kaputt) und `gesamt` wird danach abgeleitet, sonst nennt die Zahl Treffer, die gar nicht dastehen. DIE ADRESSE IST IMMER DIE ECHTE: Beide Stellen benutzen `req.sicht || req.person`. Der Sicht-Umschalter aendert, WESSEN Zahlen dastehen -- nicht, auf welcher Wand man steht. Das Haus kommt deshalb aus req.person. PUSH BLEIBT OFFEN, und zwar bewusst: Eine Benachrichtigung entsteht, wenn niemand auf einer Adresse steht. Sie geht an ein GERAET, und das oeffnet die Adresse, als die es installiert wurde. Das ist eine andere Frage als diese hier, und eine halbe Antwort waere schlechter als keine. Gehoert eigens angesehen. Was die Gegenprobe gefunden hat -- an mir selbst, zweimal: Der erste Entwurf der Pruefung legte die Tabelle `startcheck` mit erfundenen Spalten selbst an. Die echte war laengst da, das IF NOT EXISTS schwieg, der INSERT scheiterte. Die Pruefung haette gemeldet, der Hinweis stehe nirgends -- richtig und wertlos. Und "kein Suchtreffer zeigt dorthin" stand ueber NULL Treffern. Jetzt wird erst nachgewiesen, dass die Suche denselben Menschen auf der Agenturadresse wirklich findet (1 Treffer -> profil.html). server/pruef-haus-seiten.mjs 34 Pruefungen (vorher 24), 0 Fehler pruef-sicht, pruef-haus-trennung 66, pruef-betreuung, pruef-manager-sicht 43 -- alle 0 Fehler Co-Authored-By: Claude Opus 5 <[email protected]>
143 lines
5.8 KiB
HTML
143 lines
5.8 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>Wer sieht was · Creator Workspace</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=202609151430" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609151430" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202609151430" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202609151430" />
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609151430" />
|
||
<link rel="stylesheet" href="assets/css/treff.css?v=202609151430" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202609151430" />
|
||
<link rel="stylesheet" href="assets/css/haus.css?v=202609151430" />
|
||
</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> · Wer sieht was</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">Rechte · nur für dich</p>
|
||
<h1 class="titel">Wer sieht was</h1>
|
||
<p class="unterzeile">
|
||
Nicht aufgeschrieben, sondern ausgerechnet – aus derselben Tafel,
|
||
aus der die Schranke ihre Entscheidung holt. Und umstellbar.
|
||
</p>
|
||
</div>
|
||
</section>
|
||
|
||
<p class="fehler" id="fehler" role="alert" aria-live="polite" hidden></p>
|
||
|
||
<!-- Die Leiste sagt, ob etwas von Hand gesetzt ist, und ist der Weg
|
||
zurück. Sie steht OBEN und nicht unter der Tabelle: Wer etwas
|
||
verstellt hat und es zurückdrehen will, sucht nicht erst
|
||
zweihundert Zeilen lang. -->
|
||
<div class="rechte-leiste" id="leiste" hidden></div>
|
||
|
||
<!-- ==================================================================
|
||
WARUM DIESE SEITE ÜBERHAUPT EXISTIERT
|
||
|
||
Filipe: „egal welche Rolle oder Person hinzugefügt wird, soll
|
||
immer nur das sehen, was ich erlaube."
|
||
|
||
Dazu gehört, dass er es NACHSEHEN kann. Eine Regel, die man nur
|
||
glauben kann, ist eine Zusage; eine, die man ansehen kann, ist
|
||
eine Auskunft.
|
||
|
||
Und sie ist eine Gegenprobe: Wenn hier bei einer Rolle plötzlich
|
||
zwanzig Punkte stehen, wo gestern drei waren, sieht man das in
|
||
einer Sekunde. In 74 Rollenabfragen über 20 Module sieht man es
|
||
nie.
|
||
============================================================== -->
|
||
|
||
<section class="treff-abschnitt">
|
||
<h2 class="treff-abschnitt__titel">Wie viele Seiten je Rolle</h2>
|
||
<div class="treff-abschnitt__inhalt">
|
||
<p>
|
||
Das ist die Zahl, um die es geht. Eine neue Rolle startet bei
|
||
<strong>null</strong> – sie bekommt nichts, bis es jemand einträgt.
|
||
</p>
|
||
</div>
|
||
<ul class="rechte-zahlen" id="zahlen">
|
||
<li class="leise">wird geladen …</li>
|
||
</ul>
|
||
</section>
|
||
|
||
<section class="treff-abschnitt">
|
||
<h2 class="treff-abschnitt__titel">Die ganze Tafel</h2>
|
||
<div class="treff-abschnitt__inhalt">
|
||
<p>
|
||
Ein Punkt heißt: diese Rolle darf diese Seite öffnen. Leer heißt
|
||
nein – und zwar auch dann, wenn niemand je darüber nachgedacht hat.
|
||
Das ist der Unterschied zu vorher.
|
||
</p>
|
||
<p>
|
||
<strong>Ein Klick stellt um</strong>, und er wird sofort gespeichert –
|
||
kein Knopf am Ende, an dem eine halbe Änderung verlorengeht. Ein
|
||
heller Rahmen heißt: <em>dieses Feld ist von Hand gesetzt</em> und
|
||
weicht vom Grundstand im Code ab.
|
||
</p>
|
||
<p class="leise">
|
||
Drei Felder sind fest: Du kannst dir selbst die Rechte-, die Personen-
|
||
und die Startseite nicht wegnehmen – sonst käme niemand mehr an die
|
||
Rechte, an die Zugänge oder auf die Startseite.
|
||
</p>
|
||
</div>
|
||
<div class="rechte-tafel" id="tafel" aria-busy="true">
|
||
<p class="leise">wird geladen …</p>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="treff-abschnitt">
|
||
<h2 class="treff-abschnitt__titel">Ohne Anmeldung</h2>
|
||
<div class="treff-abschnitt__inhalt">
|
||
<p>
|
||
Diese Seiten sind offen – man kann sich schlecht anmelden, wenn die
|
||
Anmeldeseite eine Anmeldung verlangt. Jede andere Seite ist zu.
|
||
</p>
|
||
<ul class="regel-liste" id="offen"><li class="leise">wird geladen …</li></ul>
|
||
</div>
|
||
</section>
|
||
|
||
</main>
|
||
|
||
<!-- WER kopf.js LAEDT, MUSS AUCH wahl.js LADEN (Regel seit 07.09.2026).
|
||
|
||
Der Umschalter "Meine Sicht" in der Kopfleiste ist ein selbst
|
||
gebautes Bedienelement; dahinter liegt ein unsichtbares Systemfeld
|
||
fuer Vorleseprogramme. Ohne wahl.js faellt kopf.js auf dieses Feld
|
||
zurueck -- ein grauer Kasten von 92 x 19 Pixeln mit weisser
|
||
Schrift, mitten in einer dunklen Leiste.
|
||
|
||
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
|
||
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
|
||
die seit dem 07.09. jede Seite danach absucht. -->
|
||
<script src="assets/js/wahl.js?v=202609151430" defer></script>
|
||
<script src="assets/js/bereiche.js?v=202609151430" defer></script>
|
||
<script src="assets/js/kopf.js?v=202609151430" defer></script>
|
||
<script src="assets/js/rechte.js?v=202609151430" defer></script>
|
||
</body>
|
||
</html>
|