Migrate Dashboard interface patterns
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# Dashboard Interface Pattern Migration
|
||||
|
||||
This migration applies the GovOPlaN interface pattern language to the
|
||||
view-specific summary, widget library, four-column placement grid, and widget
|
||||
configuration dialog.
|
||||
|
||||
## Surface Inventory
|
||||
|
||||
| Surface | Archetype | Consequence class | Contract |
|
||||
| --- | --- | --- | --- |
|
||||
| `/dashboard` | Personal workspace | Inspect current task context | Stable loading, fallback, empty, error, and help states |
|
||||
| Summary | Metric overview | Inspect module/widget/layout state | Installed, available, placed, active View, and persistence source remain distinguishable |
|
||||
| Widget library | Capability-filtered catalogue | Add or reset placements | Permission/View filtering, search, capacity reason, drag/click parity, and reversible defaults |
|
||||
| Dashboard grid | Configurable composition | Reorder, resize, configure, or remove placement | Four-column placement contract, visible drag target, guarded draft, and no provider-data mutation |
|
||||
| Widget settings | Nested definition editor | Apply presentation/query settings | Guarded local draft, contextual field help, validation reason, reset, apply, and discard |
|
||||
|
||||
## Consequence And Availability Rules
|
||||
|
||||
- Layouts are scoped by tenant, account, and active focused View. A focused
|
||||
View changes the composition key but never grants access to widget data.
|
||||
- Configure mode edits a local draft. Save persists the complete layout using
|
||||
its revision; stale concurrent saves are rejected rather than overwritten.
|
||||
- Removing a widget affects only its placement. Reset restores the defaults
|
||||
contributed by active modules and remains reversible until Save layout.
|
||||
- Widgets are filtered by installed module, focused View surface, and declared
|
||||
scopes. Every provider still authorizes its own requests.
|
||||
- When the saved layout is unreachable, the browser or module defaults are
|
||||
clearly identified as a fallback. Saving promotes the current draft to the
|
||||
account-backed layout.
|
||||
|
||||
Backend and WebUI manifests publish matching page, summary, library, grid,
|
||||
settings, and built-in-widget surface identifiers. English and German
|
||||
catalogues cover Dashboard-owned vocabulary, contextual help resolves from
|
||||
manifest documentation, and both layout and widget-setting drafts are guarded.
|
||||
Reference in New Issue
Block a user