Commit graph

237 commits

Author SHA1 Message Date
Arthur Bassi
747515870e fix(workorders): correct vendor save behavior 2026-09-07 20:48:30 -03:00
Arthur Bassi
dc9cc07a73
Merge branch 'dev' into feat/SH-170-wo-inline-type-correction 2026-09-07 11:51:30 -03:00
Arthur Bassi
ccdad96170 fix(work-orders): persist type via PATCH and lock completed rows 2026-09-07 11:39:12 -03:00
Arthur Bassi
f51f6bd493 chore(work-orders): keep type/severity audit rules after merging origin/dev 2026-09-04 16:41:42 -03:00
Arthur Bassi
418eb3749d fix(work-orders): restore Range tab on Schedule On for inline and slide-over
Share Week/Date/Range on inline, board, and slide-over DateCell.
A selected range lands on the start day, matching the wizard.
2026-09-04 15:59:53 -03:00
Arthur Bassi
b0c58958ae
Merge branch 'dev' into feat/SH-169-wo-inline-lifecycle 2026-09-04 14:47:38 -03:00
Arthur Bassi
b8349783a7 chore(work-orders): keep carry-over display and local board row-order 2026-09-04 13:46:04 -03:00
Arthur Bassi
9f9aa5c824 fix(work-orders): restore AAP span grip while keeping keyboard reorder 2026-09-04 13:27:53 -03:00
Arthur Bassi
27ddeb2903 feat(work-orders): align inline type correction with the board AAP
Keep type correction on the board: Type & severity, SEV toast, and audit copy.
2026-09-03 16:30:10 -03:00
Arthur Bassi
370b2a68ad fix(work-orders): align reorder grip button box-model with prior span
Reset display, vertical-align, and box-sizing so visual snapshots stay on the approved grip.
2026-09-03 14:42:22 -03:00
Arthur Bassi
9fc67516ca fix(work-orders): derive lifecycle status only when the schedule patch changes 2026-09-03 13:35:26 -03:00
Arthur Bassi
ddd83ffec1 fix(work-orders): skip canceled keyboard reorder and persist destination-week order 2026-09-03 13:34:28 -03:00
Arthur Bassi
c2d1add79c fix(work-orders): persist AAP auto-schedule on a single board patch
Merge derived status once so dated rows cannot stay Pending or Incomplete.
Create and wizard demote Scheduled when there is no concrete date.
2026-09-03 11:13:24 -03:00
Arthur Bassi
9cc9bc4dfb feat(work-orders): align inline lifecycle transitions with AAP
Use the prototype status list and gates on the board and wizard.
Auto-derive Scheduled or Pending from a concrete schedule date.
2026-09-02 15:11:31 -03:00
Arthur Bassi
dc178340de feat(work-orders): persist board row order locally and support keyboard reorder
Keep same-day WO order across refresh and sign-out in the same browser.
Add keyboard reorder on the row grip.
2026-09-02 11:07:27 -03:00
Arthur Bassi
bc1e7a1fa2 fix(work-orders): keep carry-over rows in day reorder and one-char search 2026-09-02 09:47:34 -03:00
Arthur Bassi
08e00c213d
Merge branch 'dev' into feat/sh-167-wo-board-carry-over 2026-09-02 09:32:58 -03:00
Arthur Bassi
426889427c feat(work-orders): show carry-over pill and map day-tab for prior-week WOs
Keep source week visible and map weekday tabs without rewriting schedule.
2026-09-01 14:16:52 -03:00
Arthur Bassi
7e1dcb7a36 fix(work-orders): toast after assigned-to save on the board
Show the save toast only after the board PATCH succeeds.
2026-09-01 10:20:38 -03:00
Arthur Bassi
a3b889c15e
Merge branch 'dev' into feature/sh-166-accessible-row-flags 2026-08-31 16:04:27 -03:00
Arthur Bassi
55a6ff03b1 merge(dev): keep Linux CI New WO visual baseline
The only conflict was wo-new.png (Type and schedule). Appt Time is on a later step, so origin/dev's Assigned To screenshot is the correct combined UI.
2026-08-31 15:11:43 -03:00
Arthur Bassi
065ebbd403 fix(work-orders): expose flag picker as named dialog 2026-08-31 11:46:04 -03:00
Arthur Bassi
8d44b1868c fix(work-orders): expose disabled flag name via img role 2026-08-31 09:49:09 -03:00
Arthur Bassi
15459e8d40 fix(work-orders): let picker toggle clear appointment start and end
EOF
2026-08-31 09:35:49 -03:00
Arthur Bassi
b619b8ae13 feat(work-orders): expose accessible names on board row flags
Give keyboard and screen-reader users color-independent labels
when setting, changing, or clearing a work-order flag.
2026-08-28 15:06:59 -03:00
Arthur Bassi
8bb126b1a3 feat(work-orders): make appointment time optional in create flows
Allow empty Appt Time in wizard, table, and slide-over without blocking
create or complete. Omit appointment fields without vendorId so create
does not hit DispatchRequired.
2026-08-28 11:05:43 -03:00
Arthur Bassi
a299b8980c feat(work-orders): keep Assigned To open and name audit actors [SH-127]
Keep assignment ungated. Match AAP unassigned copy and name audit actors.
2026-08-28 09:19:43 -03:00
Arthur Bassi
305b926128 fix(uplifts): keep two-decimal NTE and expose required on reason fields 2026-08-27 11:59:25 -03:00
Arthur Bassi
ba2e3e37c7 feat(uplifts): align Reject/Revoke Cancel and required asterisk [SH-120] 2026-08-27 11:35:54 -03:00
Arthur Bassi
8d755bcb11 fix(work-orders): address PR review on toast feedback
Scope vendor and save toasts to successful assigned-vendor and slide-over saves.
Bind patch success callbacks per operation instead of shared mutate observers.
2026-08-26 19:30:29 -03:00
Arthur Bassi
5a0e907067 feat(work-orders): add consistent save/delete toast feedback
Cancel WO and vendor assignment toast after a successful board PATCH.
2026-08-26 18:42:56 -03:00
Alexandre Brandizzi
d908b7e1da
[SH-117] Give work-order board indicators accessible names (#137)
* fix(work-orders): give board indicators accessible names

Two work-order indicators conveyed their state visually only.

The carried-over pill rendered a bare number whose sole description was a
title attribute. It sits beside the reschedule pill, which also renders as a
small number, so the two counters were indistinguishable without a mouse.

Past Due drove a box shadow, a tint and an icon colour, while the control kept
the fixed name "Due Date". The state read by colour alone and never reached
assistive technology.

- Carried-over pill takes the reschedule pill's shape: an accessible name plus
  a tooltip, so both counters are identifiable.
- Due Date announces the past-due state, on the Emergency dialog control and on
  the standard date popover.
- Past-due is passed separately from `highlight`, which is also raised
  transiently to draw attention to a row and is not durable state to announce.

* fix: associate past-due status with date control

---------

Co-authored-by: Alexandre Brandizzi <alexandre.naime@luby.com.br>
Co-authored-by: Codex Review Integration <codex-review@local.invalid>
2026-08-26 18:10:29 -03:00
Arthur Bassi
50764b707d fix(work-orders): restore blank alphanumeric WO number on create
Allow blank SH-provisional WO numbers and refresh the wizard visual baseline.
2026-08-26 08:20:18 -03:00
Arthur Bassi
3a85c8c9e3 fix(work-orders): require type and 11-digit WO number on create
Wizard step 1 cannot continue without type and a numeric WO number.
Remove the Mark as Add-On checkbox from the create wizard.
2026-08-25 22:51:29 -03:00
Arthur Bassi
61fbad7e1b fix(work-orders): stop sending customer on create
AccountId is resolved from Location on the server.
Create UI matches AAP: required Site, optional Service, no Account picker.
2026-08-25 22:26:01 -03:00
Arthur Bassi
b240cc8c79 fix(work-orders): gate account picker to org-wide scope
Hide GetAccountList and skip client customer on create unless
org_scope is all, so scoped users cannot read another tenant name.
2026-08-25 21:10:12 -03:00
Arthur Bassi
800671030f fix(work-orders): address review and CI for account on create
Search accounts on the server and show the missing-account wizard hint.
Split site-dialog state so the maintainability line cap passes.
2026-08-25 18:46:10 -03:00
Arthur Bassi
1714da6e37 fix: send customer on board work-order create
Org-wide Admin create needs exact Accounts.Name so SH-221 can stamp AccountId.
2026-08-25 18:19:06 -03:00
Arthur Bassi
f0e420c7af Merge remote-tracking branch 'origin/dev' into feat/sh-117-wo-type-indicators
# Conflicts:
#	e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-filters.png
2026-08-25 17:49:50 -03:00
Arthur Bassi
a4df91d901 docs(work-orders): clarify Extra Docs Aveta is an explicit PATCH 2026-08-25 15:45:48 -03:00
Arthur Bassi
0a2544fae4 fix(work-orders): persist Extra Docs Aveta category round-trip
Keep Extra uploads uncategorized until the dispatcher picks Aveta.
Drive the shield from hasAvetaDocument after reopen.
2026-08-25 15:11:25 -03:00
Arthur Bassi
24c09ff103 fix(work-orders): sync search page when the result set shrinks 2026-08-25 13:57:56 -03:00
Arthur Bassi
838d79c2dd fix(work-orders): follow Aveta draft on Extra Docs while editing
Extras treated a persisted false as authoritative, so unsaved Aveta
toggles never reached the overlay. Refresh the filters visual baseline
for the Aveta Compliance section.
2026-08-25 13:36:38 -03:00
Arthur Bassi
5dfb2fb1c1 fix(work-orders): require explicit Aveta Extra Docs category 2026-08-25 12:03:36 -03:00
Arthur Bassi
34c1e6d182 fix(work-orders): unblock pager e2e and refresh visual baselines 2026-08-25 09:23:47 -03:00
Arthur Bassi
4782d2e3b0 fix(work-orders): paginate board and search without loading the full dataset (SH-165) 2026-08-24 18:38:32 -03:00
Arthur Bassi
7a30335ab8 feat(work-orders): add per-WO Aveta indicators and advanced filter
Dispatchers can flag Aveta on Service and Notes and filter those rows
without a site-level attribute.
2026-08-24 15:16:51 -03:00
Arthur Bassi
17ad0e5098 fix(work-orders): extract completed vendor dialog to pass maintainability 2026-08-24 12:14:21 -03:00
Arthur Bassi
eeb415951c fix(work-orders): restore CI build and visual baselines
Fix the wizard TypeScript props and refresh Work Orders screenshots from CI.
2026-08-24 12:07:02 -03:00
Arthur Bassi
d9d6334f57 fix(work-orders): lock completed status and legacy detail
Keep Flag, comments, and extra docs writable after completion, and hide the completed status menu.
2026-08-24 12:06:42 -03:00