Filipe: "ich will da unterkategorien die man auf und zu klappen kann,
so wie heute gestern, diese woche, diesen monate, über ein monat,
über 6 monate, über ein jahr."
DAS IST DIE BESSERE ANTWORT AUF DIE LANGEN LISTEN als die Zahl von
gestern. Zwoelf ist willkuerlich; eine Gliederung nach Alter
beantwortet die Frage, die man an so eine Liste wirklich stellt --
was ist neu?
DIE ERSTEN VIER STUFEN SIND KALENDERBEZOGEN, die letzten drei
altersbezogen:
Heute, Gestern der Kalendertag
Diese Woche seit MONTAG -- am Dienstag ist der Freitag
davor nicht "diese Woche"
Dieser Monat seit dem Ersten
Ueber einen Monat der Abstand, weil "Mai" niemandem sagt,
Ueber sechs Monate wie lange das her ist
Ueber ein Jahr
Das klingt uneinheitlich und ist genau richtig.
DIE NEUESTE GRUPPE STEHT OFFEN, die aelteren zu. Wer die Seite
aufmacht, will sehen was neu ist -- und alles Aeltere ist sichtbar
VORHANDEN, ohne den Weg zu verstellen. Die eigene Wahl gewinnt und
wird gemerkt, je Gruppe und je Spalte.
EINE LEERE STUFE ERSCHEINT NICHT. Sieben leere Ueberschriften waeren
schlimmer als eine lange Liste. Und gegliedert wird erst UEBER zwoelf
Eintraegen -- darunter waeren es sieben Ueberschriften fuer fuenf
Karten.
Die Zwoelfergrenze von gestern bleibt, gilt aber jetzt JE GRUPPE: Auch
"Ueber ein Jahr" kann dreihundert Eintraege haben, und dann hilft die
Gliederung allein nicht.
GERECHNET WIRD IN ORTSZEIT (window.heuteLokal), nicht in UTC. Ein
Eintrag von gestern 23:40 waere in UTC schon heute und stuende unter
"Heute", waehrend das Datum daneben gestern sagt.
ZWEI DINGE NACHGESEHEN STATT GERATEN:
abschnittKlappbar nimmt als vierten Wert ein BOOLEAN (zuVorgabe),
kein Objekt. Ich hatte "{ offen: ... }" angenommen; beim Nachsehen
in kopf.js stand etwas anderes da.
Jede Gruppe braucht einen eigenen Merker. Ohne ihn teilten sich
"Heute bei DogFather" und "Heute bei HasiDog" denselben Zustand,
und wer die eine zuklappt, klappt die andere mit.
Gemessen mit Eintraegen ueber alle sieben Stufen: 10 Messungen,
0 Befunde -- Reihenfolge, Zahlen, offen/zu, Klapp-Pfeil, kein
seitlicher Ueberstand, und ein Tipp macht eine zugeklappte Gruppe
wirklich auf. pruef-highlights 31, pruef-galerie und
pruef-css-klassen in Ordnung.
NOCH OFFEN -- screen1: "Screenshots oder Kurzschnitte reinposten"
braucht eine Route, die eine Datei an einen EINTRAG haengt. Die gibt
es heute nicht: workspace-video.js legt Coverbilder beim Einlesen
eines TikTok-Links an, workspace-dateien.js laedt hoch, aber ohne
eintrag_id. Das ist ein eigener Brocken und kein Nebenbei.
Co-Authored-By: Claude Opus 5 <[email protected]>
122 lines
5.3 KiB
HTML
122 lines
5.3 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>Anfrage · Das Rudel</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=202609240006" />
|
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609240006" />
|
|
<link rel="stylesheet" href="assets/css/gate.css?v=202609240006" />
|
|
<link rel="stylesheet" href="assets/css/start.css?v=202609240006" />
|
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609240006" />
|
|
<link rel="stylesheet" href="assets/css/bereich.css?v=202609240006" />
|
|
<link rel="stylesheet" href="assets/css/treff.css?v=202609240006" />
|
|
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609240006" />
|
|
<link rel="stylesheet" href="assets/css/module.css?v=202609240006" />
|
|
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
|
|
<link rel="stylesheet" href="assets/css/haus.css?v=202609240006" />
|
|
</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">Das Rudel</a> · <span id="marke-was">Anfrage</span></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">
|
|
|
|
<!-- ==================================================================
|
|
DIE ANFRAGE AUS DER COMMUNITY (17.09.2026)
|
|
|
|
Filipe: „ich will dass die leute sich da anonym bei mir melden
|
|
können und eine anfrage machen können. ich will dass es
|
|
aber profissionel gemacht ist bitte wie ein fragebogen."
|
|
|
|
VERTRAULICH, NICHT NAMENLOS - seine Entscheidung. Es gibt keine
|
|
Selbstanmeldung im Rudel; jeder Zugang kommt von DogFather selbst.
|
|
Eine wirklich namenlose Anfrage wäre also nicht anonymer, sondern
|
|
nur schlechter: Man könnte niemandem antworten, und aus einer
|
|
Anfrage würde nie ein Gespräch.
|
|
|
|
„Anonym" heißt hier deshalb: NIEMAND AUS DER COMMUNITY SIEHT SIE.
|
|
Nicht die anderen Mitglieder, nicht die Modis - nur DogFather und
|
|
die rechte Hand. Und das steht auf dieser Seite, bevor jemand
|
|
anfängt zu tippen, statt im Kleingedruckten darunter.
|
|
============================================================== -->
|
|
|
|
<section class="kopf-zeile">
|
|
<div>
|
|
<p class="marke">Mitmachen</p>
|
|
<!-- DER NAME DER ROLLE STEHT NICHT IN DIESER DATEI.
|
|
|
|
Sie ist ohne Anmeldung aus dem offenen Netz lesbar (gemessen
|
|
am 17.09.2026: jede Datei unter /workspace/ antwortet mit
|
|
200). Der Server schickt das Wort in seiner Antwort mit --
|
|
dieselbe Regel wie bei den Rudel-Regeln und im Chat.
|
|
|
|
Was hier steht, ist die ehrliche Ueberschrift, falls die
|
|
Antwort ausbleibt: eine Anfrage ist es so oder so. -->
|
|
<h1 class="titel" id="titel">Anfrage stellen</h1>
|
|
<p class="unterzeile">
|
|
Ein paar Fragen - ehrlich beantwortet ist mehr wert als
|
|
vollständig. Du kannst zwischendurch aufhören und später
|
|
weitermachen: Deine Antworten bleiben so lange in diesem
|
|
Browser. Zu uns kommen sie erst, wenn du abschickst.
|
|
</p>
|
|
</div>
|
|
</section>
|
|
|
|
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
|
|
|
|
<p class="leise" id="ladezeile">einen Moment …</p>
|
|
|
|
<!-- Der Stand, wenn schon eine Anfrage vorliegt (oder eine Sperrfrist
|
|
läuft). Steht ganz oben: Wer hier landet und schon geschickt hat,
|
|
will als Erstes wissen, was daraus wurde - nicht das Formular
|
|
noch einmal sehen. -->
|
|
<section class="bw-stand" id="stand" hidden></section>
|
|
|
|
<form class="bw-bogen" id="bogen" hidden novalidate>
|
|
<div id="gruppen"></div>
|
|
|
|
<!-- WER DAS LIEST, steht direkt über dem Absenden-Knopf und nicht
|
|
nur oben auf der Seite. Wer hier unten ankommt, hat oben zehn
|
|
Minuten hinter sich. -->
|
|
<p class="bw-wer-liest" id="wer-liest"></p>
|
|
|
|
<div class="bw-abschluss">
|
|
<button type="submit" class="knopf" id="abschicken">Anfrage abschicken</button>
|
|
<a class="schritt" href="bereich.html?b=mitmachen">Doch nicht</a>
|
|
</div>
|
|
</form>
|
|
|
|
</main>
|
|
|
|
<!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. -->
|
|
<script src="assets/js/meldung.js?v=202609240006" defer></script>
|
|
<script src="assets/js/nachfrage.js?v=202609240006" defer></script>
|
|
|
|
<script src="assets/js/wahl.js?v=202609240006" defer></script>
|
|
<script src="assets/js/bereiche.js?v=202609240006" defer></script>
|
|
<script src="assets/js/installieren.js?v=202609240006" defer></script>
|
|
<script src="assets/js/kopf.js?v=202609240006" defer></script>
|
|
<script src="assets/js/auskunft.js?v=202609240006" defer></script>
|
|
<script src="assets/js/bewerben.js?v=202609240006" defer></script>
|
|
</body>
|
|
</html>
|