PH1.5 — Web shared UI: Optimus wrappers, pipes, view-model types, generic admin CRUD, store slice pattern #13
Labels
No labels
ready-for-agent
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Blocks
Depends on
#17 T-B — Ingest & projector: FleetPulse ingest, pure presence projector, P12, heatmap on P06
patrick/Polaris
#21 T-F — Schedule viewer: Gantt and map components, read-only plan board P02, /dev/fixtures route
patrick/Polaris
#22 T-G — Scorer & dashboard v1: reliability scorer, score handler, adjusted-confidence hook, dashboard P01
patrick/Polaris
#30 PH4.2 — Today page P09, mobile-first
patrick/Polaris
#43 PH6.2 — Notifications: delivery, read state, in-app bell
patrick/Polaris
#44 PH6.3 — Audit page P13 and settings page P14
patrick/Polaris
Reference
patrick/Polaris#13
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
Row PH1.5 in
docs/12-implementation-plan.md(branch, owned paths and doc section are defined there).What to build
Features can build on a
shared/uilayer wrapping Optimus UI,localTime(Europe/Amsterdam, date visible) andconfidence(% withn=) pipes, API-independentScheduleRow/ScheduleItemand map GeoJSON view models, core stores (user, config, notifications, language), and asignalStoreFeatureslice example. A generic admin CRUD table+form driven by the OpenAPI schema lists, creates, edits and soft-deletes any master-data table (P15).Acceptance criteria
localTimeshows Europe/Amsterdam with the date;confidencerenders%withn=shared/components use onlyinput()/output()— no store injection, no HTTP — verified by a lint rule or testsharedi18n scope hasnl/enparityBlocked by
Starting on this. Branch
feature/web-shared-ui, branched frommain(main already hasfrontend/from #5/#50 web-skeleton). Owningfrontend/src/app/shared/**andfrontend/src/app/core/stores/**only, per CLAUDE.md — leavingfeatures/admin-crud/**(route wiring) alone since that's outside this row.Plan:
shared/uiOptimus wrappers (button, tag, input-text, textarea, select, checkbox, dialog, table, toast, confirm-dialog),localTime/confidencepipes,ScheduleRow/ScheduleItem+ map GeoJSON view-model types, a genericshared/admin-crudtable+form (P15) driven by a representative fixture schema (backend/openapi.jsonisn't there yet — PH1.7), andcore/stores(current-user, config, language, notifications) withnotificationsas the two-slicesignalStoreFeatureworked example.Will file a seam-request issue for one thing I can't fix myself:
core/i18n/transloco-loader.ts(owned by PH0.5, not this row) resolves any non-shellscope tofeatures/<scope>/i18n/..., soshared/i18n/**won't actually load at runtime under asharedscope until that gets a special case. Ticking acceptance criteria as I go.