Neu: Antwortmöglichkeiten als Liste einfügen (Text, Excel, CSV) und alle löschen #45

Merged
thiel merged 1 commit from optimport into main 2026-10-09 10:40:36 +00:00
Owner

Wunsch von Markus: Antwortmöglichkeiten als ganze Liste einfügen (eine Zeile = ein Eintrag), dazu ein Import-Dialog mit Excel/CSV und ein Knopf „Alle löschen“ – für Einfach-/Mehrfachauswahl, Dropdown, Rangfolge und Matrix.

Einfügen direkt in eine Option

  • Mehrzeiliger Text (oder waagrecht aus Excel kopierte Zellen) wird auf eigene Einträge verteilt. Bisher landete alles in einer Option („Eintrag 1 Eintrag 2 Eintrag 3“).
  • Steht der Cursor in einer leeren Option oder einer Vorgabe („Option 1“), wird sie ersetzt; sonst werden die Einträge dahinter eingefügt.
  • Aufzählungszeichen (•, -, –, *), einheitliche Nummerierung („1.“, „2)“), Leerzeilen und Doppelte fallen weg.
  • „3D-Druck“ bleibt erhalten: Nummerierung wird nur entfernt, wenn alle Zeilen nummeriert sind.
  • Bei mehreren Spalten aus Excel zählt die erste Zelle.

„Liste einfügen“ (Dialog)

  • Hineinkopieren oder Excel (.xlsx) bzw. CSV/TSV hochladen. Bei mehreren Spalten wählt man die Spalte; die Kopfzeile lässt sich überspringen.
  • Anhängen oder ersetzen, mit Vorschau. Sind nur Vorgaben wie „Option 1/2“ vorhanden, ist „ersetzen“ voreingestellt.
  • Beim Ersetzen behalten gleich benannte Optionen ihre ID und Einstellungen (Plätze, Punkte), sodass Antworten zuordenbar bleiben.
  • Die Datei wird serverseitig gelesen (POST /tools/table, exceljs, höchstens 3 MB / 5000 Zeilen / 50 Spalten) und nicht gespeichert. Für .xls gibt es einen verständlichen Hinweis.

„Alle löschen“: leert die Liste (bei mehr als drei Einträgen mit Rückfrage), Rückgängig per Strg/⌘+Z.

Doku: docs/07, Handbuch (Fragen und Optionen) und PDF.

Tests

  • Builder:
    • Alle löschen, mehrzeilig einfügen, einzeiliges Einfügen bleibt normal
    • Dialog: Ersetzen mit ID-Erhalt
    • parseList (Word, Aufzählung, Nummerierung, Excel waagrecht/mehrspaltig)
  • API: xlsx, CSV mit Anführungszeichen/BOM, .xls, defekte Datei.
  • E2E (Chromium, WebKit): Matrix-Zeilen aus CSV mit Spaltenwahl, Spalten per Einfügen, Alle löschen.

🤖 Generated with Claude Code

https://claude.ai/code/session_015z57Agxa5kZg6szB3zFN3x

Wunsch von Markus: Antwortmöglichkeiten als ganze Liste einfügen (eine Zeile = ein Eintrag), dazu ein Import-Dialog mit Excel/CSV und ein Knopf „Alle löschen“ – für Einfach-/Mehrfachauswahl, Dropdown, Rangfolge und Matrix. **Einfügen direkt in eine Option** - Mehrzeiliger Text (oder waagrecht aus Excel kopierte Zellen) wird auf eigene Einträge verteilt. Bisher landete alles in einer Option („Eintrag 1 Eintrag 2 Eintrag 3“). - Steht der Cursor in einer leeren Option oder einer Vorgabe („Option 1“), wird sie ersetzt; sonst werden die Einträge dahinter eingefügt. - Aufzählungszeichen (•, -, –, *), einheitliche Nummerierung („1.“, „2)“), Leerzeilen und Doppelte fallen weg. - „3D-Druck“ bleibt erhalten: Nummerierung wird nur entfernt, wenn alle Zeilen nummeriert sind. - Bei mehreren Spalten aus Excel zählt die erste Zelle. **„Liste einfügen“ (Dialog)** - Hineinkopieren oder Excel (.xlsx) bzw. CSV/TSV hochladen. Bei mehreren Spalten wählt man die Spalte; die Kopfzeile lässt sich überspringen. - Anhängen oder ersetzen, mit Vorschau. Sind nur Vorgaben wie „Option 1/2“ vorhanden, ist „ersetzen“ voreingestellt. - Beim Ersetzen behalten gleich benannte Optionen ihre ID und Einstellungen (Plätze, Punkte), sodass Antworten zuordenbar bleiben. - Die Datei wird serverseitig gelesen (`POST /tools/table`, exceljs, höchstens 3 MB / 5000 Zeilen / 50 Spalten) und nicht gespeichert. Für .xls gibt es einen verständlichen Hinweis. **„Alle löschen“:** leert die Liste (bei mehr als drei Einträgen mit Rückfrage), Rückgängig per Strg/⌘+Z. **Doku:** docs/07, Handbuch (Fragen und Optionen) und PDF. **Tests** - Builder: - Alle löschen, mehrzeilig einfügen, einzeiliges Einfügen bleibt normal - Dialog: Ersetzen mit ID-Erhalt - `parseList` (Word, Aufzählung, Nummerierung, Excel waagrecht/mehrspaltig) - API: xlsx, CSV mit Anführungszeichen/BOM, .xls, defekte Datei. - E2E (Chromium, WebKit): Matrix-Zeilen aus CSV mit Spaltenwahl, Spalten per Einfügen, Alle löschen. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_015z57Agxa5kZg6szB3zFN3x
Neu: Antwortmöglichkeiten als Liste einfügen (Text, Excel, CSV) und alle löschen
Some checks failed
check / verify (pull_request) Failing after 36s
9e0258f1f1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015z57Agxa5kZg6szB3zFN3x
thiel force-pushed optimport from 9e0258f1f1
Some checks failed
check / verify (pull_request) Failing after 36s
to 5264df1b67
All checks were successful
check / verify (pull_request) Successful in 12m49s
2026-10-09 10:27:43 +00:00
Compare
thiel merged commit 072145757b into main 2026-10-09 10:40:36 +00:00
thiel deleted branch optimport 2026-10-09 10:40:36 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
thiel/fobu!45
No description provided.