Files
kleiderboerse/app/templates/erfassen.html
T
StefanandClaude Opus 5 adedaa9a0d Hell/Dunkel-Umschaltung und Versionsangabe in der Fusszeile
Farbschema folgt zunächst der Systemeinstellung, lässt sich per Knopf in
der Kopfzeile umstellen und wird dann gemerkt. Bei gesperrtem Speicher
(privates Fenster) greift wieder die Systemeinstellung.

theme.js steht bewusst OHNE defer und vor dem Inhalt: es setzt die
Farbklasse, bevor gezeichnet wird. Mit defer blitzte beim Laden kurz die
helle Fassung auf. Eine eigene Datei statt eines <script>-Blocks, weil die
CSP nur script-src 'self' erlaubt - inline wäre blockiert.

Fusszeile zeigt Version oder Commit, gleiches Muster wie die Kantone-App:
die CI reicht beides als Build-Argument durch, lokal erscheint der
Build-Zeitpunkt. Der ändert sich bei jedem Neubau und zeigt damit sofort,
ob wirklich der neue Stand läuft.

Beim Ergänzen der Dunkel-Varianten hatte mein Ersetzer die eben
eingefügten dark:-Klassen selbst nochmal getroffen und daraus Paare wie
"dark:text-slate-300 dark:text-slate-600" gemacht - bereinigt.

81 Tests, alle grün. Neu darunter: die Fusszeile zeigt Tag bzw. Commit,
theme.js steht vor <body> und ohne defer, der Umschalter ist da.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GR4bNaj9GtRu57J4Niii8o
2026-08-29 23:35:35 +02:00

42 lines
1.6 KiB
HTML

{% extends "basis.html" %}
{% block titel %}Erfassen{% endblock %}
{% block inhalt %}
<h1 class="text-xl font-bold mb-4">Kleider erfassen</h1>
{# Der schnelle Weg für den Erstbestand. Bewusst zuerst: wer zwanzig Teile
hat, will nicht zwanzigmal ein Formular ausfüllen. #}
<form method="post" action="/stapel" enctype="multipart/form-data"
class="karte p-4 space-y-3">
<input type="hidden" name="csrf" value="{{ csrf }}">
<h2 class="font-semibold">Viele auf einmal</h2>
<p class="text-sm text-slate-600 dark:text-slate-300">
Erst alles mit der Kamera fotografieren, dann hier alle Fotos
zusammen auswählen. Pro Foto entsteht ein Entwurf, die Angaben
trägst du danach in Ruhe nach.
</p>
{# Ohne "capture": so lässt sich wahlweise fotografieren ODER aus der
Mediathek wählen. Mit capture ginge nur je ein Foto pro Vorgang. #}
<input class="feld py-2" type="file" name="dateien" accept="image/*" multiple required>
<button class="knopf-haupt w-full">Fotos hochladen</button>
</form>
<p class="text-center text-sm text-slate-500 dark:text-slate-400 dark:text-slate-500 my-5">oder einzeln erfassen</p>
<form method="post" action="/erfassen" enctype="multipart/form-data"
class="karte p-4 space-y-4">
<input type="hidden" name="csrf" value="{{ csrf }}">
<div>
<label class="etikett" for="fotos">Fotos</label>
<input class="feld py-2" id="fotos" type="file" name="dateien"
accept="image/*" multiple>
</div>
{% include "_felder.html" %}
<button class="knopf-haupt w-full">Speichern</button>
</form>
{% endblock %}