EIN LOCH, DAS ICH SELBST GEBAUT HABE ------------------------------------ Die Bewerbungen stehen an ihrer Karte, und das ist richtig: Man entscheidet ueber eine bestimmte Aufgabe, und ihr Text ist die halbe Auskunft. Nur steht die Karte in EINER von vierzehn Kategorien. Bewirbt sich Frida unter "Wachstum" und DogFather oeffnet wie immer "Chat-Moderation", sieht er nichts -- die Bewerbung ist da, das Brett ist offen, und trotzdem findet er sie nie. Die Benachrichtigung von heute frueh hilft, aber sie ist ein Moment: Wer sie wegwischt, hat keinen zweiten Weg mehr. Ein Brett, auf dem etwas wartet, muss das selbst sagen koennen. Jetzt steht ganz oben, ueber den Kategorie-Reitern: "Eine Bewerbung wartet auf deine Antwort: Marina · Zehn Neue fragen, wie sie hergefunden haben". Ein Tippen springt in die richtige Kategorie, zur richtigen Karte, und hebt sie zwei Sekunden hervor. DER SPRUNG STELLT AUCH DIE STUFE ZURUECK. Ohne das landet man in der richtigen Kategorie und sieht trotzdem nichts, weil der Stufenfilter die Karte gerade ausblendet -- eine Reise ins Nichts ist schlimmer als kein Knopf. ES DIENT BEIDEN SEITEN, und deshalb steht es nur einmal da: Wer entscheidet, liest "wartet auf deine Antwort"; wer sich beworben hat, liest "du hast dich beworben". Der Server schickt ohnehin jedem nur, was ihn angeht. UND WIEDER: ERST STAND DIE ABSICHT NUR IM KOMMENTAR ---------------------------------------------------- Im Kommentar stand "ES STEHT GANZ OBEN, ueber den Kategorie-Reitern". Der Code haengte es darunter -- gesehen auf dem Bildschirmfoto, nicht beim Lesen. Das ist heute das zweite Mal (nach "gleiche Mittel, gleiche Staerke" bei den Handkarten). Ein Kommentar, der eine Absicht beschreibt, erfuellt sie nicht; ich schreibe sie offenbar gern auf, bevor ich sie baue. VORHER GEMESSEN, NICHT VERMUTET ------------------------------- Rundgang als Modi, 390 px, ueber alle 27 Kacheln der Startseite -- die Liste aus den Kacheln GELESEN, nicht aufgeschrieben. Ergebnis: kein Querscrollen, keine zu kleinen Ziele, kein Text auf Text, keine Konsolenfehler. 27 von 27 sauber. Dabei sah ich im Chat einen magentafarbenen Kasten ohne Beschriftung und hielt ihn fuer kaputt. Nachgemessen mit echtem Finger (hasTouch): 44x44-Knopf, 36x36-Farbprobe, quadratisch -- und am Laptop 30x30 / 22x22, ebenfalls quadratisch. Der schmale Balken entstand nur in meinem Messaufbau (390 px OHNE Beruehrung), also in einer Lage, die kein Geraet hat. Kein Fehler, und ich habe nichts "repariert", was nicht kaputt war. GEPRUEFT -------- pruef-modi-katalog: 125 Pruefungen, 0 Fehler (vorher 116). Gemessen wird genau der Fall, um den es geht: eine Bewerbung in einer Kategorie, die gerade NICHT gewaehlt ist. Dazu der Sprung (landet auf der richtigen Karte, und dort stehen Annehmen und Ablehnen), die Daumengroesse (40 px) und der Wortlaut. MIT GEGENPROBE, und die ist der Kern: Wartet nichts, steht auch nichts da. Ohne sie bewiese alles darueber nur, dass das Band immer dasteht -- und ein Hinweis, der immer da ist, wird ueberlesen. Co-Authored-By: Claude Opus 5 <[email protected]>
152 lines
6.6 KiB
HTML
152 lines
6.6 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>Dogi-Media · 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=202609231131" />
|
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609231131" />
|
|
<link rel="stylesheet" href="assets/css/gate.css?v=202609231131" />
|
|
<link rel="stylesheet" href="assets/css/start.css?v=202609231131" />
|
|
<link rel="stylesheet" href="assets/css/material.css?v=202609231131" />
|
|
<link rel="stylesheet" href="assets/css/module.css?v=202609231131" />
|
|
<link rel="stylesheet" href="assets/css/haus.css?v=202609231131" />
|
|
</head>
|
|
<body class="start" data-ton="42" data-buehne="studio">
|
|
|
|
<div class="schleier" aria-hidden="true"></div>
|
|
|
|
<header class="kopfleiste">
|
|
<button type="button" class="zurueck-knopf" id="zurueck" hidden>
|
|
<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 Dogi</a> · Dogi-Media</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" id="haupt" aria-busy="true">
|
|
|
|
<section class="kopf-zeile">
|
|
<div>
|
|
<p class="marke" id="ober">Community</p>
|
|
<h1 class="titel">Dogi-Media</h1>
|
|
<p class="unterzeile">
|
|
Bilder und Videos zum Posten. <strong>Jedes nur einmal</strong> — wer es
|
|
nimmt, hat es; danach ist es für alle anderen weg.
|
|
</p>
|
|
</div>
|
|
</section>
|
|
|
|
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
|
|
|
|
<!-- EINSTELLEN — nur für das Team. Der Kasten steht gar nicht erst
|
|
da, wenn jemand nicht darf: Ein Formular, das beim Absenden eine
|
|
Absage bringt, ist schlimmer als keines. -->
|
|
<section class="m-neu" id="neu-block" hidden>
|
|
<h2 class="m-neu__titel">Etwas bereitstellen</h2>
|
|
<p class="m-neu__satz">
|
|
Bild oder Video aussuchen, kurz dazuschreiben, wofür es gut ist.
|
|
Sobald jemand es nimmt, verschwindet es aus der Liste.
|
|
</p>
|
|
<div class="m-neu__zeile">
|
|
<label class="feld-schild" for="m-datei">Bild oder Video</label>
|
|
<input type="file" id="m-datei" accept="image/*,video/*" />
|
|
</div>
|
|
<div class="m-neu__zeile">
|
|
<label class="feld-schild" for="m-text">Wofür ist es? (freiwillig)</label>
|
|
<textarea id="m-text" rows="2"
|
|
placeholder="z. B. „Für TikTok, passt zum Stream von gestern“"></textarea>
|
|
</div>
|
|
<!-- VON WANN BIS WANN (22.09.2026). Filipe: "welche laufen von
|
|
wan bis wann, das muss man auch machen koennen."
|
|
BEIDES FREIWILLIG: Der haeufigste Fall ist "gilt einfach".
|
|
Ein Pflichtfeld erzwaenge ein erfundenes Datum, und ein
|
|
erfundenes Datum ist schlechter als keins.
|
|
|
|
STEHT AUSSERHALB VON .m-neu__knoepfe -- das ist eine
|
|
Flex-Reihe fuer Knopf und Stand. Zwei Datumsfelder und ein
|
|
Hinweissatz darin waeren vier Flex-Kinder nebeneinander und
|
|
auf dem Handy eine Treppe. -->
|
|
<div class="m-neu__zeile m-neu__fenster">
|
|
<div class="m-neu__fenster-feld">
|
|
<label class="feld-schild" for="m-ab">Gilt ab (freiwillig)</label>
|
|
<input type="date" id="m-ab" />
|
|
</div>
|
|
<div class="m-neu__fenster-feld">
|
|
<label class="feld-schild" for="m-bis">Gilt bis (freiwillig)</label>
|
|
<input type="date" id="m-bis" />
|
|
</div>
|
|
</div>
|
|
<p class="feld-hinweis m-neu__fenster-satz">
|
|
Ohne Datum gilt es einfach — bis es jemand nimmt.
|
|
</p>
|
|
|
|
<div class="m-neu__knoepfe">
|
|
<button type="button" class="knopf knopf--klein" id="m-hoch">Bereitstellen</button>
|
|
<span class="m-neu__stand" id="m-stand" aria-live="polite"></span>
|
|
</div>
|
|
<!-- Hierhin zeichnet der gemeinsame Hochlader seinen Balken. -->
|
|
<div id="m-fortschritt" hidden></div>
|
|
</section>
|
|
|
|
<!-- DIE FREIEN ZUERST. Wer hierherkommt, will etwas holen; was schon
|
|
weg ist, interessiert danach. -->
|
|
<section class="m-liste-block">
|
|
<div class="m-kopf">
|
|
<h2 class="m-kopf__titel" id="frei-titel">Zum Mitnehmen</h2>
|
|
<p class="m-kopf__satz" id="frei-satz"></p>
|
|
<!-- KATEGORIEN (22.09.2026). Filipe: "mach kategorien welche sind
|
|
benutzt welche nicht welche sind noch offen, welche laufen
|
|
von wan bis wann."
|
|
Die Knoepfe werden im Skript gebaut, damit die Zahl daneben
|
|
aus den echten Daten kommt und nicht aus dem HTML -- eine
|
|
Zahl im Markup waere die, die beim naechsten Stueck falsch
|
|
dasteht.
|
|
|
|
DIE LEISTE IST DIE DES HAUSES (.filter mit .schritt), nicht
|
|
eine eigene. Auf dateien.html und bereich.html steht dieselbe
|
|
Reihe; eine dritte Bauart haette dasselbe anders ausgesehen
|
|
und beim naechsten Umbau nur an zwei von drei Stellen
|
|
mitgeaendert. -->
|
|
<div class="filter" id="m-kat" role="group" aria-label="Kategorie"></div>
|
|
</div>
|
|
<div class="m-raster" id="frei" aria-busy="true"></div>
|
|
</section>
|
|
|
|
<section class="m-liste-block" id="weg-block" hidden>
|
|
<div class="m-kopf">
|
|
<h2 class="m-kopf__titel">Schon benutzt</h2>
|
|
<p class="m-kopf__satz" id="weg-satz">
|
|
Damit nichts zweimal gepostet wird.
|
|
</p>
|
|
</div>
|
|
<div class="m-raster m-raster--weg" id="weg"></div>
|
|
</section>
|
|
|
|
<p class="m-laedt" id="laedt">Einen Moment …</p>
|
|
</main>
|
|
|
|
<script src="assets/js/meldung.js?v=202609231131" defer></script>
|
|
<script src="assets/js/nachfrage.js?v=202609231131" defer></script>
|
|
<script src="assets/js/hochladen.js?v=202609231131" defer></script>
|
|
<script src="assets/js/wahl.js?v=202609231131" defer></script>
|
|
<script src="assets/js/bereiche.js?v=202609231131" defer></script>
|
|
<script src="assets/js/installieren.js?v=202609231131" defer></script>
|
|
<script src="assets/js/kopf.js?v=202609231131" defer></script>
|
|
<script src="assets/js/glocke.js?v=202609231131" defer></script>
|
|
<script src="assets/js/material.js?v=202609231131" defer></script>
|
|
</body>
|
|
</html>
|