Commit graph

419 commits

Author SHA1 Message Date
Codex Review Integration
078933ad9a Merge remote-tracking branch 'origin/dev' into feat/ab/sh-336-dashboard 2026-09-17 02:21:15 -03:00
Codex Review Integration
7679c28682 refactor(dashboard): extract dispatcher tables into a section component
Move the two paged dispatcher cards and their paging view-model derivation out
of DashboardPage into DispatcherTablesSection (a fragment, so both cards remain
direct children of the dashboard grid). This keeps DashboardPage under the
project complexity threshold after the pager additions, with no change to the
rendered layout or behaviour.
2026-09-17 00:46:39 -03:00
Codex Review Integration
0279cfac64 feat(dashboard): paginate dispatcher tables and fix Aveta drilldown
Workload and Performance page server-side at 10 rows and now return Page,
PageSize, and TotalDispatchers on dev (backend#126/#127), so wire the pager
that SH-346 and SH-347 require: getWorkload/getPerformance send a 1-based
`page` and parse the paging envelope, the hooks and query keys carry the page,
and each dispatcher table renders a 10-row pager. Page state is per-table and
resets on a range change so switching range never lands on an out-of-range
empty page that reads as a false "no dispatchers" state.

Drop `docs=No` from the Aveta Pending drilldown. `docs` filters on
completion-document status, not the Aveta clearance document the tile counts
(SH-294 / backend#138), so it narrowed to the wrong rows. The board has no
missing-Aveta-document filter, so the drilldown is now the Aveta-required work
in the two-day open window — a deliberate superset of the count.
2026-09-17 00:36:55 -03:00
Alexandre Brandizzi
bc40c17285
Merge branch 'dev' into fix/ab/sh-359-wo-board-column-order 2026-09-16 23:44:07 -03:00
Codex Review Integration
c7388ba2d9 fix(dashboard): map breakdown type keys and open performance drill-downs
The Work Order Breakdown object from the backend serializes its keys
without JsonPropertyName, so they arrive lowercase (pm/emergency/reactive/
overdue/other). The mapper copied them straight into `status`, which the
card uses as both label and the `types` drill-down id, and
`workOrderTypeDrilldownSearch` only accepts canonical WOType values — so
every breakdown row rendered lowercase and was inert (SH-354). Route both
mapping branches through a normalizer that maps type keys back to their
canonical labels case-insensitively; `other` is not a WOType, so it stays a
labelled, non-drillable "Other" row, and unknown values (legacy array-shape
lifecycle labels) pass through unchanged.

Dispatcher Performance gated its drill-down on `completionRate > 0`, so a
dispatcher with assigned work but no completions yet was inert here while
drillable from Workload. The drill-down filters by dispatcher + range and
never uses the rate, so gate on identity instead.

Also mock useDashboardTrend in the dashboard page test so it no longer
issues a real request that failed quietly in jsdom.
2026-09-16 20:40:33 -03:00
Alexandre Brandizzi
5d5581209a
Merge branch 'dev' into fix/ab/sh-369-completion-doc-service-gate 2026-09-16 20:30:14 -03:00
Alexandre Brandizzi
fc21321148
Merge branch 'dev' into feat/ab/sh-278-vendor-service-area 2026-09-16 20:16:18 -03:00
Alexandre Brandizzi
20662b57c1
Merge branch 'dev' into fix/ab/sh-369-completion-doc-service-gate 2026-09-16 20:16:13 -03:00
Codex Review Integration
9722805300 Merge remote-tracking branch 'origin/dev' into fix/ab/sh-369-completion-doc-service-gate
# Conflicts:
#	src/app/(protected)/workorders/_components/detail/tabs/slide-over-completion-tab.tsx
2026-09-16 20:03:04 -03:00
Alexandre Brandizzi
bbc955e6fe
Merge branch 'dev' into feat/ab/sh-195-date-header-tooltips 2026-09-16 20:00:20 -03:00
Alexandre Brandizzi
e272cabe34
Merge branch 'dev' into feat/ab/sh-278-vendor-service-area 2026-09-16 20:00:16 -03:00
Alexandre Brandizzi
12d4a0c4b8
Merge branch 'dev' into fix/ab/sh-341-generate-completes-work-order 2026-09-16 19:46:33 -03:00
Alexandre Brandizzi
c6ed6072ff
Merge branch 'dev' into feat/ab/sh-195-date-header-tooltips 2026-09-16 19:46:30 -03:00
Alexandre Brandizzi
1c1c6b5670
Merge branch 'dev' into feat/ab/sh-278-vendor-service-area 2026-09-16 19:46:26 -03:00
Codex Review Integration
1b17cbec01 feat(dashboard): build dashboard experience (SH-336) 2026-09-16 19:37:15 -03:00
Alexandre Brandizzi
3ec6540271
Merge branch 'dev' into fix/ab/sh-194-week-scoped-search 2026-09-16 19:30:44 -03:00
Alexandre Brandizzi
68c4809a16
Merge branch 'dev' into fix/ab/sh-341-generate-completes-work-order 2026-09-16 19:18:28 -03:00
Alexandre Brandizzi
331de59f97
Merge branch 'dev' into feat/ab/sh-278-vendor-service-area 2026-09-16 19:18:25 -03:00
Codex Review Integration
04f8b51eab refactor(work-orders): use Tailwind tokens for search scope label
Swap the inline fontSize/color on the week-scope status label for the
text-(length:--text-xs) and text-muted-foreground classes already used
across the header, so it tracks future token changes. --text-xs is 11px
and text-muted-foreground resolves to --muted-foreground, so rendering is
unchanged.
2026-09-16 19:17:28 -03:00
Alexandre Brandizzi
9cce2966f1
Merge branch 'dev' into feat/ab/sh-195-date-header-tooltips 2026-09-16 19:16:15 -03:00
Alexandre Brandizzi
33a979c79d
Merge branch 'dev' into fix/ab/sh-341-generate-completes-work-order 2026-09-16 19:04:30 -03:00
Alexandre Brandizzi
0ca032ef8f
Merge branch 'dev' into feat/ab/sh-195-date-header-tooltips 2026-09-16 19:04:26 -03:00
Alexandre Brandizzi
0b219311b5
Merge branch 'dev' into feat/ab/sh-278-vendor-service-area 2026-09-16 19:04:23 -03:00
Alexandre Brandizzi
51739fd155
Merge branch 'dev' into fix/ab/sh-356-due-date-after-schedule 2026-09-16 19:04:17 -03:00
Alexandre Brandizzi
f33580972d
Merge branch 'dev' into feat/ab/sh-195-date-header-tooltips 2026-09-16 18:52:33 -03:00
Alexandre Brandizzi
7876b6ca42
Merge branch 'dev' into feat/ab/sh-278-vendor-service-area 2026-09-16 18:52:29 -03:00
Alexandre Brandizzi
dd34e79e19
Merge branch 'dev' into fix/ab/sh-356-due-date-after-schedule 2026-09-16 18:52:26 -03:00
Alexandre Brandizzi
79f9e52870
Merge branch 'dev' into fix/ab/sh-341-generate-completes-work-order 2026-09-16 18:50:23 -03:00
Alexandre Brandizzi
5d1b6e5aa0
Merge branch 'dev' into feat/ab/sh-197-inline-create-fields 2026-09-16 18:50:20 -03:00
Alexandre Brandizzi
55723a1cfd
Merge branch 'dev' into fix/ab/sh-341-generate-completes-work-order 2026-09-16 18:38:38 -03:00
Alexandre Brandizzi
8b5b5903fa
Merge branch 'dev' into feat/ab/sh-197-inline-create-fields 2026-09-16 18:38:35 -03:00
Alexandre Brandizzi
c081ea8d97
Merge branch 'dev' into feat/ab/sh-195-date-header-tooltips 2026-09-16 18:38:32 -03:00
Alexandre Brandizzi
42b5642fec
Merge branch 'dev' into feat/ab/sh-278-vendor-service-area 2026-09-16 18:38:29 -03:00
Alexandre Brandizzi
b746087d0b
Merge branch 'dev' into fix/ab/sh-356-due-date-after-schedule 2026-09-16 18:38:23 -03:00
Alexandre Brandizzi
2152d2d31c
Merge branch 'dev' into fix/ab/sh-369-completion-doc-service-gate 2026-09-16 18:38:17 -03:00
Alexandre Brandizzi
0f34e8c7c6
Merge branch 'dev' into fix/ab/sh-371-pm-extra-media-gallery 2026-09-16 18:38:14 -03:00
Alexandre Brandizzi
c135605c87
Merge branch 'dev' into fix/ab/sh-369-completion-doc-service-gate 2026-09-16 18:28:22 -03:00
Alexandre Brandizzi
754912c643
Merge branch 'dev' into fix/ab/sh-371-pm-extra-media-gallery 2026-09-16 18:28:19 -03:00
Alexandre Brandizzi
daaf588793
Merge branch 'dev' into feat/ab/sh-278-vendor-service-area 2026-09-16 18:26:26 -03:00
Alexandre Brandizzi
49fd0b039c
Merge branch 'dev' into fix/ab/sh-356-due-date-after-schedule 2026-09-16 18:26:20 -03:00
Alexandre Brandizzi
99f57b9c89
Merge branch 'dev' into fix/ab/sh-341-generate-completes-work-order 2026-09-16 18:24:22 -03:00
Alexandre Brandizzi
baf16501cc
Merge branch 'dev' into feat/ab/sh-197-inline-create-fields 2026-09-16 18:24:20 -03:00
Alexandre Brandizzi
ae6ba6978f
Merge branch 'dev' into feat/ab/sh-195-date-header-tooltips 2026-09-16 18:24:17 -03:00
Alexandre Brandizzi
632d01f373
Merge branch 'dev' into fix/ab/sh-357-sh-358-status-transitions 2026-09-16 18:22:16 -03:00
Alexandre Brandizzi
92fa61ad57
Merge branch 'dev' into feat/ab/sh-195-date-header-tooltips 2026-09-16 18:20:16 -03:00
Alexandre Brandizzi
46f90abf8a
Merge branch 'dev' into feat/ab/sh-197-inline-create-fields 2026-09-16 18:18:14 -03:00
Alexandre Brandizzi
d872e08a2b
Merge branch 'dev' into fix/ab/sh-341-generate-completes-work-order 2026-09-16 18:16:14 -03:00
Alexandre Brandizzi
71432ac586
Merge branch 'dev' into fix/ab/sh-357-sh-358-status-transitions 2026-09-16 18:08:14 -03:00
Alexandre Brandizzi
ad1fd7ebf9
Merge branch 'dev' into fix/ab/sh-361-sh-363-audit-log-entries 2026-09-16 18:08:11 -03:00
Codex Review Integration
196ec8a836 fix(work-orders): make date help controls accessible 2026-09-16 16:56:26 -03:00