Files
dogfather-universe/workspace/willkommen.html
T
DogFatherGitandClaude Opus 5 d85694bd92 Keine fertigen Vorschläge mehr bei den Highlights
Filipe: "nimm die sachen da weg bitte. da sollen nur die sachen rein
kommen die die modis, linke und rechte hand oder dogfather
reinsetzen."

In der Spalte "Noch einzusortieren" standen drei vorgefertigte
Vorschlaege ("Was hier hingehoert", "Fanart von DogFather und Casper
ist ausdruecklich erwuenscht", "Ein Ausschnitt, der auf die Clips
soll"). Jemand hatte sie uebernommen, und danach standen sie zwischen
den echten Clips -- mit Datum, mit Verfasser, aeusserlich nicht von
einem echten Eintrag zu unterscheiden.

WARUM DIESES BRETT ANDERS IST ALS DIE UEBRIGEN: Anderswo ist ein
Vorschlag eine ANREGUNG, die man ausfuellt ("Der naechste Stream mit
DogFather" -> Datum eintragen). Highlights ist eine SAMMLUNG echter
Sachen. Ein vorgefertigter Text ist dort kein Anfang, sondern ein
Platzhalter, der aussieht wie Inhalt. Die anderen Bretter behalten
ihre Vorschlaege -- dazu hat er nichts gesagt.

Nebenbefund: Seine Rollenaufzaehlung ist genau TREFF_TEAM_ROLLEN
(modi, hand, linke, admin). Die Rechteregel stimmte also schon.

ZWEI ECHTE MAENGEL FIELEN DABEI AUF, beide beim Versuch, die drei
Eintraege wegzunehmen:

1. Der Knopf "loeschen" schickte DELETE OHNE GRUND. Der Server
   verlangt bei einem fremden Beitrag auf einem Treff-Brett einen
   (DSA Art. 17) und antwortet mit 400 -- die Oberflaeche zeigte nur
   "Loeschen hat nicht geklappt." Zwei Knoepfe nebeneinander, einer
   ging ("entfernen"), einer nicht, und die Meldung erklaerte nichts.
   Jetzt fragt auch "loeschen" nach dem Grund, wenn der Server einen
   braucht -- erkannt an `treffBrett` vom Server, nicht an einer
   abgeschriebenen Brettliste -- und die Fehlermeldung gibt wieder,
   was der Server gesagt hat.

2. Der Dialog liess DREI Zeichen als Grund durch, der Server verlangt
   ZEHN. Wer "spam" tippte, kam durch die Nachfrage und bekam danach
   eine Absage. `grund_min` steht seit dem 11.09. in /api/treff/lage
   und wurde nie benutzt; jetzt ist es angeschlossen. In nachfrage.js
   bestimmt der Aufrufer die Mindestlaenge (`grundMin`), Vorgabe
   bleibt 3 -- fuer alle anderen Nachfragen aendert sich nichts.

UND ZWEI PRUEFUNGEN, DIE ROT WAREN, OHNE DASS ETWAS KAPUTT WAR:

- pruef-treff-start verlangte `>= 8` Vorschlaege auf dem Schirm. Das
  stimmte bis zum Fenster-Umbau vom 20.09. -- seither kommen
  hoechstens VIER (FENSTER = 4). Vier Tage rot, ohne dass es jemand
  erfuhr. Gefragt wird jetzt der Server selbst. Und die Brettliste
  ["treff","anschlag","wunsch","highlight"] wird gegen den Bestand
  abgeglichen statt abgeschrieben -- mit ausdruecklichem Nachweis,
  dass Highlights keine mehr hat, damit das Wegfallen nicht einfach
  eine Pruefung weniger bedeutet. 41 -> 42 Pruefungen.

- pruef-nachfrage zaehlte `installieren.js` als "diese Seite fragt
  nach", obwohl der Aufruf dort hinter `if (typeof window.frageNach
  === 'function')` steht. Weil die Datei auf fast jeder Seite liegt,
  wurde damit JEDE Seite zur fragenden -- fuenf rote Zeilen, kein
  einziger echter Mangel. Ausserdem wurde die Kurzschreibweise
  `{ titel, … }` als "ohne Titel" gemeldet. 46 -> 53 Pruefungen, alle
  gruen; zwei davon sind neu (Gegenprobe plus Benennung der
  Ausnahmen).

Beide mit Gegenprobe (git stash) belegt: schon vor dieser Aenderung
rot.

Gemessen: 11 Messungen, 0 Befunde -- darunter die Gegenprobe, dass
der alte Weg (DELETE ohne Grund) wirklich mit 400 gescheitert waere.
Gruen: pruef-treff-start (42), pruef-nachfrage (53), pruef-highlights
(31), pruef-anschlagbrett (12), pruef-css-klassen.

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

88 lines
4.0 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>Willkommen · Team Dogi</title>
<meta name="robots" content="noindex, nofollow" />
<!-- app.webmanifest, NICHT crew.webmanifest -- die Adresse biegt es um.
Der Server ersetzt den Pfad auf crew. an EINER Stelle
(crew-adresse.js). Wer hier das Crew-Manifest direkt nennt,
macht daraus eine zweite Stelle, die beim naechsten Umbau
vergessen wird. -->
<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=202609240050" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609240050" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609240050" />
<link rel="stylesheet" href="assets/css/start.css?v=202609240050" />
<link rel="stylesheet" href="assets/css/willkommen.css?v=202609240050" />
<link rel="stylesheet" href="assets/css/module.css?v=202609240050" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609240050" />
</head>
<!-- KOERPERKLASSE "start", NICHT "gate" (berichtigt 21.09.2026).
`body.gate` ist die Anmeldewand: `display:flex; align-items:center`,
gedacht fuer EINE zentrierte Karte. Damit standen Kopfleiste und
Inhalt NEBENEINANDER -- am Handy blieben dem Text 260 von 390
Pixeln, am Rechner klebte alles am rechten Rand. Gesehen hat das
kein gruener Haken, sondern das Bildschirmfoto. -->
<body class="start" data-ton="34" data-buehne="lounge">
<div class="schleier" aria-hidden="true"></div>
<header class="kopfleiste">
<button type="button" class="zurueck-knopf" id="zurueck">
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M15 5l-7 7 7 7"/></svg>
<span class="zurueck-knopf__text">Übersicht</span>
</button>
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Team&nbsp;Dogi</a> · Willkommen</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" id="haupt" aria-busy="true">
<!-- DIE BEGRÜSSUNG.
Der Name steht NICHT im HTML, sondern kommt vom Server -- eine
Seite, die jeder herunterlädt, soll keinen fremden Namen
enthalten. Bis er da ist, steht hier ein Satz, der auch ohne
Namen stimmt: "Willkommen!" ist nie falsch. -->
<section class="w-gruss">
<h1 class="w-gruss__titel" id="gruss">Willkommen!</h1>
<p class="w-gruss__rolle" id="rollentext" hidden></p>
<p class="w-gruss__was" id="einleitung-was"></p>
<p class="w-gruss__dazu" id="einleitung-dazu"></p>
</section>
<!-- Die Hinweise, die zur Rolle gehören und zu keiner Kachel. -->
<section class="w-hinweise" id="hinweise" hidden></section>
<!-- DIE KACHELN, ERKLÄRT. Sie werden aus derselben Liste gebaut wie
die Startseite -- deshalb steht hier nur der leere Behälter. -->
<section class="w-bereiche">
<h2 class="w-bereiche__titel">Was es hier gibt</h2>
<p class="w-bereiche__satz" id="bereiche-satz">
Jede Kachel, die für dich freigeschaltet ist — und wofür sie da ist.
Tipp eine an, um hinzugehen.
</p>
<div id="gruppen"></div>
</section>
<p class="w-laedt" id="laedt">Einen Moment …</p>
<p class="fehler" id="fehler" hidden></p>
</main>
<script src="assets/js/meldung.js?v=202609240050" defer></script>
<script src="assets/js/bereiche.js?v=202609240050" defer></script>
<script src="assets/js/wahl.js?v=202609240050" defer></script>
<script src="assets/js/nachfrage.js?v=202609240050" defer></script>
<script src="assets/js/installieren.js?v=202609240050" defer></script>
<script src="assets/js/kopf.js?v=202609240050" defer></script>
<script src="assets/js/glocke.js?v=202609240050" defer></script>
<script src="assets/js/willkommen.js?v=202609240050" defer></script>
</body>
</html>