feat(fullstack): Replace TITLE_BODY element with rich text editor

This commit is contained in:
2025-12-21 17:59:53 +01:00
parent 54570fae4f
commit 374c8d8905
11 changed files with 1838 additions and 1054 deletions

View File

@@ -99,7 +99,7 @@ Application Form
└── Form Elements (FormElement)
├── id (UUID - generated by backend)
├── reference (string - custom key like "art_der_massnahme")
├── type (SELECT, CHECKBOX, RADIOBUTTON, TEXTFIELD, TEXTAREA, SWITCH, TITLE_BODY_TEXTFIELDS, DATE)
├── type (SELECT, CHECKBOX, RADIOBUTTON, TEXTFIELD, TEXTAREA, SWITCH, RICH_TEXT, DATE)
├── title, description
├── options (FormOption[])
│ ├── value, label
@@ -743,7 +743,7 @@ act -n
- `GET /application-forms/{id}/html`
- `GET /application-forms/{id}/pdf`
- Verify these render correctly (with saved values):
- `TEXTFIELD`, `TEXTAREA`, `DATE`, `TITLE_BODY_TEXTFIELDS`
- `TEXTFIELD`, `TEXTAREA`, `DATE`, `RICH_TEXT`
- `SELECT`, `RADIOBUTTON`, `CHECKBOX`, `SWITCH`
- If you changed backend filtering or templating, ensure:
- Template sections (`isTemplate=true`) remain excluded from export
@@ -757,6 +757,9 @@ act -n
11. **Clean Code: order functions by abstraction (top-down, like a book)**
- Put the highest-level, most readable entry points first (public API / primary flows), then progressively lower-level helpers below.
- Keep functions at the same level of abstraction grouped together; details should live “later” (below) so the file reads top-to-bottom without jumping around.
12. **No hardcoded UI strings** (i18n)
- Never hardcode user-facing text in Vue components/composables.
- Always add UI strings to `legalconsenthub/i18n/locales/de.json` and `legalconsenthub/i18n/locales/en.json` and reference them via `$t()` / `useI18n()`.
---