Phase 07: Admin Forms & Lists - Implementation decisions documented - Phase boundary established
3.2 KiB
3.2 KiB
Phase 7: Admin Forms & Lists - Context
Gathered: 2026-02-04 Status: Ready for planning
## Phase BoundaryYAML-driven form and list generation for the admin backend. Developers define fields.yaml and columns.yaml, the system renders corresponding forms and tables with standard widgets, filters, and validation display. RelationController-style relations and WinterCMS repeater behavior included.
Form widget styling
- Modern minimal aesthetic: clean lines, whitespace, subtle borders (Linear/Notion feel)
- Labels positioned above inputs (stacked layout)
- Sections collapsible, expanded by default
- Action buttons (Save, Cancel) at bottom of form
- Required fields indicated with red asterisk
- Help text always visible below fields
- Field width configurable via YAML (span: left, cssClass grid system) — similar to WinterCMS
- Disabled fields render as read-only appearance (normal styling, not editable)
- Multiple sections use horizontal tabs
- Dark mode supported with user toggle in preferences
Relations and repeaters
- Relation fields use RelationController-style behavior: modal-based, rich list/form within, highly customizable through YAML
- Repeater fields match WinterCMS behavior: inline add/remove, drag handles for reorder, collapsible items, configurable min/max
List presentation
- Table density user-selectable (comfortable/compact toggle)
- Row click navigates to edit/preview screen (configurable)
- Bulk actions toolbar above list: Create, Delete Selected, etc. — operates on checkbox-selected records
- Traditional pagination (page numbers, explicit navigation)
- Columns auto-size by content or explicit YAML width; user can drag to resize
- Row reordering is separate feature controlled by model trait
Validation UX
- Validation on submit only (no real-time or on-blur)
- Error messages inline under each invalid field
- Auto-scroll to first error with highlight/pulse animation
- Two save actions: "Save" (stay on form + flash), "Save and close" (redirect to list + flash)
YAML syntax design
- WinterCMS-inspired but improved — cleaner patterns, better defaults
- Conditional visibility via
triggerproperty (WinterCMS style) - Custom widgets registered via plugin boot lifecycle (explicit, not convention)
- YAML anchors/aliases supported for field reuse (standard YAML mixins)
- Validation rules defined in Scala model only (type-safe, not in YAML)
Claude's Discretion
- Specific animation/transition implementations
- Exact color palette within "modern minimal" aesthetic
- Internal component architecture
- Widget rendering optimizations
- Forms and lists should feel like WinterCMS to experienced users, but with cleaner visuals
- RelationController is important — rich modal-based relation management, not simple dropdowns
- Repeater must match WinterCMS exactly: collapse/expand items, drag reorder, add/remove inline
- Column resizing like Excel — drag borders, but auto-fit by default
None — discussion stayed within phase scope
Phase: 07-admin-forms-lists Context gathered: 2026-02-04