Filipe: „da fehlt auch eine support kachel. die jeder sieht. jeder
benutzen kann. jeder kann da probleme von der seite melden und
hinweisen. fotos mit schicken mit einem text. … so einfach wie
möglich, will nichts kompliziertes oder zu viel. kurz und knapp …
bei dogfather und der rechten hand soll die kachel anders gebaut sein
weil die sind die die sich um die probleme kümmern."
WARUM DAS NICHT DER VORHANDENE MELDEWEG IST. Es gibt ihn schon
(hilfe.html) und er sieht aehnlich aus. Drei Unterschiede machen ihn
zu etwas anderem:
1. Er ist NICHT fuer alle -- in rechte.js steht
`["gast","hand","admin"]`. Modis, Creator, Scouts, Manager und
die linke Hand hatten gar keinen Weg, einen kaputten Knopf zu
melden.
2. Er kann keine Bilder. Bei „der Knopf tut nichts" ist ein
Bildschirmfoto die halbe Antwort.
3. Er ist bewusst schwer: strikter Wechsel, hoechstens drei offene
Faelle, ein Betreff. Richtig bei einem Vorfall zwischen
Menschen, zu viel fuer „das Datum steht falsch da".
Deshalb eigen und sehr kurz: EIN Feld, EIN Bild, fertig. Kein
Betreff, keine Kategorie, keine Dringlichkeitsstufe -- wer ein
Formular mit fuenf Feldern sieht, meldet den kleinen Fehler nicht,
und genau die kleinen erfaehrt sonst niemand.
DIE LEITUNG SIEHT ETWAS ANDERES: einen Eingang mit Zahlenband
(neu / in Arbeit / erledigt), drei Filtern und zwei Handgriffen --
„Ich kuemmere mich" und „Erledigt …". Zwei, nicht fuenf; eine
Zuweisung an eine Person und Prioritaeten waeren ein Ticketsystem
fuer zwei Menschen, die nebeneinander sitzen. Das Melde-Feld bleibt
auch fuer sie da, rutscht aber unter den Eingang.
Wer zumacht, schreibt einen Satz dazu -- der Melder sieht nur diesen
Satz, und ohne ihn weiss er nicht, ob etwas behoben wurde oder ob
niemand Zeit hatte. Beide Seiten bekommen eine Benachrichtigung.
UEBERNOMMEN STATT NEU ERFUNDEN:
* `dateiErkennen` aus workspace-chat.js -- EXPORTIERT, nicht
abgeschrieben. An ihr haengt die ganze Sicherheit der Uploads
(der Typ kommt aus den ersten Bytes, nicht aus Name oder
Content-Type), und eine zweite Fassung waere die, die beim
naechsten Dateiformat vergessen wird.
* Die zweigeteilte Sicht und `meldungFuer()` (gibt den Datensatz
oder null zurueck, nie true/false) aus dem vertraulichen
Meldeweg.
* Der Upload-Weg (express.raw, Text im Kopf, Ordner unter
DATEN_ORDNER, damit die Sicherungspruefung ihn findet).
DIE KACHEL BEKOMMT JEDER -- an EINER Stelle angehaengt: `bereicheFuer`
haengt sie an jede Rollenliste, statt sie in fuenf Listen
einzutragen. Genau so ist heute der Benachrichtigungs-Knopf auf 14
Seiten verschwunden. Dazu der Eintrag in rechte.js (ohne ihn
verschwindet die Kachel lautlos, `nurOffeneKacheln` filtert dagegen)
und in der Browser-Kachelliste fuer die Agentur-Rollen.
TON 44 GERECHNET, NICHT GEWAEHLT -- und dabei zweimal danebengelegen:
* Ich habe erst einen eigenen Modus in kachel-farben.mjs gebaut.
`tools/kachel-farbe-einzeln.mjs` gibt es aber seit dem 22.09. fuer
genau diesen Zweck. Meine Dopplung ist wieder weg.
* Von Hand hatte ich #bcdbff eingetragen. pruef-kachelfarben lehnte
es ab (Buntheit 0,060, verlangt sind 0,12) -- und das vorhandene
Werkzeug verteidigte es trotzdem, weil sein Abstand gut war. Ein
Werkzeug, das einen regelwidrigen Zustand haelt, weil er zufaellig
gut misst, behebt genau den Fehler nicht, fuer den es da ist.
Behoben: Zuerst die Regeln, dann der Abstand. Ergebnis #fd6401,
Abstand 0,0914 (engstes vorhandenes Paar: 0,0154).
DREI MESSFEHLER VON MIR, die wie schwere Befunde aussahen: `fetch`
verwirft den Host-Kopf (die Community kommt nur auf crew. herein),
die Community bestaetigt ihr Alter (`alter_ok`), und die Startroute
heisst /api/ich. Alle drei stehen in pruef-treff.mjs richtig.
Ein ECHTER Fehler kam dazu: support.html lud bereiche.js nicht, und
kopf.js stuerzte mit „Cannot read properties of undefined (reading
'LEITUNG')" ab -- sichtbar nur in der Browserkonsole. Und
pruef-css-klassen fand sofort, dass auch wahl.js fehlte.
Gemessen: pruef-support 45 Pruefungen, 0 Fehler (alle neun Rollen
kommen herein, jede sieht die Kachel, als Bild getarntes HTML wird
abgelehnt, eine fremde Meldung bleibt fremd, erledigt bleibt
erledigt). Dazu 24 Messungen am Bild in drei Groessen. Gruen:
pruef-kachelfarben (22), 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=202609240132" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609240132" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202609240132" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202609240132" />
|
||
<link rel="stylesheet" href="assets/css/support.css?v=202609240132" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202609240132" />
|
||
<link rel="stylesheet" href="assets/css/haus.css?v=202609240132" />
|
||
</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=202609240132" 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=202609240132" defer></script>
|
||
<script src="assets/js/nachfrage.js?v=202609240132" defer></script>
|
||
<script src="assets/js/installieren.js?v=202609240132" defer></script>
|
||
<script src="assets/js/kopf.js?v=202609240132" defer></script>
|
||
<script src="assets/js/glocke.js?v=202609240132" defer></script>
|
||
<script src="assets/js/support.js?v=202609240132" defer></script>
|
||
</body>
|
||
</html>
|