Commit graph

119 commits

Author SHA1 Message Date
Arthur Bassi
96059ee53f fix(build): use mjs router script for Node 20 CI compatibility 2026-06-15 10:13:42 -03:00
Arthur Bassi
3b39b858c1 fix(ci): fix login e2e session mock and prettier formatting 2026-06-15 10:03:02 -03:00
Arthur Bassi
c7787bda98 docs: translate pt-BR docs and Cursor rules to English 2026-06-15 09:59:40 -03:00
Arthur Bassi
d27a13fe23 chore: update gitignore and env example for Vite 2026-06-12 11:57:11 -03:00
Arthur Bassi
fac35319e5 chore: remove legacy CRA pages, Redux store and JS hooks 2026-06-12 11:57:07 -03:00
Arthur Bassi
7af4a56d04 test: add Vitest setup and Playwright login e2e spec 2026-06-12 11:56:51 -03:00
Arthur Bassi
668dd69df2 feat: add vendor portal routes and signature capture 2026-06-12 11:56:41 -03:00
Arthur Bassi
6672d09e1f feat: add settings for dropdowns and task templates 2026-06-12 11:56:32 -03:00
Arthur Bassi
48f1685e4d feat: add uplifts queue module 2026-06-12 11:56:22 -03:00
Arthur Bassi
1c474914f2 feat: add vendor purchase orders module 2026-06-12 11:55:14 -03:00
Arthur Bassi
f01a502956 feat: add vendors CRUD and portal token panel 2026-06-12 11:55:04 -03:00
Arthur Bassi
a27e7607d3 feat: add work orders module with dispatch modals 2026-06-12 11:54:52 -03:00
Arthur Bassi
77e128af5a feat: add PM schedules CRUD module 2026-06-12 11:54:42 -03:00
Arthur Bassi
66c8c7cb4a feat: add follow-ups CRUD module 2026-06-12 11:54:30 -03:00
Arthur Bassi
09a2468ab0 feat: add calendar events module 2026-06-12 11:54:21 -03:00
Arthur Bassi
f7adadffbe feat: add locations CRUD module 2026-06-12 11:53:41 -03:00
Arthur Bassi
a60da31f4c feat: add employees CRUD module 2026-06-12 11:53:32 -03:00
Arthur Bassi
ef5c73fca3 feat: add contacts CRUD module 2026-06-12 11:53:22 -03:00
Arthur Bassi
8cf6aa0902 feat: add assets CRUD module 2026-06-12 11:53:12 -03:00
Arthur Bassi
24b123225c feat: add accounts CRUD module 2026-06-12 11:53:01 -03:00
Arthur Bassi
60572c7e96 feat: add protected layout and dashboard module 2026-06-12 11:52:50 -03:00
Arthur Bassi
33a902034c feat: add app shell, file-based routing and bootstrap 2026-06-12 11:52:25 -03:00
Arthur Bassi
7967f7e4c5 feat: add auth domain, provider and login page 2026-06-12 11:52:16 -03:00
Arthur Bassi
ddc174c204 feat: add shared UI, layout and domain badge components 2026-06-12 11:52:07 -03:00
Arthur Bassi
49fbc98dd0 feat: add theme system and global application styles 2026-06-12 11:44:36 -03:00
Arthur Bassi
5c8a3443f7 feat: add HTTP client, query cache and shared utilities 2026-06-12 11:44:13 -03:00
Arthur Bassi
d07ff67a94 fix: scope ESLint to new components and hooks directories 2026-06-12 11:43:33 -03:00
Arthur Bassi
d3076f6d88 docs: add architecture plan and design system documentation 2026-06-12 11:41:07 -03:00
Arthur Bassi
0451788764 build: migrate from CRA to Vite with TypeScript config 2026-06-12 11:41:03 -03:00
Arthur Bassi
bb11aab86c ci: add GitHub Actions workflow for lint and build 2026-06-12 11:41:00 -03:00
Arthur Bassi
2121b86a8e chore: add eslint, prettier, husky and commitlint tooling 2026-06-12 11:40:01 -03:00
npalOmega
1632f1e656 pm schedule fix 2026-05-14 11:01:59 -05:00
npalOmega
65bf95b20c refactor: fix compilation errors and centralize constants
- Fixed Redux slice errors
- All query keys now use constants from src/constants/
- Converted LoginPage to CSS Modules
- Consolidated documentation
2026-05-12 20:33:23 -05:00
npalOmega
5151be29ba Add production and development environment configuration files 2026-04-27 08:50:47 -05:00
Adam Moussa
bbcd1eb4e1 Wire Follow Ups list and form to backend
Replaces the mock api with real endpoints, fixes list column mappings
to match the backend payload, and realigns the form to the FollowUps
model (Reason, ScheduleDate, ScheduleStartTime, EmployeeId, AccountId,
LocationId, WorkOrderId) with real lookup dropdowns for Employee,
Account, and Location. Also redesigns the list header to match the
Work Orders toolbar + chip filter look.
2026-04-20 13:49:58 -04:00
Adam Moussa
a349a58822 Group sidebar nav by purpose
Replaces the flat 16-item list with six sections (Overview, Operations,
Vendors, Customers & Sites, Internal, System) and adds section titles
that collapse into dividers when the sidebar is collapsed.
2026-04-20 13:49:52 -04:00
Adam Moussa
2a6fe6f35e Add NTE uplift UI, vendor PO pages, and portal POs tab
Vendors can now request NTE uplifts from the dispatch detail page and
dispatchers can approve or deny them (with tier-gated buttons) from
the work order view. Admin uplift queue page lists all requests with
status/tier filters. New Vendor POs section lists every PO with a
detail page showing vendor, linked WOs, uplift history, checklist,
signoffs, comments, and scoped audit log with print support. Vendor
portal gets a POs tab alongside Work so vendors can reconcile by PO
number.
2026-04-20 13:26:08 -04:00
Adam Moussa
c98a905d4d Merge feature/vendor-portal into dev 2026-04-20 12:45:09 -04:00
Adam Moussa
168fa69a87 Add vendor portal UI
- Separate route tree at /v/:token (no SHOC chrome); session resolved via
  X-Vendor-Token header
- Dashboard lists only the vendor's own dispatches with status filters
- Dispatch detail: accept + status transitions (Acknowledged -> In Progress ->
  Completed), request cancel, checklist toggles, customer signoff before vendor
  signoff, comments attributed by type (dispatcher / vendor / customer)
- SignaturePad component (mouse + touch canvas, drawn or typed)
- Admin vendor form: portal token panel to generate, copy, rotate, or revoke
  the portal link
2026-04-20 12:02:00 -04:00
Adam Moussa
3b3086d873 Update TODO with completed items and vendor portal next steps 2026-04-17 16:33:18 -04:00
Adam Moussa
da51d4a5be Add Cancel Dispatch button to dispatch detail modal
- Red outlined button on the left side of actions row
- Confirmation prompt before cancelling
- Hidden when dispatch is already cancelled or verified
- Updates status to Cancelled and refreshes
2026-04-17 16:31:48 -04:00
Adam Moussa
913d75802c Polish dispatch workflow — custom items, name input, read-only after verify
- Custom checklist items in dispatch modal (type + Enter, removable chips)
- Add checklist item input in dispatch detail modal
- SignatureCapture now has proper Full Name field instead of prompt()
- Verified dispatches are read-only: edit hidden, checkboxes disabled, signoff buttons disabled
- Custom items sent as CustomChecklistItems in dispatch payload
2026-04-17 16:26:22 -04:00
Adam Moussa
dc81078df7 Add multi-WO selection to dispatch modal
- Current WO shown as non-removable chip
- Dropdown shows all WOs at same site, filtered by locationId server-side
- Search bar filters the dropdown list
- Click to add, X to remove additional WOs
- Header shows count when multiple WOs selected
- All selected WO IDs sent to backend
2026-04-17 16:13:18 -04:00
Adam Moussa
199715d5b6 Add Verify & Close button and verified banner to dispatch detail
- Verify & Close button at bottom of dispatch modal
- Disabled with tooltip showing missing items (checklist, signoffs)
- Green verified banner after verification with verifier name + timestamp
- Verified status badge (dark green)
- Added Verified to DISPATCH_STATUSES constant
- verifyDispatch API function
2026-04-17 16:03:34 -04:00
Adam Moussa
5c24b9249d Add sign-off UI with signature capture component
- SignatureCapture component: canvas drawing pad + typed mode with cursive preview
- Two sign-off slots in dispatch detail modal: Customer and Vendor
- Collect Signature button opens capture modal, prompts for name
- Signed slots show signature thumbnail, name, and timestamp
- Green "All Signed" badge when both complete
- addDispatchSignoff API function
2026-04-17 15:51:20 -04:00
Adam Moussa
31479029e3 Add time tracking to dispatch workflow
- timeSince utility: relative time display (2h ago, 3d ago)
- timeBetween utility: duration between two timestamps
- waitTimeColor utility: green (<4h), yellow (4-24h), red (>24h)
- Dispatch detail modal shows accepted time with duration
- Awaiting acceptance shows elapsed time with color coding
- Dispatches table shows Wait column with color-coded time for Sent dispatches
2026-04-17 15:41:51 -04:00
Adam Moussa
5dcfc9d303 Show acceptance status in dispatch detail modal
- Accepted field shows green timestamp when acknowledged
- Shows "Awaiting acceptance" in yellow when status is Sent
2026-04-17 15:39:50 -04:00
Adam Moussa
62bc2f058c Add checklist UI to dispatch workflow
- Task List Template picker in dispatch modal
- Checklist section in dispatch detail modal with toggleable items
- Shows completion count, completed by user name + timestamp
- Strikethrough styling on completed items
- fetchTaskTemplates, updateChecklistItem, addChecklistItem API functions
2026-04-17 15:28:52 -04:00
Adam Moussa
714376c61b Update dispatch for multi-WO support
- Pass WorkOrderIds array in dispatch API call
- DispatchDetailModal shows WO list from junction table in header
- dispatchToVendor API simplified to pass full payload
2026-04-17 15:16:28 -04:00
Adam Moussa
4de6c54fc0 Add Task Templates settings page with shared settings nav
- Task Templates page: create/edit templates with checklist items
- Add/remove/reorder items, save template with name + description
- SettingsNav component with tab links between Dropdown Options and Task Templates
- taskTemplateApi in services/api.js
- Route at /settings/task-templates
2026-04-17 14:57:18 -04:00