Commit graph

131 commits

Author SHA1 Message Date
Alexandre Brandizzi
07c8799a3f Merge remote-tracking branch 'origin/dev' into codex/pr30-lint-fix 2026-07-24 18:43:30 -03:00
Alexandre Brandizzi
ca9d9e9c2a chore: integrate current dev into board foundation 2026-07-24 18:43:22 -03:00
Alexandre Brandizzi
5b8d8a1dfc
refactor(work-orders): split advanced search state and sections (#54) 2026-07-24 17:35:53 -04:00
Alexandre Brandizzi
45909e7aa6
Complete vendor operations roadmap frontend (#52)
* feat(vendors): complete operations roadmap frontend

* test(vendors): cover work order assignment flow

* fix(vendors): address review feedback

* fix(vendors): prevent stale preference saves

* fix(vendors): require truthful appointment bounds
2026-07-24 18:10:45 -03:00
Arthur Bassi
52e77dc197
feat(work-orders): add board advanced search UI (#42)
* feat(work-orders): add board advanced search UI

* fix(work-orders): wire Advanced Search sheet and cover SH-121 flow

* style(work-orders): format board fixture

---------

Co-authored-by: Arthur Bassi <arthur.winiarski.ranger@outlook.com>
Co-authored-by: Alexandre Brandizzi <alex_brandizzi@hotmail.com>
2026-07-24 20:59:47 +00:00
Alexandre Brandizzi
ed12f59255 chore(work-orders): merge origin/dev into table-core branch
Integrate origin/dev (vendor module + maintainability conventions) after PR #39.

- Resolve src/app/(protected)/workorders/index.tsx conflict by keeping the
  PR #40 table rewrite (WoTable + WorkOrdersFilterBar); dev's only change to
  this file was a {Boolean(error)} lint fix on legacy filter UI that the
  rewrite already removed.
- work-order-mapper.ts auto-merged cleanly.
- Conform PR #40 table-core code to dev's new maintainability lint rules
  (seahaven/no-non-boolean-jsx-and, shared Text component for raw p/h
  elements, logical-AND for one-sided conditionals) using narrowing-preserving
  guards (!= null) where values flow into typed props, preserving behavior.

Validation (Node v24.14.0 / npm 11.9.0): npm ci, format:check, lint, build,
test (156/156) all green.
2026-07-24 14:04:15 -03:00
Alexandre Brandizzi
4f99406388 chore(work-orders): merge origin/dev into pr39 integration branch
Integrate current origin/dev (vendor-core completion plus frontend
maintainability) into the work-order board shell branch.

Resolved semantic conflicts against the new frontend-maintainability
ESLint conventions introduced on dev: guard non-boolean && left
operands with Boolean()/!=null and replace raw <p> with the shared
Text component (media-upload-modal). PR #39 board shell/detail modules
and hooks preserved; merged vendor-core behavior and Text/ESLint
conventions preserved.
2026-07-24 13:45:16 -03:00
Alexandre Brandizzi
9a88f0583b
Merge pull request #51 from Sea-Haven-Industries/codex/frontend-maintainability
chore(frontend): enforce maintainable text rendering
2026-07-24 13:24:35 -03:00
Alexandre Brandizzi
17ab9845fb fix(test): remove unused week helper import 2026-07-24 13:10:44 -03:00
Alexandre Brandizzi
392af77b91 refactor(ui): enforce maintainable conditional feedback 2026-07-24 11:32:58 -03:00
Arthur Bassi
df2b5803a1 fix(test): cast canceled status in board-core fixture 2026-07-24 10:10:20 -03:00
Arthur Bassi
5e30c07c79 fix(test): align board-core affordance fixtures with WorkOrderTableRow 2026-07-24 10:07:15 -03:00
Alexandre Brandizzi
6ca45bc0ae fix(vendors): preserve phone data across edits 2026-07-23 19:17:14 -03:00
Alexandre Brandizzi
21b7de57a1 chore(frontend): enforce maintainable text rendering 2026-07-23 18:48:15 -03:00
Alexandre Brandizzi
922d6c9a57 feat(vendors): edit assigned vendor from work order 2026-07-23 17:44:53 -03:00
Alexandre Brandizzi
bbbb51aed5 feat(vendors): complete core vendor workflows 2026-07-23 17:36:21 -03:00
Alexandre Brandizzi
20237f8142
feat(vendors): align directory UI with current prototype (#46)
Some checks are pending
CI / ci (push) Waiting to run
Deploy / deploy (push) Waiting to run
* feat(vendors): align directory UI with prototype

* fix(vendors): report the filtered total

* fix(vendors): keep company input in sync

* fix(vendors): scope facets to directory status
2026-07-23 15:23:03 -03:00
Arthur Bassi
c97d752dd6 fix(work-orders): hide CompDoc affordance until dialog slice
Omit onOpenCompDoc on board-core so View Doc/Draft are not no-ops.
2026-07-23 14:06:05 -03:00
Arthur Bassi
becc4913e3 fix(work-orders): hide unfinished affordances and route View to detail 2026-07-23 13:49:53 -03:00
Arthur Bassi
0709bd1172 fix(work-orders): include table cells so board-core slice builds
Bring cell modules and minimal wizard helpers into table-core for a self-contained slice build.
2026-07-23 13:49:53 -03:00
Arthur Bassi
fef7918f6b fix(work-orders): allow read-only open for canceled board rows 2026-07-23 13:47:09 -03:00
Arthur Bassi
32609659b7 feat(work-orders): add board table core and filters 2026-07-23 13:47:08 -03:00
Arthur Bassi
11f2c8b72c fix(work-orders): restore detail modules and dispatch modal props
Reconcile [id]/index with domain-tests base so this shell slice typechecks;
keep onDispatched/onUpdated wiring; use woNumber on table rows.
2026-07-23 13:42:54 -03:00
Arthur Bassi
e78b1ad6ba feat(work-orders): add weekly board page shell and list chrome 2026-07-23 13:42:54 -03:00
Alexandre Brandizzi
5140827f9e
Merge pull request #38 from Sea-Haven-Industries/feature/wo-domain-tests
test(work-orders): cover board filters and wizard mappers
2026-07-21 14:35:33 -03:00
Arthur Bassi
ff32c0da06 test(work-orders): fix advanced filter date fixture and unused import 2026-07-21 14:28:09 -03:00
Alexandre Brandizzi
a55beb903c
Merge branch 'dev' into feature/wo-domain-utils-mocks 2026-07-21 14:07:59 -03:00
Alexandre Brandizzi
579af60278
Merge branch 'dev' into feature/wo-domain-core 2026-07-21 14:04:31 -03:00
Alexandre Brandizzi
ec20c693d3
Merge pull request #35 from Sea-Haven-Industries/feature/wo-shared-ui
feat(ui): add shared board UI primitives and plumbing
2026-07-21 14:03:58 -03:00
Arthur Bassi
9628fb8c88 fix(test): make FormData content-type assertion type-safe 2026-07-21 10:49:16 -03:00
Arthur Bassi
4beefba719 fix(work-orders): align consumers with domain-core types 2026-07-21 09:47:43 -03:00
Adam Moussa
042b9db2ac
chore: correct Sea Haven branding and rewrite README (#25)
Some checks failed
CI / ci (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
* fix: correct Sea Haven branding in page title and wordmark

* chore: use correct company name in docs and comments

* docs: rewrite README

* docs: add README badge block per github-standards

* fix: update command syntax in deployment instructions

* fix: replace template PWA icons and manifest branding

* test: assert PWA manifest branding
2026-07-17 13:17:21 -04:00
Arthur Bassi
3c42abea40 feat(ui): add loading/error primitives and dialog guard 2026-07-17 14:12:01 -03:00
Arthur Bassi
12e8cb50a4 fix(api): strip Content-Type for FormData uploads 2026-07-17 14:11:56 -03:00
Arthur Bassi
f2d7544a40 feat(work-orders): add slide-over detail and completion doc UI 2026-07-17 14:04:24 -03:00
Arthur Bassi
2dd885a499 feat(work-orders): add dispatch detail shell 2026-07-17 14:04:19 -03:00
Arthur Bassi
84177475e7 feat(work-orders): add board wizard shell UI 2026-07-17 14:00:54 -03:00
Arthur Bassi
7c7ac6068e feat(work-orders): add board advanced search UI 2026-07-17 14:00:54 -03:00
Arthur Bassi
cbaae41f98 feat(work-orders): add board table cells and dialogs 2026-07-17 14:00:53 -03:00
Arthur Bassi
1cb8362d76 feat(work-orders): add board table core and filters 2026-07-17 14:00:52 -03:00
Arthur Bassi
af0e4aa1a6 feat(work-orders): add weekly board page shell and list chrome 2026-07-17 14:00:48 -03:00
Arthur Bassi
e446bbae0e test(work-orders): cover board filters and wizard mappers 2026-07-17 13:59:32 -03:00
Arthur Bassi
df8f3553e8 feat(work-orders): add board utils and mock data 2026-07-17 13:59:31 -03:00
Arthur Bassi
e13bc4c1a2 feat(work-orders): add domain core types, api, mappers and use-cases 2026-07-17 13:58:19 -03:00
Arthur Bassi
a3e8a533b1 fix(ui): align shared board plumbing with ky v2 and react-router
- api.ts: use ky v2 hook object args, prefix (not prefixUrl), and normalizeApiRequestError
- replace react-router-dom with react-router in layout, topbar, and vendor-pos view
- move MUI style props (justifyContent, alignItems, flexWrap, display, fontWeight) into sx
- resource-list-table/query-key: use local types instead of missing work-order-list module
2026-07-17 13:31:56 -03:00
Arthur Bassi
01939cbb70 feat(ui): add shared board UI primitives and plumbing 2026-07-17 11:59:05 -03:00
Alexandre Brandizzi
c68d47af7b
chore: upgrade frontend dependencies (#24)
Some checks failed
CI / ci (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
* chore: upgrade frontend application dependencies

* chore: upgrade frontend infrastructure dependencies

* fix: align lockfiles with CI npm

* fix: preserve ky error semantics

* fix: sanitize timeout error message
2026-07-14 21:35:59 -03:00
Arthur Bassi
a0cf7b9ef0
Feat/vite typescript migration (#16)
* chore: add eslint, prettier, husky and commitlint tooling

* ci: add GitHub Actions workflow for lint and build

* build: migrate from CRA to Vite with TypeScript config

* docs: add architecture plan and design system documentation

* fix: scope ESLint to new components and hooks directories

* feat: add HTTP client, query cache and shared utilities

* feat: add theme system and global application styles

* feat: add shared UI, layout and domain badge components

* feat: add auth domain, provider and login page

* feat: add app shell, file-based routing and bootstrap

* feat: add protected layout and dashboard module

* feat: add accounts CRUD module

* feat: add assets CRUD module

* feat: add contacts CRUD module

* feat: add employees CRUD module

* feat: add locations CRUD module

* feat: add calendar events module

* feat: add follow-ups CRUD module

* feat: add PM schedules CRUD module

* feat: add work orders module with dispatch modals

* feat: add vendors CRUD and portal token panel

* feat: add vendor purchase orders module

* feat: add uplifts queue module

* feat: add settings for dropdowns and task templates

* feat: add vendor portal routes and signature capture

* test: add Vitest setup and Playwright login e2e spec

* chore: remove legacy CRA pages, Redux store and JS hooks

* chore: update gitignore and env example for Vite

* docs: translate pt-BR docs and Cursor rules to English

* fix(ci): fix login e2e session mock and prettier formatting

* fix(build): use mjs router script for Node 20 CI compatibility

* chore: remove migration scripts and unused generouted router

* fix(auth): restore JWT and align CRUD with backend routes

* fix(api): add no-content helpers and align paths with backend

* fix(accounts): align detail and mutation payloads with backend

* fix(contacts): resolve detail via GetContacts and map address DTOs

* fix(work-orders): align routes, delete body, and create payload

* fix(vendors): delete vendors via REST route

* fix(pm-schedules): handle empty save and delete responses

* fix(employees): add fallbacks for detail and dropdown calls

* chore(calendar): disable routes until backend exists

* chore(env): switch tracked env vars to Vite prefixes

* fix(api): align frontend contracts with backend review findings

Correct Work Order getById query param, asset site options via Location API,
Employee JobTitleId payload, and remove stale API paths.

* fix(employees,pm-schedules): align forms with backend API contracts

Align PM Schedule form and save payload with PMSchedule_DTO fields.
Bind employee Job Title select to jobTitleId for create/update payloads.
Add regression tests for both flows.

* fix(pm-schedules): gate edit/delete for Dev API contract

Production Dev API exposes only GetList and Save.

Hide unsupported edit/delete UI and block the edit route.

Add regression tests for disabled actions.

* docs(env): document VITE_API_URL must include /api suffix

* refactor(api): extract shared API prefix URL resolution

* feat(build): fail build on misconfigured absolute VITE_API_URL

* test(api): cover API URL contract and prefix resolution

* feat(auth): disable login submit until email and password are valid

* test(auth): align login tests with disabled submit behavior

* Feat/ab/menu-and-header (#17)

* chore(deps): add lucide-react for layout icon migration

* feat(auth): add getPrimaryUserRole helper for header display

* style(theme): add sidebar active tokens and nav group typography

* refactor(menu): migrate nav icons to lucide and trim menu groups

* feat(layout): redesign sidebar, topbar, and admin shell viewport

* chore(menu): hide Reports and Documents from sidebar

---------

Co-authored-by: Arthur Bassi <arthur.winiarski.ranger@outlook.com>

* ci: add frontend PR quality baseline (#18)

* chore(deps): add lucide-react for layout icon migration

* feat(auth): add getPrimaryUserRole helper for header display

* style(theme): add sidebar active tokens and nav group typography

* refactor(menu): migrate nav icons to lucide and trim menu groups

* feat(layout): redesign sidebar, topbar, and admin shell viewport

* chore(menu): hide Reports and Documents from sidebar

* ci: add PR quality baseline checks

* ci: avoid self-matching standards guard

* ci: split frontend quality gates

---------

Co-authored-by: Arthur Bassi <arthur.winiarski.ranger@outlook.com>

---------

Co-authored-by: Arthur Bassi <arthur.winiarski.ranger@outlook.com>
Co-authored-by: Alexandre Brandizzi <alex_brandizzi@hotmail.com>
2026-06-18 14:41:17 -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