shoc-frontend-new/tmp/pr-descriptions/pr5-advanced-filters.md

3 KiB
Raw Blame History

Jira

  • SH-121 (advanced filters global search context)
  • SH-196 — Has uplift facet (related)
  • Merge after PR2 so severity module stays unified (work-order-severity.ts).

Summary

  • Extend advanced search with design-parity facets: Severity (SEV 1–5), Indicators (rescheduled ≥ 2, carried over ≥ 2, add-on), Flag colours, Internal (SH) WO#, and Uplift (has uplift + status refinement).
  • Wire toBoardSearchQueryParams / GET /board/search query params: severities, rescheduled, carriedOver, addOn, flagColors, internalOnly, hasUplift, upliftStatuses.
  • Applied-filter chips and clear handlers for each new group; docs updated in docs/work-orders/board-search-api.md.
  • Single severity source: work-order-severity.ts (removed work-order-severity-levels.ts).

Scope

In

  • WorkOrderAdvancedFilters + sheet sections + banner chips
  • board-query-params mapping and WorkOrderBoardSearchQueryParams types
  • Unit tests for param builders and chip clear
  • Client-side predicates for indicators/flags/internal (fields already on board rows)

Out (follow-up PRs)

  • Global search rewrite (SH-121 bar behaviour)
  • New board columns, severity wizard/type cell (PR2), uplift column/dialog CRUD (PR3)
  • Aveta compliance filter (avetaOnly) — pending BE avetaRequired field

API / BE

Contract assumed from docs/work-orders/pending-be-contract.md:

Param Notes
severities multi 1–5; requires severity on search rows (PR2)
rescheduled / carriedOver boolean; BE filters count ≥ 2
addOn boolean; isAddOn indicator (not WO type 7)
flagColors multi #RRGGBB
internalOnly WO# prefix SH
hasUplift + upliftStatuses requires uplift summary on rows (PR3)

Blocked on BE: until search endpoint accepts these params, advanced search may return unfiltered or 400 for unsupported keys. FE sends param names as documented; no alternate naming. Aveta facet intentionally omitted until avetaRequired is confirmed.

Severity / uplift / add-on facets are enabled in UI; server-side filtering depends on BE shipping the contract above.

Test plan

  • Advanced Filters sheet shows Severity, Indicators, Flag, WO#, Uplift sections
  • Apply filters → network GET /board/search includes mapped query params
  • Banner chips reflect selections; dismiss clears only that group
  • Uplift chip clear resets both hasUplift and upliftStatuses
  • npm run verify green locally

Base

  • Base branch: dev