feat(drawing): Vorschaubilder und ein Zeichenbrett, das zur Oberfläche passt
Vorschaubilder entstehen sonst serverseitig aus den hochgeladenen Bytes – bei
einer Zeichnung steht dort JSON, daraus wird ohne Browser kein Bild. Wer sie
gerade bearbeitet, hat aber genau den Browser, der sie ohnehin zeichnet.
Neu: POST /api/v1/files/{id}/thumbnail. Der Editor schickt nach dem Speichern
ein PNG hinterher.
Den Bytes wird dabei nicht geglaubt: Sie werden nicht abgelegt, sondern durch
denselben Weg geschickt wie jedes andere Vorschaubild – dekodieren,
verkleinern, neu kodieren. Danach ist es mit Sicherheit ein Bild und hat die
übliche Grösse; nichts anderes kann im thumbs-Bereich landen. Dazu Schreibrecht
auf die Datei: Wer sie nicht ändern darf, bestimmt auch nicht, wie sie in der
Liste aussieht.
Das Hochladen läuft nach dem Speichern und ohne darauf zu warten. Ein
fehlgeschlagenes Vorschaubild ist ein Schönheitsfehler, kein Grund, das
Speichern scheitern zu lassen – und bleibt deshalb stumm.
Politur am Zeichenbrett: dunkles Thema (ein weisses Brett in dunkler Oberfläche
war der auffälligste Bruch), „Unsaved" als Marke statt eines Punktes hinter dem
Namen, Strg+S, Dateisymbol und Name ohne Endung.
„Open" und „Save to…" sind aus. Beide gehen am Browser vorbei: „Open" ersetzte
den Inhalt dieser Zeichnung durch eine fremde Datei, „Save to…" schriebe eine
zweite Fassung in den Download-Ordner, die niemand wiederfindet.
Selbsttest 12 → 18 Prüfungen, darunter die beiden Ablehnungen (kein Bild → 400,
fremder Typ → 415).
Geprüft: go build/vet sauber, alle Go-Pakete grün, 261 Prüfungen der acht
Selbsttest-Suiten grün, 53 Vitest-Tests, tsc sauber.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2e1eaf9cbf
commit
dd68bc594d
6 files changed
+277
-3
No files matched your search
+51
@@ -1634,6 +1634,57 @@ ist, muss sie koennen, was Dateien koennen.
|
||||
- [x] Zeichnung im Gruppenordner
|
||||
- [x] Excalifont wird vom eigenen Server ausgeliefert
|
||||
|
||||
### Vorschaubild und Politur (29.09.2026)
|
||||
|
||||
**Vorschaubilder entstehen sonst serverseitig** aus den hochgeladenen Bytes –
|
||||
bei einer Zeichnung steht dort JSON, daraus wird ohne Browser kein Bild. Wer
|
||||
sie gerade bearbeitet, hat aber den Browser, der sie ohnehin zeichnet.
|
||||
|
||||
Neu: `POST /api/v1/files/{id}/thumbnail`. Nach dem Speichern schickt der Editor
|
||||
ein PNG hinterher.
|
||||
|
||||
> **Den Bytes wird nicht geglaubt.** Sie werden nicht abgelegt, sondern durch
|
||||
> denselben Weg geschickt wie jedes andere Vorschaubild – dekodieren,
|
||||
> verkleinern, neu kodieren. Danach ist es mit Sicherheit ein Bild und hat die
|
||||
> uebliche Groesse; nichts anderes kann im `thumbs`-Bereich landen. Dazu
|
||||
> Schreibrecht auf die Datei: Wer sie nicht aendern darf, bestimmt auch nicht,
|
||||
> wie sie in der Liste aussieht.
|
||||
|
||||
Das Hochladen laeuft **nach** dem Speichern und ohne darauf zu warten. Ein
|
||||
fehlgeschlagenes Vorschaubild ist ein Schoenheitsfehler, kein Grund, das
|
||||
Speichern scheitern zu lassen – und bleibt deshalb auch stumm.
|
||||
|
||||
### Was am Zeichenbrett hueebscher wurde
|
||||
|
||||
* **Dunkles Thema.** Ein weisses Zeichenbrett in einer dunklen Oberflaeche war
|
||||
der auffaelligste Bruch. Umschalten geht weiterhin im Menue – fuer einen
|
||||
Ausdruck ist Hell die bessere Wahl.
|
||||
* **„Unsaved" als Marke** statt eines Punktes hinter dem Namen. Das Uebersehene
|
||||
war hier die ungespeicherte Arbeit.
|
||||
* **Strg+S / Cmd+S** speichert.
|
||||
* Dateisymbol und Name ohne die Endung in der Kopfzeile.
|
||||
* **„Open" und „Save to…" sind aus.** Beide gehen am Browser vorbei: „Open"
|
||||
ersetzte den Inhalt dieser Zeichnung durch eine fremde Datei, „Save to…"
|
||||
schriebe eine zweite Fassung in den Download-Ordner, die niemand
|
||||
wiederfindet. In Aether liegt die Datei da, wo sie liegt.
|
||||
|
||||
- [x] Vorschaubild setzen (204), Liste weiss davon, laesst sich abrufen
|
||||
- [x] Was kein Bild ist -> 400. Fremder Typ -> 415.
|
||||
- [ ] Zeichnung speichern -> nach kurzer Zeit zeigt die Kachel das Bild 🔎
|
||||
- [ ] Zeichnung aendern und neu speichern -> das Bild zieht nach
|
||||
- [ ] Strg+S speichert, „Unsaved" verschwindet
|
||||
|
||||
### Warum Excalidraw und nicht tldraw
|
||||
|
||||
tldraw sieht besser aus und ist angenehmer zu bedienen – aber es ist **nicht
|
||||
quelloffen**: proprietaere Lizenz, Wasserzeichen, und Produktivbetrieb nur mit
|
||||
bezahlter Lizenz. Fuer eine selbst betriebene Cloud, die laufen soll, ohne dass
|
||||
jemand jaehrlich etwas verlaengert, faellt es damit aus.
|
||||
|
||||
Excalidraw ist MIT. draw.io waere die Alternative (Apache-2.0), zielt aber auf
|
||||
Flussdiagramme und UML statt auf freies Zeichnen – und bringt eine deutlich
|
||||
schwerere Oberflaeche mit.
|
||||
|
||||
### Beim zweiten Oeffnen blieb es leer (29.09.2026)
|
||||
|
||||
Eine Zeichnung liess sich anlegen und bearbeiten – **beim zweiten Oeffnen**
|
||||
|
||||
Reference in new issue
Block a user