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]>
139 lines
6.2 KiB
HTML
139 lines
6.2 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>Support · 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=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/support.css?v=202609241136" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202609241136" />
|
||
<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 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=202609241136" 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=202609241136" defer></script>
|
||
<script src="assets/js/nachfrage.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/support.js?v=202609241136" defer></script>
|
||
</body>
|
||
</html>
|