Idee: repeater_light Value fuer YForm (inkl. optional TinyMCE/CKE)
Motivation
Fuer viele YForm-Anwendungsfaelle brauchen wir wiederholbare Mini-Strukturen (z. B. FAQ, Linklisten, Team-Items), ohne die volle Komplexitaet eines Flex-Repeaters.
Ziel ist ein schlanker, klar definierter Value-Typ:
- einfach zu konfigurieren
- robust im Backend
- stabil speicherbar als JSON
- gut auswertbar im Frontend
Zielbild
repeater_light speichert ein JSON-Array in einem Feld (text/longtext) und bietet eine kleine, kontrollierte Repeater-UI:
- add / remove / reorder
- optionale duplizieren-Funktion
- feste Sub-Feldtypen
- klare Validierung je Zeile
MVP (Phase 1)
- Kernfunktionen
- Zeilen hinzufuegen, loeschen, sortieren
- optional
min_items, max_items
- optional
collapsed Darstellung
- Sub-Feldtypen (initial)
text
textarea
select
checkbox
number
- Speicherung
- JSON-Array im Value-Feld
- stabile Schluessel je Zeile
- optional Versionsmarker fuer spaetere Migrationen
- Validierung
- required/type checks pro Sub-Feld
- strukturierte Fehlermeldungen mit Zeilenbezug
TinyMCE/CKE im Repeater Light (optional, aber gewuenscht)
Richtext in Repeater-Zeilen ist redaktionell sehr wertvoll und soll als optionales Feature moeglich sein, mit klaren Leitplanken:
- Nicht Default, explizit aktivieren
- z. B.
editor: tinymce oder editor: cke5 am Sub-Feld
- Performance/Komplexitaet begrenzen
- pro Zeile initial max. ein Richtext-Feld
- harte Zeilenbegrenzung bei aktivem Editor (z. B. max 20)
- Stabiler Lifecycle
- lazy init nur bei sichtbarer/geoeffneter Zeile
- sauberes destroy/re-init bei add, clone, sort, remove
- eindeutige IDs je Zeile/Instanz
- Save-Sicherheit
- vor Save immer Editorinhalt ins zugrunde liegende Feld synchronisieren
- Fallback
- wenn Editor nicht verfuegbar/fehlerhaft: automatischer Fallback auf normale
textarea
Bewusst out of scope (MVP)
- nested repeater
- komplexe Condition-Engine
- vollumfaengliche Flex-Repeater-Features
Akzeptanzkriterien (v1)
- Ein einfaches FAQ-Setup (
question, answer) kann als repeater_light im YForm-Formular gepflegt und als JSON gespeichert werden.
- Sortierung und Loeschen bleiben nach Save/Reload stabil.
- Validierungsfehler zeigen Zeile + Feld eindeutig.
- Optional aktivierter TinyMCE/CKE funktioniert bei Add/Sort/Delete ohne verlorene Inhalte.
- Bei Editor-Problemen bleibt das Feld als normale
textarea bedienbar.
Nutzen
- deutlich weniger Boilerplate fuer wiederholbare Kleinstrukturen
- bessere Redakteurs-UX in YForm
- technisch kontrollierter Mittelweg zwischen einfachem Value und Voll-Repeater
Vorschlag fuer Label/Milestone
enhancement
idea
- Milestone:
9.2.0 (oder spaeter, je nach Priorisierung)
Idee:
repeater_lightValue fuer YForm (inkl. optional TinyMCE/CKE)Motivation
Fuer viele YForm-Anwendungsfaelle brauchen wir wiederholbare Mini-Strukturen (z. B. FAQ, Linklisten, Team-Items), ohne die volle Komplexitaet eines Flex-Repeaters.
Ziel ist ein schlanker, klar definierter Value-Typ:
Zielbild
repeater_lightspeichert ein JSON-Array in einem Feld (text/longtext) und bietet eine kleine, kontrollierte Repeater-UI:MVP (Phase 1)
min_items,max_itemscollapsedDarstellungtexttextareaselectcheckboxnumberTinyMCE/CKE im Repeater Light (optional, aber gewuenscht)
Richtext in Repeater-Zeilen ist redaktionell sehr wertvoll und soll als optionales Feature moeglich sein, mit klaren Leitplanken:
editor: tinymceodereditor: cke5am Sub-FeldtextareaBewusst out of scope (MVP)
Akzeptanzkriterien (v1)
question,answer) kann alsrepeater_lightim YForm-Formular gepflegt und als JSON gespeichert werden.textareabedienbar.Nutzen
Vorschlag fuer Label/Milestone
enhancementidea9.2.0(oder spaeter, je nach Priorisierung)