{# Das Antwortformular einer Meldung, für beide Türen dieselbe. **Warum es das gibt.** Bis zum 10.09.2026 stand es zweimal: im Bewohnerportal (`bewohner/meldung_detail.html`) mit Datei, Vorschau und fünf Feldern, auf der Verfolgungsseite (`bausteine/verlauf.html`) als einzeiliges Textfeld mit «Senden». Der Auftraggeber hat beide Seiten nebeneinandergelegt: «Und die Ansichten sehen auch unterschiedlich aus.» Der Verlauf darüber war am Vortag zusammengeführt worden, das Formular darunter nicht. Es waren nicht zwei Anstriche derselben Sache, sondern zwei Formulare: verschiedene Wortlaute, verschiedene Textlängen (5 000 gegen 10 000), das eine mit Pflichtfeld, das andere ohne, Datei und Vorschau nur auf einer Seite. **Die Datei gibt es jetzt auf beiden Wegen**, und das ist keine neue Öffnung. Der Server nimmt sie über den Verfolgungstoken längst an (`POST /m-foto/` und dahinter `/intern/portal/anhang/`): dieselbe Annahme, dieselbe Typprüfung aus den Magic Bytes, derselbe Virenscan. Nur die Verfolgungsseite bot es nicht an. Dazu kommt, dass der schwächere Nachweis es längst darf: Der Token am QR-Aushang hängt im Treppenhaus und ist nicht personengebunden, während der Verfolgungstoken 256 Bit hat, per Mail an genau den Melder geht und nach 14 Tagen abläuft. Erwartet im Kontext: - `antwort_ziel` — Ziel des Formulars - `antwort_vorschau_ziel` — dasselbe Ziel mit `?vorschau=1` - `entwurf` — der bisherige Text, oder leer - `vorschau` — wahr, wenn die Vorschau angezeigt werden soll - `max_mb`, `max_zeichen` — die Grenzen, die der Server durchsetzt **Die Vorschau steht ÜBER dem Feld, nicht darunter.** Sie beantwortet die Frage «wird das so, wie ich es meine?», und die stellt man, bevor man weiterschreibt. Darunter wäre sie hinter dem Knopf versteckt, den man dann schon gedrückt hat. **Der Hauptknopf steht ZUERST im Markup**, und das ist kein Layoutzufall: Der erste `submit` eines Formulars ist der Vorgabeknopf, den ein Browser bei Eingabetaste auslöst. Stünde «Vorschau» davor, landete ein Absender dort, der abschicken wollte. **Kein `required` am Textfeld.** Es stand auf der Verfolgungsseite und verbot damit «hier ist das Foto» ohne Begleittext. Dass nicht beides leer sein darf, prüft der Server: Ein Browser-Attribut ist eine Bitte, und `maxlength` war auf derselben Seite die zweite. #} {% import "bausteine/bausatz.html" as b %}
{%- if vorschau %}

So wird Ihre Nachricht aussehen

{{ entwurf|formatiert }}
{%- endif %} {#- Der Entwurf steht wieder im Feld. Ohne ihn wäre die Vorschau ein Weg, der den eigenen Text vernichtet. -#} {% call b.feld("Ihre Nachricht an die Verwaltung", "antwort-text") %}{% endcall %} {% include "bausteine/formathilfe.html" %} {% call b.feld("Foto oder Datei", "antwort-datei", "(freiwillig, höchstens " ~ max_mb ~ " MB)") %}{% endcall %} {#- «Antwort senden», nicht «Absenden» oder «Senden»: Ein Knopf trägt Verb UND Gegenstand (`docs/gestaltung.md`, Kapitel 7). Die Verfolgungsseite hiess bis zum 10.09.2026 nur «Senden». **Der zweite Knopf hängt sein Ziel selbst an** (`formaction` mit `?vorschau=1`). Ein verstecktes Feld täte es nicht: Die Antwort auf «ist das eine Vorschau?» muss vor dem Zerlegen des Rumpfs feststehen, weil davon der Bremstopf abhängt. -#}
{{ b.knopf("Antwort senden", "haupt") }} {{ b.knopf("Vorschau", "zweit", ziel=antwort_vorschau_ziel) }}