Files
dogfather-universe/workspace/support.html
T
DogFatherGitandClaude Opus 5 63a3fb4af8 Die rechte Hand sieht die Personenseite wirklich -- Liste, Rollenkarten und das Protokoll
Filipe, zum wiederholten Mal und mit einem Bildschirmfoto genau dieser
Seite: "zum hunderstenmal, also bitte mach dass es jetzt endlich
klappt, die rechte hand sieht das immer noch nicht obwohl ich will dass
die rechte hand das auch sieht."

ZUERST NACHGEMESSEN, NICHT GERATEN. Am 24.09. habe ich auf ein
Bildschirmfoto hin an der falschen Seite gebaut und es im Commit selbst
notiert. Diesmal zuerst mess-hand-personen.mjs: dieselbe Seite, zwei
Anmeldungen, und der Unterschied wird aufgezaehlt. Ergebnis in einer
Zeile -- sie bekam vom Server alle acht Personen (HTTP 200) und sah auf
dem Bildschirm NICHTS davon. Nur das Anlege-Formular, darueber der Satz
"Codes, Sperren und das Protokoll bleiben bei DogFather".

ZWEI URSACHEN, UND NUR EINE WAR EINE SCHRANKE:

  1. Die OBERFLAECHE hat die Liste versteckt, die sie laengst geladen
     hatte. `personen.js` entschied die Ausbaustufe mit
     `ich.rolle !== 'admin'`, setzte damit `data-nur-anlegen`, und
     `personen.css` blendet darauf hin die Liste, das Protokoll und
     "Alle aufklappen" aus. Diese CSS-Regel stammt vom 07.09. und war
     fuer Manager und Spicy Media gedacht; die rechte Hand ist erst
     danach dazugekommen und fiel stillschweigend mit hinein.

     Das ist in dieser einen Datei die DRITTE Stelle, an der ein
     Rollenvergleich im Browser veraltet ist -- nach dem 22.09.
     ("keine Knoepfe") und dem 24.09. ("keine Rollenwahl"). Jedes Mal
     hatte sie das Recht und sah es nicht.

  2. Das Protokoll war am Server zu (HTTP 404). Damit ist der Satz von
     oben ueberholt: Filipes Ansage vom 24.09. -- "die selben rechte da
     haben wie dogfather, das einzige was sie nicht kann ist die
     dogfather rolle oder leute anfassen" -- laesst dafuer keinen Rest.

EINE AUSKUNFT FUER DREI STELLEN. `fuehrtDieZugaenge(person)` steht
jetzt in workspace.js und beantwortet dieselbe Frage fuer die Tuer am
Server, fuer `/api/ich` (`darf_zugaenge_fuehren`) und fuer die
Ausbaustufe der Seite. Drei Abschriften waeren drei Gelegenheiten, dass
die naechste Aenderung nur zwei davon trifft -- genau so ist dieser
Fehler entstanden.

`istHand` WAERE FALSCH GEWESEN. Es fasst beide Haende zusammen, und
fuer die linke gilt ausdruecklich das Gegenteil ("sieht weder
Bewerbungen noch den vertraulichen Meldeweg"). Wer hier den
Sammelbegriff nimmt, dreht eine ausgesprochene Entscheidung
stillschweigend um. Die Prueflung fragt sie deshalb einzeln.

DIE PRUEFUNG ZIEHT NACH (40 -> 49). Abschnitt 6 prueft beides: dass
die rechte Hand dasselbe Protokoll bekommt wie DogFather, und dass die
Auskunft, aus der die Oberflaeche ihre Ausbaustufe baut, mit der Tuer
am Server uebereinstimmt. Genau dieser Abgleich hat gefehlt: Eine
Rechtepruefung, die nur Serverantworten ansieht, hat den Fehler zwei
Tage lang nicht bemerkt. Dazu drei Gegenproben (linke Hand 404, Modi
404, linke Hand `darf_zugaenge_fuehren === false`).

Beim ersten Lauf waren diese Gegenproben rot -- mit 401 statt 404. Die
Abschnitte davor sperren und loeschen absichtlich Leute, und eine tote
Sitzung antwortet mit 401: Das sieht aus wie "darf nicht" und heisst
"gibt es nicht mehr". Ein 401 als Gegenprobe fuer ein 404 ist ein Haken
ohne Gegenstand. Abschnitt 6 legt sich deshalb frische Zugaenge an.

Geprueft: pruef-hand-personen (49, 0 Fehler), pruef-personen-liste,
pruef-personen-kachel (45), pruef-personen-loeschen,
pruef-modi-verborgen (85). Unveraendert rot und an HEAD nachgemessen,
also nicht von diesem Umbau: pruef-personen-formular (2),
pruef-community-sicht (1), pruef-spicy (3).

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-25 02:47:07 +02:00

139 lines
6.2 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>Support · 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=202609250246" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250246" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250246" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250246" />
<link rel="stylesheet" href="assets/css/support.css?v=202609250246" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250246" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250246" />
</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> · Support</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">Support</p>
<h1 class="titel" id="seiten-titel">Etwas stimmt nicht?</h1>
<p class="unterzeile" id="seiten-unter">
Schreib es hin, häng ein Bild dran, fertig. DogFather und die
rechte Hand kümmern sich darum.
</p>
</div>
</section>
<!-- ==================================================================
ZWEI SEITEN, EINE DATEI (24.09.2026)
Filipe: „bei dogfather und der rechten hand soll die kachel
anders gebaut sein weil die sind die die sich um die probleme
kümmern."
Beide Ansichten stehen hier, und support.js blendet die aus, die
nicht gilt. Zwei getrennte Dateien wären die naheliegende
Aufteilung — und die zweite wäre die, in der ein Umbau vergessen
wird. Dieselbe Entscheidung wie bei hilfe.html.
Was der SERVER liefert, entscheidet das ohnehin: Wer nicht zur
Leitung gehört, bekommt fremde Meldungen gar nicht erst. Das
Ausblenden hier ist Aufräumen, keine Sicherung.
================================================================== -->
<!-- ---------- MELDEN: sehen und benutzen alle --------------------- -->
<section class="s-melden" id="melden-block">
<h2 class="s-titel">Was ist los?</h2>
<form id="melden" novalidate>
<label class="s-feld">
<span class="s-feld__schild">Beschreib es kurz</span>
<textarea id="text" rows="4" maxlength="2000"
placeholder="z. B. Auf der Aufgabenseite lässt sich der Haken nicht setzen – der Knopf reagiert nicht."></textarea>
</label>
<!-- EIN BILD, NICHT FÜNF. Wer drei Bildschirmfotos anhängt,
erklärt damit nichts besser — er verschiebt die Arbeit nur
zu dem, der sie ansehen muss. -->
<div class="s-bild">
<input type="file" id="bild" accept="image/png,image/jpeg,image/webp,image/gif" hidden />
<button type="button" class="schritt" id="bild-waehlen">Bild anhängen</button>
<span class="s-bild__name" id="bild-name"></span>
<button type="button" class="schritt" id="bild-weg" hidden>Bild weg</button>
</div>
<div class="s-vorschau" id="vorschau" hidden>
<img id="vorschau-bild" alt="Vorschau des angehängten Bildes" />
</div>
<p class="fehler" id="melden-fehler" role="alert" aria-live="polite"></p>
<div class="s-knopfreihe">
<button type="submit" class="knopf" id="senden">Abschicken</button>
<span class="s-hinweis" id="melden-hinweis"></span>
</div>
</form>
</section>
<!-- ---------- MEINE MELDUNGEN: für alle außer der Leitung --------- -->
<section class="s-meine" id="meine-block" hidden>
<h2 class="s-titel">Deine Meldungen <span class="s-zahl" id="meine-zahl">0</span></h2>
<div id="meine-liste" aria-live="polite"></div>
</section>
<!-- ---------- DER EINGANG: nur DogFather und die rechte Hand ------ -->
<section class="s-eingang" id="eingang-block" hidden>
<div class="s-eingang__kopf">
<h2 class="s-titel">Eingang</h2>
<!-- Die Zahlen stehen VOR der Liste, nicht darunter: Wer
hereinkommt, will zuerst wissen, ob etwas liegen geblieben
ist — und erst dann, was genau. -->
<div class="s-bilanz" id="bilanz"></div>
</div>
<div class="s-filter" id="filter" role="group" aria-label="Nach Stand filtern"></div>
<p class="fehler" id="eingang-fehler" role="alert" aria-live="polite"></p>
<div id="eingang-liste" aria-live="polite"></div>
</section>
</main>
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und
kopf.js liest daraus die Leitungsrollen. Ohne sie stuerzt jede
Seite mit der Meldung „Cannot read properties of undefined
(reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese
Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam
trotzdem, deshalb sah man es nur in der Browserkonsole. -->
<script src="assets/js/bereiche.js?v=202609250246" defer></script>
<!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der
Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das
seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und
uebersicht.html, und heute hier. -->
<script src="assets/js/wahl.js?v=202609250246" defer></script>
<script src="assets/js/nachfrage.js?v=202609250246" defer></script>
<script src="assets/js/installieren.js?v=202609250246" defer></script>
<script src="assets/js/kopf.js?v=202609250246" defer></script>
<script src="assets/js/glocke.js?v=202609250246" defer></script>
<script src="assets/js/support.js?v=202609250246" defer></script>
</body>
</html>