Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
272 commits
Select commit Hold shift + click to select a range
9048fa3
fix(model): remove public_id from appends in MaintenanceSchedule — it…
Mar 31, 2026
a1ad10f
fix(controllers): replace non-existent table/cell/humanize with table…
Mar 31, 2026
2d61848
refactor(maintenance): fix 5 issues — rename service, getters, menuSe…
Mar 31, 2026
262e98c
fix(maintenance): add missing closing braces in maintenances and work…
Mar 31, 2026
606b6d6
several minor fixes w/ formatting and namespaces
roncodes Apr 1, 2026
dc76b99
fix: work order code/opened_at, cost breakdown in details, schedule W…
Apr 1, 2026
847363b
feat(maintenance): migrate forms and details to polymorphic relations…
Apr 1, 2026
eb27ff2
minor fixes
roncodes Apr 1, 2026
8a7daae
Merge branch 'feat/complete-maintenance-module' of github.com:fleetba…
roncodes Apr 1, 2026
bba2c54
complete merge
roncodes Apr 1, 2026
62db98f
fix(maintenance): remove console.fleet-ops prefix from routes and fix…
Apr 1, 2026
c2bb61a
feat(maintenance): add resource transformers and eager-load polymorph…
Apr 1, 2026
27e4f12
fix(maintenance): remove : array return type hint from resource trans…
Apr 1, 2026
2185751
fix(maintenance): add HasCustomFields trait to MaintenanceSchedule model
Apr 1, 2026
429a918
fix(maintenance): inject abstract type field into embedded polymorphi…
Apr 1, 2026
ccc7087
minor fixes for transitions
roncodes Apr 1, 2026
43433b4
fix(maintenance): correct action labels, remove formComponent anti-pa…
Apr 1, 2026
5a815e0
make sure correct default currency set for part & equipment resources
roncodes Apr 1, 2026
81f6d4c
Merge branch 'feat/complete-maintenance-module' of github.com:fleetba…
roncodes Apr 1, 2026
7b7160c
fix: wire MoneyInput @onChange bindings and fix cents handling across…
roncodes Apr 1, 2026
aeda17f
feat: add import capability for all maintenance resources + Send Work…
roncodes Apr 1, 2026
b242b10
few minor patches
roncodes Apr 1, 2026
54b46ef
Merge branch 'feat/complete-maintenance-module' of github.com:fleetba…
roncodes Apr 1, 2026
873dca6
fix: cost-panel in-memory line items and numbersOnly monetary getters
roncodes Apr 1, 2026
0d669c3
feat: rich Send Work Order confirmation modal with vendor and subject…
roncodes Apr 1, 2026
0ffa07e
fix: add app re-export for modals/send-work-order component
roncodes Apr 1, 2026
d3f62e4
fix: remove slug from WorkOrder fillable and add code auto-generation…
roncodes Apr 1, 2026
c113dfc
fix cost panel item format-currency bit
roncodes Apr 1, 2026
4e72e62
fix: resolve column mismatch errors on equipment, parts, work_orders …
roncodes Apr 1, 2026
047def9
fix: properly handle photo_uuid and public_id column issues
roncodes Apr 1, 2026
fcba12e
feat(maintenance): improve all resource detail components with proper…
roncodes Apr 1, 2026
43dc608
fix: normalise line_items unit_cost to cents and eager-load maintaina…
roncodes Apr 1, 2026
bc5a228
several small fixes
roncodes Apr 1, 2026
d9cccc0
fix: pass explicit uuid column names to all morphTo() calls
roncodes Apr 1, 2026
b4735d2
fix: add public_id to equipments table via new idempotent migration
roncodes Apr 1, 2026
eb91528
fix: add missing status, currency, public_id columns to parts table
roncodes Apr 1, 2026
4e65033
fix(resources): use bare class_basename slug in polymorphic type inje…
roncodes Apr 1, 2026
ec96668
fix(resources): resolve polymorphic embedded records to concrete Embe…
roncodes Apr 4, 2026
27b0f59
fixes and tweaks
roncodes Apr 4, 2026
2fd7d9e
fix(mail): use markdown instead of view in WorkOrderDispatched
roncodes Apr 4, 2026
ff4a4f4
feat(maintenance-schedules): add reminder emails, iCal export, and ca…
roncodes Apr 4, 2026
677e29c
feat(maintenance-schedule): implement reminder offsets, iCal export, …
roncodes Apr 4, 2026
c086417
refactor(maintenance-schedule): replace view toggle with dropdown-but…
roncodes Apr 4, 2026
c0a39a5
fix(maintenance-schedule): unwrap response.events from calendar-feed …
roncodes Apr 4, 2026
16f0d8c
refactor: move calendar exports to actionButtons dropdown; add vehicl…
roncodes Apr 4, 2026
c13c7d8
fix(calendar-feed): expand recurring schedules across the requested d…
roncodes Apr 4, 2026
0c23e39
fix(calendar-feed): restore plain public_id as event id for recurring…
roncodes Apr 4, 2026
d7a4fe0
ready
roncodes Apr 4, 2026
2918f2a
Merge pull request #215 from fleetbase/feat/complete-maintenance-module
roncodes Apr 5, 2026
093bc96
fix: use async/await in modal confirm callbacks and ember-concurrency…
Apr 5, 2026
be21c62
feat: add missing i18n keys for driver scheduling components
Apr 5, 2026
992cd08
fix: correct YAML indentation in all locale translation files and add…
Apr 5, 2026
f7cf770
fix: add missing app/ re-exports for driver/schedule and modal compon…
Apr 5, 2026
5148ddf
feat: add fleet-wide driver-schedules route with FullCalendar resourc…
Apr 5, 2026
c31feb3
refactor(scheduler): convert to tabbed parent outlet with fleet-sched…
Apr 5, 2026
784715e
fix(scheduler): timezone null error, missing i18n keys, driver schedu…
Apr 5, 2026
47fac34
fix(driver-schedule): remove redundant header, default recurring, fix…
Apr 5, 2026
86dfa6c
fix(modals): correct on-input handler pattern across all scheduler mo…
Apr 5, 2026
a2b729b
refactor(modals): simplify inputs to use @value two-way binding on @o…
Apr 5, 2026
121ce9d
fix: hos-status 404, schedule-item date range queries, and driver loo…
Apr 5, 2026
922db3a
feat(scheduler): full unified scheduler refactor
Apr 5, 2026
b20f22b
fix: explicit UUID-based FK columns on Driver morphMany relationships
Apr 5, 2026
cf489b9
fix: HOS panel open by default, fix start_at/end_at for exceptions, f…
Apr 5, 2026
5cf6cad
fix: calendar rolling window, shiftStatusClass helper, and status badge
Apr 5, 2026
3666147
fix: calendar shift blocks not rendering due to unsafe style strings
Apr 5, 2026
e233783
refactor: replace timeline bar calendar with compact 7-day chip grid
Apr 6, 2026
74a17ab
refactor: calendar UI refinements per feedback
Apr 6, 2026
04d0e4b
polish: calendar header, spacing, and dark mode chip colors
Apr 6, 2026
53184c8
feat: add scheduling settings route/menu, fix dark mode chip/toggle c…
Apr 6, 2026
066e4f2
feat: re-export scheduling settings, schedule-based HOS calculation, …
Apr 6, 2026
666fe99
fix: fleet-schedule calendar padding, exception field names, modalsMa…
Apr 6, 2026
82542a2
fix: use driver.uuid instead of driver.id for fleet-schedule calendar
Apr 6, 2026
4869e85
fix(scheduling): resolve availability toggle dark mode, shift chip ba…
Apr 6, 2026
c8c6d95
minor tweaks to scheduler - hotfix driver schedule card/chip
roncodes Apr 6, 2026
8a35c18
Merge branch 'dev-v0.6.39' into feat/driver-scheduling-integration
roncodes Apr 6, 2026
177fbba
Merge pull request #216 from fleetbase/feat/driver-scheduling-integra…
roncodes Apr 6, 2026
57be129
Merge branch 'dev-v0.6.39' into feat/unified-scheduler-refactor
roncodes Apr 6, 2026
0196a96
feat(scheduler): full unified scheduler refactor
Apr 5, 2026
324956a
ran prettier
roncodes Apr 6, 2026
4be6ad4
feat(scheduler): full unified scheduler refactor
Apr 5, 2026
6605b91
Merge branch 'feat/unified-scheduler-refactor' of github.com:fleetbas…
roncodes Apr 6, 2026
6e1286f
Merge pull request #218 from fleetbase/feat/unified-scheduler-refactor
roncodes Apr 6, 2026
6cd0b04
feat(models): add schedule-item Ember Data model and app re-export
Apr 6, 2026
021e9c0
fix(driver): add currentShift MorphOne relationship to resolve eager-…
Apr 6, 2026
d4dbd4a
revert(models): remove schedule-item model from fleetops
Apr 6, 2026
c4fce98
fix(scheduler): resolve isOrderSelected binding error and eager drive…
Apr 6, 2026
c0e1734
feat(scheduler): migrate resource timeline to EventCalendar component
Apr 6, 2026
53b729d
Merge pull request #220 from fleetbase/feat/scheduler-event-calendar-…
roncodes Apr 6, 2026
ba0059b
fix(scheduler): resolve EventCalendar styling, drag-drop, height, and…
Apr 6, 2026
7edaff2
Merge pull request #221 from fleetbase/feat/scheduler-event-calendar-…
roncodes Apr 6, 2026
21aba5a
fix(scheduler): 9 follow-up UI/UX improvements
Apr 6, 2026
3df2775
fix: scheduler follow-up fixes (round 4)
Apr 6, 2026
532667a
fix: correct orders endpoint prefix in scheduling service
Apr 6, 2026
41eeda3
fix: improve timeline event card readability and search icon positioning
Apr 6, 2026
45af285
fix(scheduler): multi-select crash + company timezone for timeline
Apr 6, 2026
8b0fba7
fix(scheduler): correct event positioning, day display, and 24h time
Apr 6, 2026
0493629
set slotWidth to 90
roncodes Apr 6, 2026
8f524a6
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 6, 2026
a51c1e7
fix(scheduler): correct timezone handling for @event-calendar/core
Apr 6, 2026
e216be4
fix(scheduler): use timezoneOffsetMins for clean timezone support
Apr 7, 2026
a7b5aad
constrain section header width
roncodes Apr 7, 2026
11578b6
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 7, 2026
ecef421
fix(scheduler): remove Add Shift button from Order Schedule header
Apr 7, 2026
d476c29
fix(scheduler): add missing translation keys and default to week view
Apr 7, 2026
d745e4d
fix(scheduler): fix companyTimezoneOffsetMins reactivity and -0 coercion
Apr 7, 2026
ab8e741
added debug logging
roncodes Apr 7, 2026
80a7cd5
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 7, 2026
91e25d2
fix(scheduler): fix allActiveOrders to filter by full view window (da…
Apr 7, 2026
c2d13ef
fix(scheduler): remove date window filter from allActiveOrders
Apr 7, 2026
8d2d61e
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 7, 2026
724f4c1
fix(scheduler): fix timezone display using client-side date conversion
Apr 7, 2026
0e77a84
ran formatter
roncodes Apr 7, 2026
5cbf6f6
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 7, 2026
77f3de2
ran prettier on templates
roncodes Apr 7, 2026
e816f42
fix(scheduler): update stale route comment for viewDate initialisation
Apr 7, 2026
ecf3bab
debug: log viewDate, companyTimezone and new Date() fields in setCale…
Apr 7, 2026
92bccc9
fix(scheduler): navigate to today immediately after calendar is ready
Apr 7, 2026
2eeb02a
fix(scheduler): remove @date arg from EventCalendar — let library def…
Apr 7, 2026
311bd69
debug: strip EventCalendar to bare minimum args for date isolation test
Apr 7, 2026
78a9382
debug: remove setOption(date) from setCalendarApi to test library def…
Apr 7, 2026
17590e4
revert: undo debug/date-fix attempts, restore to clean state
Apr 7, 2026
9a78114
Merge branch 'dev-v0.6.39' into feat/intelligent-order-allocation-engine
roncodes Apr 7, 2026
09d9d0a
Merge pull request #217 from fleetbase/feat/intelligent-order-allocat…
roncodes Apr 7, 2026
ff4fd56
fix(smart-allocation): add app re-exports, translations, and remove p…
Apr 7, 2026
cf08b71
fix(smart-allocation): move settings endpoints to SettingController, …
Apr 7, 2026
4d23dec
refactor(orchestrator): rename allocation/order-allocation feature to…
Apr 7, 2026
27092b5
refactor(orchestrator): rename getAllocationSettings/saveAllocationSe…
Apr 8, 2026
8c4cf72
feat(orchestrator): full workbench refactor, import modal, constraint…
Apr 8, 2026
4dad206
fix(orchestrator): fix waypoints migration column ref and add constra…
Apr 8, 2026
75e2b75
remove unnecessary files
roncodes Apr 8, 2026
033c497
fix(orchestrator): null-guard mapReady/orderMarkerIcon and fix invali…
Apr 8, 2026
8de83d4
fix(orchestrator): correct component patterns, div-icon markers, and …
Apr 8, 2026
5d1a3bf
fix(orchestrator): map default coords, richer order cards, tabbed dri…
Apr 8, 2026
4c0018b
fix(orchestrator): map setView imperative, avatar cards, run message …
Apr 8, 2026
bfbab10
minor ui tweaks
roncodes Apr 8, 2026
48c8ece
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 8, 2026
b94524b
fix(orchestrator): order cards show all 6 fields with dash fallback, …
Apr 8, 2026
b4ece87
fix(orchestrator): remove duplicate closing </div> in order card body…
Apr 8, 2026
91d216d
fix(orchestrator): add all 7 missing translation keys; darken dark-mo…
Apr 8, 2026
5a496dc
set correct map wrapper class
roncodes Apr 8, 2026
8b88d39
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 8, 2026
2ea1df5
fix(orchestrator): resolve map rendering at 0,0 (ocean) by removing m…
Apr 8, 2026
e0f233c
added justify-between to orchestrator vehicle card title
roncodes Apr 8, 2026
a15bb94
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 8, 2026
ef39ee7
debug(orchestrator): add console logs to map init; fix proxy public_i…
Apr 8, 2026
21cba64
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 8, 2026
5939a0f
feat(orchestrator): add client-side search and filter to driver/vehic…
Apr 8, 2026
e0dbe96
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 9, 2026
95068ab
fix(orchestrator): remove orphaned {{else}}/{{/if}} after </LeafletMap>
Apr 9, 2026
7ecfc5d
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 9, 2026
cb069d5
fix(orchestrator): fix map onMapLoad callback signature and tile URL
Apr 9, 2026
3e1cb39
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 9, 2026
7ad5d1e
fix(live): filter 0,0 coordinates from fleet-ops/live/coordinates end…
Apr 9, 2026
368aa8a
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 9, 2026
2735e2f
fix(orchestrator): checkbox stopPropagation, created date, On Job fil…
Apr 9, 2026
2a5b52b
styling fixes/tweaks
roncodes Apr 9, 2026
902597f
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 9, 2026
b1fe426
fix(translations): remove duplicate orchestrator YAML keys causing Tr…
Apr 9, 2026
4f0f759
feat(orchestrator): Manifest model, phase builder, vehicle/driver mod…
Apr 9, 2026
de2af11
feat(orchestrator): re-export orchestrator sub-components from app di…
Apr 9, 2026
d4f3eb4
fix(orchestrator): resolve 5 UI issues — render error, search padding…
Apr 9, 2026
21b33b5
fix(orchestrator): fix SQL error on order-config-fields, duplicate ca…
Apr 9, 2026
32f5d59
fix(orchestrator): card-fields SQL error, filter button styling, card…
Apr 9, 2026
de21686
fix(orchestrator): use ember-leaflet {{div-icon}} helper for waypoint…
Apr 9, 2026
b063705
fix(orchestrator): custom fields uuid key, settings panel open, resiz…
Apr 9, 2026
ff37884
ran php-cs-fixer
roncodes Apr 9, 2026
65c13b4
minor styling changes to orchestrator components
roncodes Apr 9, 2026
d9d807c
fix(orchestrator): exclude empty order configs from card-fields endpo…
Apr 9, 2026
a05b0d0
fix(orchestrator): safeMeta wrapper for Vehicle meta TypeError; fix c…
Apr 9, 2026
fa6b118
fix(orchestrator): correct VROOM endpoint, API key, greedy fallback, …
Apr 9, 2026
aed62bf
fix(orchestrator): default to greedy engine; fix custom field rendering
Apr 9, 2026
9765a2d
refactor(orchestration): rename Allocation→Orchestration namespace; a…
Apr 9, 2026
3b7dad5
set better defasult panel widhts for orchestrator
roncodes Apr 9, 2026
8de13c5
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 9, 2026
c25fdad
chore(orchestration): remove legacy Allocation/ directory and Allocat…
Apr 9, 2026
9d938b9
fix orchestration orders query endpoint
roncodes Apr 9, 2026
736f5e1
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 9, 2026
3e8ba10
chore(orchestration): rename app/ re-export shims to match new servic…
Apr 9, 2026
7585506
fix(orchestration): null-guard all driver property accesses in Orches…
Apr 9, 2026
965bad1
fix(orchestration): pass count variable to orchestrator.committed int…
Apr 9, 2026
545a591
fix(orchestration): capture fetch.post return value in commitPlan to …
Apr 9, 2026
89864ca
fix orchestration controller
roncodes Apr 10, 2026
a734e4c
fix(orchestrator): polylines, waypoint tooltips, timeline tab, phase …
Apr 10, 2026
fb443f1
fix(orchestrator): commit stashed Optimize spelling fixes in phase-bu…
Apr 10, 2026
cc0a9a0
fix(orchestrator): support multi-drop orders (payload.waypoints) on map
Apr 10, 2026
3adce25
ux tweaks to phase builder
roncodes Apr 10, 2026
b0f75dd
fix(orchestrator): timeline dates/times, map focus on plan, badge FOR…
Apr 10, 2026
b19807c
fix(orchestrator): use OSRM routing control for route polylines, fix …
Apr 10, 2026
0838442
feat(orchestrator): replace custom Gantt with EventCalendar resourceT…
Apr 10, 2026
9823576
fixed driver maintenance components
roncodes Apr 10, 2026
2cea4c2
fix(orchestrator): EventCalendar styling, route plotting, and emoji r…
Apr 10, 2026
2399aa1
fix(orchestrator): fix 5 workbench issues
Apr 10, 2026
aac7b80
debug(orchestrator): add map center diagnostic logs + fix getUserLoca…
Apr 10, 2026
138b76f
fix(orchestrator): fix marker labels and tooltip binding
Apr 10, 2026
4f145bc
fix(orchestrator): run error display, fitBounds centering, avatar ico…
Apr 10, 2026
2d0ffda
fix(orchestrator): add Change Resources button to run error empty state
Apr 10, 2026
9a65a6d
fix(orchestrator): recognise optimize_routes mode in run controller
Apr 10, 2026
df705b2
feat(orchestrator): improve order pool filters, import modal UX, and …
Apr 10, 2026
2355cc4
tweaks
roncodes Apr 11, 2026
69366b5
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 11, 2026
14c962a
fix(orchestrator-import): proper FileDropzone/UploadButton integratio…
Apr 12, 2026
b8b9c11
feat(orchestrator): comprehensive order import with entity resolution…
Apr 12, 2026
d802b7d
fix(orchestrator-import): redesign column mapping UI and fix [object …
Apr 13, 2026
d8407c4
fix(orchestrator-import): fix column select rendering and restore lat…
Apr 13, 2026
61d56bf
feat(orchestrator-import): entity support, group renames, vehicle gro…
Apr 13, 2026
b968ffa
feat(orchestrator-import): multi-entity support per order via order_r…
Apr 13, 2026
416eb2a
fix(orchestrator-import): loading state on Confirm Import button prev…
Apr 13, 2026
1432ea5
feat(orchestrator-import): UI polish - header bg, min body height, ar…
Apr 13, 2026
e82d79a
feat(orchestrator): UI polish — gray-800 header, light-mode fixes, ad…
Apr 13, 2026
6afee0c
fix(orchestrator): light-mode section header bg, mapping label colors…
Apr 13, 2026
c6761c0
feat(orchestrator): single collapse/expand toggle, line-clamp route a…
Apr 13, 2026
5c90b0a
fix(import-modal): scope header/tab CSS to .fleetops-order-import class
Apr 13, 2026
f1dfcea
fix(import-modal): correct header+step-tabs CSS using full ember-ui s…
Apr 13, 2026
eb92d95
fix(import-modal): use modalHeaderClass to bypass CSS cascade conflict
Apr 13, 2026
6c96cee
feat: wire S3 template download, restyle download block, add importOr…
Apr 13, 2026
d60cd1e
fix: pin download template block to bottom of import modal body
Apr 13, 2026
3badd6c
fix: correct class name reference in downloadTemplate (OrchestratorIm…
Apr 13, 2026
3db7fe8
ran formatters
roncodes Apr 13, 2026
d4e7a1f
feat: replace download template block with InfoBlock component
Apr 13, 2026
ce91fcc
Few order import modal tweaks
roncodes Apr 13, 2026
bf6379d
fix: add SheetJS xlsx parsing for xlsx/xls file imports
Apr 13, 2026
08db750
fix(import): persist pickup/dropoff places to DB and ensure order poo…
Apr 13, 2026
874b64a
Fix translations from `row` to `order` language for order imports
roncodes Apr 13, 2026
e9da7c6
fleetops sidebar extended to allow registration to all standard menu …
roncodes Apr 13, 2026
af6ca4a
Upgraded dependencies
roncodes Apr 13, 2026
711324a
fix(orchestrator): proper route sequencing per vehicle, matching stop…
Apr 13, 2026
2c3dcd9
fix(orchestrator): multi-phase assign_vehicles + assign_drivers witho…
Apr 13, 2026
6620989
fix(orchestrator): driver availability and standalone assign_drivers …
Apr 13, 2026
72cba96
fix(orchestrator): remove invalid location eager-load on Driver model
Apr 13, 2026
6e53f6d
fix(orchestrator): remove invalid location eager-load on Vehicle->dri…
Apr 13, 2026
cc4492b
fix: remove location from eager-load in optimize_routes phase
Apr 13, 2026
9420ef1
fix(orchestrator): fix 5 plan-viewer issues — driver grouping, pickup…
Apr 13, 2026
d8ebcdd
fix(orchestrator): fix driver grouping, multi-stop display and polyli…
Apr 13, 2026
d7ca3a3
feat(orchestrator): redesign plan-viewer stop list with per-stop rows…
Apr 13, 2026
8368877
fix(orchestrator): add order tracking number header above each stop g…
Apr 13, 2026
4bc8ff9
fix(orchestrator): add manifest_uuid to Order fillable; guard DB::rol…
Apr 13, 2026
62599b3
fix(lint): resolve all CSS and JS lint errors in fleetops-engine.css,…
Apr 14, 2026
c853c88
feat(orchestrator): default-open constraint panels, time-window → tim…
Apr 14, 2026
fdebdae
revert: restore time_window_start/end to full datetime (DATETIME colu…
Apr 14, 2026
08d5015
feat(order-form): pre-populate time_window date from scheduled_at (fa…
Apr 14, 2026
72fab6b
feat(order): add time_window mutators to normalise date from schedule…
Apr 14, 2026
0521d56
small tweaks
roncodes Apr 14, 2026
162fe36
Merge branch 'dev-v0.6.39' of github.com:fleetbase/fleetops into dev-…
roncodes Apr 14, 2026
916b197
ran formatters
roncodes Apr 14, 2026
18f7493
fix styling lint errors
roncodes Apr 14, 2026
978633e
fix: resolve all remaining JS and HBS lint errors
Apr 14, 2026
e27a9e4
fix: remove unused _vehicle parameter from _buildRouteWaypoints
Apr 14, 2026
367d754
fix: clean up _buildRouteWaypoints call site to match updated signature
Apr 14, 2026
7962f40
all dependencies upgraded
roncodes Apr 14, 2026
d3cab24
fix orchestrator plan timeline styling
roncodes Apr 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 2 additions & 12 deletions addon/components/activity/form.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,8 @@
@disabled={{cannot "fleet-ops update order-config"}}
{{on "input" this.setActivityCode}}
/>
<InputGroup
@name={{t "activity.form.status"}}
@value={{@resource.status}}
@disabled={{cannot "fleet-ops update order-config"}}
@helpText={{t "activity.form.status-help-text"}}
/>
<InputGroup
@name={{t "activity.form.details"}}
@value={{@resource.details}}
@disabled={{cannot "fleet-ops update order-config"}}
@helpText={{t "activity.form.details-help-text"}}
/>
<InputGroup @name={{t "activity.form.status"}} @value={{@resource.status}} @disabled={{cannot "fleet-ops update order-config"}} @helpText={{t "activity.form.status-help-text"}} />
<InputGroup @name={{t "activity.form.details"}} @value={{@resource.details}} @disabled={{cannot "fleet-ops update order-config"}} @helpText={{t "activity.form.details-help-text"}} />
<InputGroup>
<Toggle @isToggled={{@resource.complete}} @onToggle={{fn (mut @resource.complete)}} @disabled={{cannot "fleet-ops update order-config"}}>
<span class="dark:text-gray-100 text-sm ml-2">{{t "activity.form.completes-order"}}</span>
Expand Down
2 changes: 1 addition & 1 deletion addon/components/activity/logic-builder.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
{{else}}
<div class="min-h-24 p-4">
<div class="flex items-center justify-center border border-dashed border-gray-300 dark:border-gray-600 p-6 rounded-xl bg-gray-50 dark:bg-gray-800">
<div class="flex flex-col items-center justify-center ">
<div class="flex flex-col items-center justify-center">
<FaIcon @icon="layer-group" @size="2x" class="text-gray-400 mb-2" />
<div class="text-sm text-gray-600 dark:text-gray-400 font-medium">
No activity logic
Expand Down
24 changes: 4 additions & 20 deletions addon/components/custom-entity/form.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -21,32 +21,16 @@
</ContentPanel>
<ContentPanel @title={{t "custom-entity.fields.measurements"}} @open={{true}} @wrapperClass="bordered-top">
<div class="grid grid-cols-2 gap-2">
<InputGroup
@name={{t "custom-entity.fields.length"}}
@helpText={{t "custom-entity.fields.length-text"}}
@wrapperClass="mb-2"
>
<InputGroup @name={{t "custom-entity.fields.length"}} @helpText={{t "custom-entity.fields.length-text"}} @wrapperClass="mb-2">
<UnitInput class="w-full" @value={{@resource.length}} @unit={{@resource.dimensions_unit}} @canSelectUnit={{true}} @onUnitChange={{this.updateCustomEntityDimensionsUnit}} />
</InputGroup>
<InputGroup
@name={{t "custom-entity.fields.width"}}
@helpText={{t "custom-entity.fields.width-text"}}
@wrapperClass="mb-2"
>
<InputGroup @name={{t "custom-entity.fields.width"}} @helpText={{t "custom-entity.fields.width-text"}} @wrapperClass="mb-2">
<UnitInput class="w-full" @value={{@resource.width}} @unit={{@resource.dimensions_unit}} @canSelectUnit={{true}} @onUnitChange={{this.updateCustomEntityDimensionsUnit}} />
</InputGroup>
<InputGroup
@name={{t "custom-entity.fields.height"}}
@helpText={{t "custom-entity.fields.height-text"}}
@wrapperClass="mb-2"
>
<InputGroup @name={{t "custom-entity.fields.height"}} @helpText={{t "custom-entity.fields.height-text"}} @wrapperClass="mb-2">
<UnitInput class="w-full" @value={{@resource.height}} @unit={{@resource.dimensions_unit}} @canSelectUnit={{true}} @onUnitChange={{this.updateCustomEntityDimensionsUnit}} />
</InputGroup>
<InputGroup
@name={{t "custom-entity.fields.weight"}}
@helpText={{t "custom-entity.fields.weight-text"}}
@wrapperClass="mb-2"
>
<InputGroup @name={{t "custom-entity.fields.weight"}} @helpText={{t "custom-entity.fields.weight-text"}} @wrapperClass="mb-2">
<UnitInput
class="w-full"
@value={{@resource.weight}}
Expand Down
18 changes: 3 additions & 15 deletions addon/components/device/form.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
>
<div class="space-x-2 text-sm">
<div class="inline-block align-top">
<div class="hide-from-trigger h-1.5 w-full" />
<div class="hide-from-trigger h-1.5 w-full"></div>
<Image src={{model.provider_descriptor.icon}} class="w-5 h-5" />
</div>
<div class="inline-block">
Expand Down Expand Up @@ -82,13 +82,7 @@
</div>
<div class="grid grid-cols-1 gap-2 lg:grid-cols-2 lg:gap-2 no-input-group-padding text-xs">
<InputGroup @name={{t "device.fields.device-name"}}>
<Input
@value={{@resource.name}}
@type="text"
class="w-full form-input"
placeholder={{t "device.fields.device-name-placeholder"}}
disabled={{cannot-write @resource}}
/>
<Input @value={{@resource.name}} @type="text" class="w-full form-input" placeholder={{t "device.fields.device-name-placeholder"}} disabled={{cannot-write @resource}} />
</InputGroup>

<InputGroup @name={{t "device.fields.device-id"}}>
Expand All @@ -112,13 +106,7 @@
</InputGroup>

<InputGroup @name={{t "device.fields.device-model"}}>
<Input
@value={{@resource.model}}
@type="text"
class="w-full form-input"
placeholder={{t "device.fields.device-model-placeholder"}}
disabled={{cannot-write @resource}}
/>
<Input @value={{@resource.model}} @type="text" class="w-full form-input" placeholder={{t "device.fields.device-model-placeholder"}} disabled={{cannot-write @resource}} />
</InputGroup>

<InputGroup @name={{t "device.fields.manufacturer"}}>
Expand Down
15 changes: 13 additions & 2 deletions addon/components/device/panel-header.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,26 @@
<div class="flex flex-1 flex-row items-start justify-between">
<div class="flex flex-row space-x-3">
<div class="flex items-start justify-start rounded-full">
<Image src={{@resource.photo_url}} @fallbackSrc={{config "defaultValues.placeholderImage"}} alt={{@resource.displayName}} height="48" width="48" class="h-14 w-14 rounded-full shadow-sm" />
<Image
src={{@resource.photo_url}}
@fallbackSrc={{config "defaultValues.placeholderImage"}}
alt={{@resource.displayName}}
height="48"
width="48"
class="h-14 w-14 rounded-full shadow-sm"
/>
<Attach::Tooltip @class="clean" @animation="scale" @placement="top">
<InputInfo @text={{@resource.displayName}} />
</Attach::Tooltip>
</div>
<div class="flex flex-col">
<h1 class="text-gray-900 dark:text-white font-semibold text-lg">{{@resource.displayName}}</h1>
<div>
<div class="text-xs text-gray-400 dark:text-gray-500">{{concat (n-a (titleize @resource.provider)) " " (n-a (get-fleet-ops-option-label "deviceTypes" @resource.type))}}</div>
<div class="text-xs text-gray-400 dark:text-gray-500">{{concat
(n-a (titleize @resource.provider))
" "
(n-a (get-fleet-ops-option-label "deviceTypes" @resource.type))
}}</div>
<div class="text-xs text-gray-400 dark:text-gray-500">{{n-a @resource.serial_number}}</div>
</div>
<Badge @status={{if @resource.online "online" "offline"}}>{{if @resource.online (t "common.online") (t "common.offline")}}</Badge>
Expand Down
10 changes: 2 additions & 8 deletions addon/components/driver-onboard-settings.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,7 @@
</div>
</InputGroup>
{{#if this.driverOnboardSettings.enableDriverOnboardFromApp}}
<InputGroup
@name={{t "driver-onboard-settings.select-onboard-method"}}
@helpText={{t "driver-onboard-settings.select-onboard-method-help-text"}}
>
<InputGroup @name={{t "driver-onboard-settings.select-onboard-method"}} @helpText={{t "driver-onboard-settings.select-onboard-method-help-text"}}>
<Select
class="w-full flex-1"
@value={{this.driverOnboardSettings.driverOnboardAppMethod}}
Expand All @@ -41,10 +38,7 @@
@onDataChanged={{this.onOnboardDocumentsChanged}}
@addButtonText={{t "driver-onboard-settings.add-onboard-document"}}
>
<InputLabel
@labelText={{t "driver-onboard-settings.required-onboard-documents"}}
@helpText={{t "driver-onboard-settings.required-onboard-documents-help-text"}}
/>
<InputLabel @labelText={{t "driver-onboard-settings.required-onboard-documents"}} @helpText={{t "driver-onboard-settings.required-onboard-documents-help-text"}} />
</ArrayInput>
</InputGroup>
{{/if}}
Expand Down
35 changes: 33 additions & 2 deletions addon/components/driver/details.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,45 @@
</div>
</div>
</ContentPanel>

<CustomField::Yield @subject={{@resource}} @viewMode={{true}} @wrapperClass="bordered-top" />

<RegistryYield @registry="fleet-ops:component:driver:details" as |RegistryComponent|>
<RegistryComponent @resource={{@resource}} @controller={{@controller}} @permission={{get-write-permission @resource}} />
</RegistryYield>

<ContentPanel @title={{t "common.metadata"}} @open={{true}} @actionButtons={{this.metadataButtons}} @wrapperClass="bordered-top" @panelBodyWrapperClass={{unless (is-object-empty @resource.meta) "px-0i" ""}}>
{{! ORCHESTRATOR CONSTRAINTS (read-only view) }}
{{#if (or @resource.skills.length @resource.max_distance @resource.max_travel_time)}}
<ContentPanel @title="Orchestrator Constraints" @open={{true}} @wrapperClass="bordered-top">
<div class="grid grid-cols-2 gap-2 text-xs dark:text-gray-100">
{{#if @resource.skills.length}}
<div class="field-info-container col-span-2">
<div class="field-name">Skills & Certifications</div>
<div class="field-value">{{join @resource.skills ", "}}</div>
</div>
{{/if}}
{{#if @resource.max_travel_time}}
<div class="field-info-container">
<div class="field-name">Max Driving Time</div>
<div class="field-value">{{@resource.max_travel_time}} s</div>
</div>
{{/if}}
{{#if @resource.max_distance}}
<div class="field-info-container">
<div class="field-name">Max Distance</div>
<div class="field-value">{{@resource.max_distance}} m</div>
</div>
{{/if}}
</div>
</ContentPanel>
{{/if}}

<ContentPanel
@title={{t "common.metadata"}}
@open={{true}}
@actionButtons={{this.metadataButtons}}
@wrapperClass="bordered-top"
@panelBodyWrapperClass={{unless (is-object-empty @resource.meta) "px-0i" ""}}
>
<MetadataViewer @metadata={{@resource.meta}} />
</ContentPanel>
</div>
42 changes: 42 additions & 0 deletions addon/components/driver/form.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,48 @@
</RegistryYield>
</ContentPanel>

{{! ORCHESTRATOR CONSTRAINTS }}
<ContentPanel @title="Orchestrator Constraints" @open={{true}} @wrapperClass="bordered-top">
<div class="grid grid-cols-1 gap-2 lg:grid-cols-2 lg:gap-2 no-input-group-padding text-xs">
<div class="col-span-1 lg:col-span-2 text-[11px] uppercase tracking-wide text-gray-500 font-semibold mt-1">
Skills & Certifications
</div>
<div class="col-span-1 lg:col-span-2">
<InputGroup @name="Driver Skills" @helpText="Skills and certifications this driver holds (e.g. refrigerated, hazmat, forklift). Used by the Orchestrator for order matching.">
<MultiSelect
@options={{get-fleet-ops-options "driverSkills"}}
@selected={{@resource.skills}}
@onChange={{fn (mut @resource.skills)}}
@placeholder="Select skills…"
@triggerClass="form-select form-input"
@disabled={{cannot-write @resource}}
as |option|
>
{{option.label}}
</MultiSelect>
</InputGroup>
</div>
<div class="col-span-1 lg:col-span-2 text-[11px] uppercase tracking-wide text-gray-500 font-semibold mt-3">
Route Limits
</div>
<div class="col-span-1 lg:col-span-2 text-xs text-gray-500 dark:text-gray-400 -mt-1">
Hard caps applied by the Orchestrator when building a single route. These are separate from the driver's shift schedule, which controls availability windows.
</div>
<InputGroup
@name="Max Driving Time (seconds)"
@helpText="Maximum total driving time in seconds the Orchestrator may assign to this driver in a single route. Leave blank for no limit. Example: 28800 = 8 hours."
>
<Input @value={{@resource.max_travel_time}} @type="number" class="form-input w-full" placeholder="e.g. 28800 (8 h)" disabled={{cannot-write @resource}} />
</InputGroup>
<InputGroup
@name="Max Distance (metres)"
@helpText="Maximum total route distance in metres the Orchestrator may assign to this driver in a single route. Leave blank for no limit."
>
<Input @value={{@resource.max_distance}} @type="number" class="form-input w-full" placeholder="e.g. 150000 (150 km)" disabled={{cannot-write @resource}} />
</InputGroup>
</div>
</ContentPanel>

<CustomField::Yield @subject={{@resource}} @wrapperClass="bordered-top" />

<RegistryYield @registry="fleet-ops:component:driver:form" as |RegistryComponent|>
Expand Down
9 changes: 8 additions & 1 deletion addon/components/driver/panel-header.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,14 @@
<div class="flex flex-1 flex-row items-start justify-between">
<div class="flex flex-row space-x-3">
<div class="flex items-start justify-start rounded-full">
<Image src={{@resource.photo_url}} @fallbackSrc={{config "defaultValues.driverImage"}} alt={{@resource.name}} height="48" width="48" class="h-14 w-14 rounded-full shadow-sm" />
<Image
src={{@resource.photo_url}}
@fallbackSrc={{config "defaultValues.driverImage"}}
alt={{@resource.name}}
height="48"
width="48"
class="h-14 w-14 rounded-full shadow-sm"
/>
<Attach::Tooltip @class="clean" @animation="scale" @placement="top">
<InputInfo @text={{@resource.name}} />
</Attach::Tooltip>
Expand Down
Loading
Loading