Adopt the shared interface pattern language
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# Projects Interface Pattern Migration
|
||||
|
||||
Projects uses a full-height list-detail workspace. It owns native portfolio,
|
||||
project, and milestone context; Tasks and Tickets own actionable work,
|
||||
Connectors owns OpenProject transport, and optional integrations remain
|
||||
capability-based.
|
||||
|
||||
| Surface | Task and archetype | Consequence and state contract |
|
||||
| --- | --- | --- |
|
||||
| `/projects` catalogue | Search/filter and select a planning object | Loading, empty, failed, filtered, and selected states retain the list context. Restricted records are removed by backend authorization rather than cosmetically hidden. |
|
||||
| Object detail | Inspect status, dates, ownership/membership evidence, outcomes, benefits, dependencies, and links | The selected identity, key, state, and revision remain visible while detail changes. |
|
||||
| Create/edit dialog | Adaptive create/edit | Core Dialog supplies focus containment and return. Stable key, state, visibility, parent, dates, and change reason have labelled controls; save errors remain attached to the dialog. |
|
||||
| Revisioned save | Consequential corrective action | Every successful save creates immutable revision and lifecycle evidence under optimistic concurrency. The required change reason explains the new record. |
|
||||
|
||||
Creating and editing require the Projects write permission. Restricted
|
||||
visibility changes who may read an object, so its consequence is explained at
|
||||
the field and enforced by the backend ACL. The workspace reflows to list then
|
||||
detail at narrow widths, preserves semantic button/list behavior, and uses Core
|
||||
buttons, icon buttons, dialog, alerts, loading, status, field labels, scrolling,
|
||||
and documentation help.
|
||||
|
||||
Verification:
|
||||
|
||||
- `npm run test:interface-pattern`
|
||||
- Projects service, migration, and manifest tests
|
||||
- the Core TypeScript graph, structural localization audit, theme check, module
|
||||
permutations, and full-product bundle budget
|
||||
Reference in New Issue
Block a user