Phase 07: Admin Forms & Lists - Implementation decisions documented - Phase boundary established
82 lines
3.2 KiB
Markdown
82 lines
3.2 KiB
Markdown
# Phase 7: Admin Forms & Lists - Context
|
|
|
|
**Gathered:** 2026-02-04
|
|
**Status:** Ready for planning
|
|
|
|
<domain>
|
|
## Phase Boundary
|
|
|
|
YAML-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.
|
|
|
|
</domain>
|
|
|
|
<decisions>
|
|
## Implementation Decisions
|
|
|
|
### 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 `trigger` property (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
|
|
|
|
</decisions>
|
|
|
|
<specifics>
|
|
## Specific Ideas
|
|
|
|
- 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
|
|
|
|
</specifics>
|
|
|
|
<deferred>
|
|
## Deferred Ideas
|
|
|
|
None — discussion stayed within phase scope
|
|
|
|
</deferred>
|
|
|
|
---
|
|
|
|
*Phase: 07-admin-forms-lists*
|
|
*Context gathered: 2026-02-04*
|