refactor(ui): drive status from a single shared pipeline module
Introduces pipeline.ts (mirrors backend JobPipeline) as the one frontend source of truth for canonical stages, synonym normalization, tone, and localized labels. Replaces the status list/logic previously duplicated across KanbanBoard, JobTable, AddJobModal and EditJobDialog. - KanbanBoard/AddJobModal/EditJobDialog render from PIPELINE_STATUSES - JobTable uses shared statusTone + statusLabel (status chips now localized; NB gets proper labels, English unchanged) - Edit dialog status dropdown is now localized too - 5 unit tests; full frontend suite green (19 suites / 41 tests) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -191,7 +191,9 @@ Authentication:
|
||||
- Updates an application; records a `StatusChanged` event if the status changed.
|
||||
- `PATCH /api/jobapplications/{id}/status`
|
||||
- Body: `{ "status": "..." }`
|
||||
- Updates only status; records `StatusChanged` if it changed.
|
||||
- Updates only status; records `StatusChanged` if it changed. The status is normalized against the canonical pipeline (casing + known synonyms like `Interviewing`→`Interview`); unrecognized values are preserved as custom statuses.
|
||||
- `GET /api/jobapplications/pipeline`
|
||||
- Returns the canonical ordered pipeline stages (`Applied, Waiting, Interview, Offer, Rejected, Ghosted`) with display order and category (`Active`/`Success`/`Closed`). The UI renders board columns and status dropdowns from this single source of truth.
|
||||
- `PATCH /api/jobapplications/{id}/followup`
|
||||
- Body: `{ "followUpAt": "2026-03-13T12:00:00Z" }` (or `null`)
|
||||
- Sets/clears follow-up date; records a `FollowUpSet` event.
|
||||
|
||||
Reference in New Issue
Block a user