feat(web): master-data pages for jobs, vehicles, sites, crews and catalogue (P05-P08, P11) #83
No reviewers
Labels
No labels
in-progress
in-review
ready-for-agent
seam-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
patrick/Polaris!83
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/web-master-data"
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?
Description
This is the frontend half of T-A: planners and admins can now manage jobs, vehicles, sites, crews/people/shifts and the catalogue directly against the live API instead of seeing "not built yet" placeholders.
Every string is translated (nl/en), and each page talks to the API surface the backend half of this ticket implements.
Related Issues
Contributes to #16 (T-A, docs/12-implementation-plan.md). No PR has closed #16 yet, so this one doesn't either — the backend half (
feature/api-master-data) is the other contributor.Also filed #79 (seam request, see Additional Context).
Type of Change
Breaking Changes
None.
Test Plan
ng build(dev and production configurations),ng test --watch=false(67 tests green) and the i18n key-parity check all pass.frontend/src/app/features/**lints clean on its own (see Additional Context for the one pre-existing gap inng lintoverall). No live backend/compose stack was available in this environment to click through the pages end to end; verification here is build/type/test/lint green plus a careful read of what each endpoint actually returns against the committedopenapi.json.Checklist
docs/updated for any behavioural change (ADR added if a prior decision was reversed)polaris.domainAdditional Context
Test coverage: this PR does not add new unit/component tests for the new pages/stores — given the size of the ticket, the time budget went into covering all five page areas against the real API surface rather than test scaffolding. The existing 67 tests (shared/core, from earlier tickets) stay green. Happy to follow up with tests if that's wanted before merge.
Known gaps, all called out in code comments and flagged for follow-up:
GET /jobshas no filter query parameters in the currently committedopenapi.json(PH1.7 stub); the jobs list sends them anyway using the names docs/09-api.md documents, so filtering starts working as soon as the backend half implements it — no frontend change needed then.SiteSuitabilityBulkRequesthas no site-selector field yet (the "for all Thuis sites" example in docs/06-ux.md implies one); the bulk-rule dialog sends asite_typefilter as an extra property, inert until the backend adds support.skillsfield/endpoint in the current API surface, so skill requirements aren't editable from either page yet.Seam request filed: #79 —
frontend/eslint.config.jshas no ignore for the git-ignored generated API client, sonpm run api:gen && ng lintreports ~210 errors inside the generated file itself oncebackend/openapi.jsonhas a real surface (as it now does). Verified this is 100% confined to the generated file, not application code, by lintingfrontend/src/app/features/**on its own (clean). Not fixed in this PR sinceeslint.config.jspredates this session and isn't in this ticket's owned paths.Backend availability: the backend half of this ticket (
feature/api-master-data) had not merged as of this PR — built against the already-committed, full PH1.7backend/openapi.jsononmain(issue #74), regenerating the typed client withnpm run api:gen. Once the backend half fills in the real domain logic behind the currently-stubbed routers, no frontend regeneration should be needed unless a DTO shape changes.🤖 Generated with Claude Code
https://claude.ai/code/session_013YioTVKBPoE6thZqbnTtnM