@fleetbase/fleetops-engine 0.6.63 → 0.6.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/RELEASE.md +7 -6
  2. package/addon/components/attachment-list.hbs +65 -0
  3. package/addon/components/attachment-list.js +8 -0
  4. package/addon/components/cell/attached-vehicle.hbs +1 -1
  5. package/addon/components/cell/attached-vehicle.js +3 -3
  6. package/addon/components/cell/driver-identity.js +4 -4
  7. package/addon/components/cell/driver-name.hbs +1 -1
  8. package/addon/components/cell/translated-value.hbs +9 -0
  9. package/addon/components/cell/translated-value.js +57 -0
  10. package/addon/components/contact/card.hbs +58 -0
  11. package/addon/components/contact/card.js +19 -0
  12. package/addon/components/contact/form.hbs +1 -1
  13. package/addon/components/contact/panel-header.hbs +1 -1
  14. package/addon/components/customer/form.hbs +2 -2
  15. package/addon/components/device/manager.hbs +26 -28
  16. package/addon/components/device/manager.js +28 -2
  17. package/addon/components/device/panel-tabs/vehicle.hbs +13 -13
  18. package/addon/components/device/panel-tabs/vehicle.js +8 -0
  19. package/addon/components/driver/card.hbs +24 -13
  20. package/addon/components/driver/card.js +20 -6
  21. package/addon/components/driver/form.hbs +3 -3
  22. package/addon/components/driver/panel-header.hbs +2 -2
  23. package/addon/components/driver/pill.hbs +2 -2
  24. package/addon/components/equipment/form.js +11 -4
  25. package/addon/components/equipment/pill.hbs +20 -0
  26. package/addon/components/equipment/pill.js +3 -0
  27. package/addon/components/filter/multi-model.hbs +19 -0
  28. package/addon/components/filter/multi-model.js +90 -0
  29. package/addon/components/fleet/driver-listing.hbs +1 -1
  30. package/addon/components/fleet/vehicle-listing.hbs +1 -1
  31. package/addon/components/fleet-panel/driver-listing.hbs +1 -1
  32. package/addon/components/fleet-panel/vehicle-listing.hbs +1 -1
  33. package/addon/components/layout/fleet-ops-sidebar.js +9 -7
  34. package/addon/components/maintenance/form.js +12 -4
  35. package/addon/components/maintenance-schedule/form.js +13 -7
  36. package/addon/components/map/leaflet-live-map.hbs +52 -0
  37. package/addon/components/map/order-list-overlay/order.hbs +4 -4
  38. package/addon/components/modals/attach-equipment.hbs +22 -0
  39. package/addon/components/modals/attach-equipment.js +3 -0
  40. package/addon/components/modals/attach-telematic-device.hbs +13 -8
  41. package/addon/components/modals/attach-telematic-device.js +11 -1
  42. package/addon/components/modals/attach-trailer.hbs +30 -0
  43. package/addon/components/modals/attach-trailer.js +3 -0
  44. package/addon/components/modals/contact-form.hbs +2 -2
  45. package/addon/components/modals/convert-customer-to-vendor.hbs +1 -1
  46. package/addon/components/modals/driver-form.hbs +2 -2
  47. package/addon/components/modals/select-trailer.hbs +35 -0
  48. package/addon/components/modals/select-trailer.js +3 -0
  49. package/addon/components/modals/vehicle-form.hbs +2 -2
  50. package/addon/components/orchestrator/resource-panel.hbs +2 -2
  51. package/addon/components/order/customer-avatar-stack.hbs +2 -2
  52. package/addon/components/order/details/detail.hbs +4 -4
  53. package/addon/components/order/details/payload.hbs +2 -2
  54. package/addon/components/order/kanban-card.hbs +4 -4
  55. package/addon/components/order-list-overlay/order.hbs +4 -4
  56. package/addon/components/trailer/card.hbs +68 -0
  57. package/addon/components/trailer/card.js +22 -0
  58. package/addon/components/trailer/details/connections.hbs +57 -0
  59. package/addon/components/trailer/details/connections.js +59 -0
  60. package/addon/components/trailer/details/equipment.hbs +25 -0
  61. package/addon/components/trailer/details/equipment.js +52 -0
  62. package/addon/components/trailer/details/maintenance-history.hbs +47 -0
  63. package/addon/components/trailer/details/maintenance-history.js +40 -0
  64. package/addon/components/trailer/details/schedules.hbs +45 -0
  65. package/addon/components/trailer/details/schedules.js +40 -0
  66. package/addon/components/trailer/details/work-orders.hbs +47 -0
  67. package/addon/components/trailer/details/work-orders.js +40 -0
  68. package/addon/components/trailer/details.hbs +399 -0
  69. package/addon/components/trailer/details.js +118 -0
  70. package/addon/components/trailer/form.hbs +447 -0
  71. package/addon/components/trailer/form.js +165 -0
  72. package/addon/components/trailer/panel-header.hbs +45 -0
  73. package/addon/components/trailer/panel-header.js +3 -0
  74. package/addon/components/trailer/pill.hbs +21 -0
  75. package/addon/components/trailer/pill.js +3 -0
  76. package/addon/components/vehicle/card.hbs +42 -11
  77. package/addon/components/vehicle/card.js +31 -0
  78. package/addon/components/vehicle/details/equipment.hbs +25 -0
  79. package/addon/components/vehicle/details/equipment.js +55 -0
  80. package/addon/components/vehicle/details/trailers.hbs +35 -0
  81. package/addon/components/vehicle/details/trailers.js +55 -0
  82. package/addon/components/vehicle/form.hbs +2 -2
  83. package/addon/components/vehicle/panel-header.hbs +2 -2
  84. package/addon/components/vehicle/pill.hbs +2 -2
  85. package/addon/components/vendor/card.hbs +58 -0
  86. package/addon/components/vendor/card.js +6 -0
  87. package/addon/components/vendor/panel-header.hbs +2 -2
  88. package/addon/components/vendor/personnel-manager.hbs +2 -2
  89. package/addon/components/work-order/form.js +12 -4
  90. package/addon/controllers/connectivity/devices/index/details/vehicle.js +11 -0
  91. package/addon/controllers/connectivity/devices/index/details.js +3 -3
  92. package/addon/controllers/connectivity/devices/index.js +1 -0
  93. package/addon/controllers/connectivity/telematics/details/attachments.js +28 -47
  94. package/addon/controllers/connectivity/telematics/details/devices.js +1 -0
  95. package/addon/controllers/management/contacts/customers.js +4 -0
  96. package/addon/controllers/management/contacts/index.js +32 -0
  97. package/addon/controllers/management/trailers/index/details.js +119 -0
  98. package/addon/controllers/management/trailers/index/edit.js +67 -0
  99. package/addon/controllers/management/trailers/index/new.js +43 -0
  100. package/addon/controllers/management/trailers/index.js +599 -0
  101. package/addon/controllers/management/vehicles/index/details.js +16 -0
  102. package/addon/controllers/management/vehicles/index.js +78 -4
  103. package/addon/controllers/management/vendors/index.js +32 -0
  104. package/addon/controllers/operations/orders/index.js +3 -1
  105. package/addon/controllers/settings/custom-fields.js +8 -0
  106. package/addon/extension.js +7 -0
  107. package/addon/helpers/placeholder-image.js +6 -0
  108. package/addon/helpers/resource-image.js +10 -0
  109. package/addon/helpers/trailer-placeholder-image.js +6 -0
  110. package/addon/routes/management/trailers/index/details/connections.js +2 -0
  111. package/addon/routes/management/trailers/index/details/devices.js +2 -0
  112. package/addon/routes/management/trailers/index/details/equipment.js +2 -0
  113. package/addon/routes/management/trailers/index/details/index.js +2 -0
  114. package/addon/routes/management/trailers/index/details/maintenance-history.js +2 -0
  115. package/addon/routes/management/trailers/index/details/positions.js +2 -0
  116. package/addon/routes/management/trailers/index/details/schedules.js +2 -0
  117. package/addon/routes/management/trailers/index/details/work-orders.js +2 -0
  118. package/addon/routes/management/trailers/index/details.js +30 -0
  119. package/addon/routes/management/trailers/index/edit.js +23 -0
  120. package/addon/routes/management/trailers/index/new.js +14 -0
  121. package/addon/routes/management/trailers/index.js +42 -0
  122. package/addon/routes/management/vehicles/index/details/trailers.js +2 -0
  123. package/addon/routes/management/vehicles/index.js +7 -1
  124. package/addon/routes.js +17 -0
  125. package/addon/services/device-actions.js +26 -16
  126. package/addon/services/trailer-actions.js +394 -0
  127. package/addon/services/vehicle-actions.js +111 -0
  128. package/addon/styles/fleetops-engine.css +349 -0
  129. package/addon/templates/connectivity/devices/index/details/vehicle.hbs +19 -19
  130. package/addon/templates/connectivity/telematics/details/attachments.hbs +15 -15
  131. package/addon/templates/management/contacts/customers.hbs +48 -29
  132. package/addon/templates/management/contacts/index.hbs +52 -33
  133. package/addon/templates/management/trailers/index/details/connections.hbs +1 -0
  134. package/addon/templates/management/trailers/index/details/devices.hbs +1 -0
  135. package/addon/templates/management/trailers/index/details/equipment.hbs +1 -0
  136. package/addon/templates/management/trailers/index/details/index.hbs +1 -0
  137. package/addon/templates/management/trailers/index/details/maintenance-history.hbs +1 -0
  138. package/addon/templates/management/trailers/index/details/positions.hbs +1 -0
  139. package/addon/templates/management/trailers/index/details/schedules.hbs +1 -0
  140. package/addon/templates/management/trailers/index/details/work-orders.hbs +1 -0
  141. package/addon/templates/management/trailers/index/details.hbs +15 -0
  142. package/addon/templates/management/trailers/index/edit.hbs +12 -0
  143. package/addon/templates/management/trailers/index/new.hbs +11 -0
  144. package/addon/templates/management/trailers/index.hbs +67 -0
  145. package/addon/templates/management/vehicles/index/details/equipment.hbs +1 -1
  146. package/addon/templates/management/vehicles/index/details/trailers.hbs +1 -0
  147. package/addon/templates/management/vehicles/index/details.hbs +1 -1
  148. package/addon/templates/management/vendors/index.hbs +66 -32
  149. package/addon/utils/device-table-columns.js +10 -6
  150. package/addon/utils/live-map-card-content.js +56 -0
  151. package/addon/utils/placeholder-images.js +71 -0
  152. package/addon/utils/trailer-placeholder-image.js +11 -0
  153. package/app/components/attachment-list.js +1 -0
  154. package/app/components/cell/translated-value.js +1 -0
  155. package/app/components/contact/card.js +1 -0
  156. package/app/components/equipment/pill.js +1 -0
  157. package/app/components/filter/multi-model.js +1 -0
  158. package/app/components/modals/attach-equipment.js +1 -0
  159. package/app/components/modals/attach-trailer.js +1 -0
  160. package/app/components/modals/select-trailer.js +1 -0
  161. package/app/components/trailer/card.js +1 -0
  162. package/app/components/trailer/details/connections.js +1 -0
  163. package/app/components/trailer/details/equipment.js +1 -0
  164. package/app/components/trailer/details/maintenance-history.js +1 -0
  165. package/app/components/trailer/details/schedules.js +1 -0
  166. package/app/components/trailer/details/work-orders.js +1 -0
  167. package/app/components/trailer/details.js +1 -0
  168. package/app/components/trailer/form.js +1 -0
  169. package/app/components/trailer/panel-header.js +1 -0
  170. package/app/components/trailer/pill.js +1 -0
  171. package/app/components/vehicle/details/equipment.js +1 -0
  172. package/app/components/vehicle/details/trailers.js +1 -0
  173. package/app/components/vendor/card.js +1 -0
  174. package/app/controllers/management/trailers/index/details.js +1 -0
  175. package/app/controllers/management/trailers/index/edit.js +1 -0
  176. package/app/controllers/management/trailers/index/new.js +1 -0
  177. package/app/controllers/management/trailers/index.js +1 -0
  178. package/app/helpers/placeholder-image.js +1 -0
  179. package/app/helpers/resource-image.js +1 -0
  180. package/app/helpers/trailer-placeholder-image.js +1 -0
  181. package/app/routes/management/trailers/index/details/connections.js +1 -0
  182. package/app/routes/management/trailers/index/details/devices.js +1 -0
  183. package/app/routes/management/trailers/index/details/equipment.js +1 -0
  184. package/app/routes/management/trailers/index/details/index.js +1 -0
  185. package/app/routes/management/trailers/index/details/maintenance-history.js +1 -0
  186. package/app/routes/management/trailers/index/details/positions.js +1 -0
  187. package/app/routes/management/trailers/index/details/schedules.js +1 -0
  188. package/app/routes/management/trailers/index/details/work-orders.js +1 -0
  189. package/app/routes/management/trailers/index/details.js +1 -0
  190. package/app/routes/management/trailers/index/edit.js +1 -0
  191. package/app/routes/management/trailers/index/new.js +1 -0
  192. package/app/routes/management/trailers/index.js +1 -0
  193. package/app/routes/management/vehicles/index/details/trailers.js +1 -0
  194. package/app/services/trailer-actions.js +1 -0
  195. package/app/templates/management/trailers/index/details/connections.js +1 -0
  196. package/app/templates/management/trailers/index/details/devices.js +1 -0
  197. package/app/templates/management/trailers/index/details/equipment.js +1 -0
  198. package/app/templates/management/trailers/index/details/index.js +1 -0
  199. package/app/templates/management/trailers/index/details/maintenance-history.js +1 -0
  200. package/app/templates/management/trailers/index/details/positions.js +1 -0
  201. package/app/templates/management/trailers/index/details/schedules.js +1 -0
  202. package/app/templates/management/trailers/index/details/work-orders.js +1 -0
  203. package/app/templates/management/trailers/index/details.js +1 -0
  204. package/app/templates/management/trailers/index/edit.js +1 -0
  205. package/app/templates/management/trailers/index/new.js +1 -0
  206. package/app/templates/management/trailers/index.js +1 -0
  207. package/app/templates/management/vehicles/index/details/trailers.js +1 -0
  208. package/composer.json +1 -1
  209. package/extension.json +1 -1
  210. package/package.json +1 -1
  211. package/server/migrations/2026_09_03_000001_add_first_class_trailer_columns_to_assets_table.php +58 -0
  212. package/server/migrations/2026_09_03_000002_create_asset_connections_table.php +43 -0
  213. package/server/migrations/2026_09_03_000003_create_device_installations_table.php +33 -0
  214. package/server/src/Auth/Schemas/FleetOps.php +7 -0
  215. package/server/src/Events/TrailerLocationChanged.php +70 -0
  216. package/server/src/Exceptions/DeviceAlreadyAttachedException.php +18 -0
  217. package/server/src/Exports/TrailerExport.php +31 -0
  218. package/server/src/Http/Controllers/Api/v1/Concerns/ResolvesFleetOpsApiResources.php +8 -2
  219. package/server/src/Http/Controllers/Api/v1/DeviceController.php +22 -15
  220. package/server/src/Http/Controllers/Api/v1/EquipmentController.php +47 -0
  221. package/server/src/Http/Controllers/Api/v1/TrailerController.php +362 -0
  222. package/server/src/Http/Controllers/Api/v1/VehicleController.php +1 -0
  223. package/server/src/Http/Controllers/Internal/v1/DeviceController.php +3 -0
  224. package/server/src/Http/Controllers/Internal/v1/LiveController.php +1 -1
  225. package/server/src/Http/Controllers/Internal/v1/SearchController.php +16 -0
  226. package/server/src/Http/Controllers/Internal/v1/TrailerController.php +360 -0
  227. package/server/src/Http/Controllers/Internal/v1/VehicleController.php +74 -0
  228. package/server/src/Http/Filter/EquipmentFilter.php +51 -0
  229. package/server/src/Http/Filter/OrderFilter.php +15 -0
  230. package/server/src/Http/Filter/TrailerFilter.php +269 -0
  231. package/server/src/Http/Filter/VehicleFilter.php +70 -3
  232. package/server/src/Http/Requests/CreateDeviceRequest.php +1 -1
  233. package/server/src/Http/Requests/CreateEquipmentRequest.php +1 -1
  234. package/server/src/Http/Requests/CreateTrailerRequest.php +54 -0
  235. package/server/src/Http/Requests/UpdateTrailerRequest.php +7 -0
  236. package/server/src/Http/Resources/v1/AssetConnection.php +90 -0
  237. package/server/src/Http/Resources/v1/Concerns/ResolvesPublicRelationFields.php +29 -3
  238. package/server/src/Http/Resources/v1/Device.php +3 -1
  239. package/server/src/Http/Resources/v1/Equipment.php +3 -1
  240. package/server/src/Http/Resources/v1/Fleet.php +3 -1
  241. package/server/src/Http/Resources/v1/Index/Vehicle.php +10 -0
  242. package/server/src/Http/Resources/v1/Trailer.php +199 -0
  243. package/server/src/Http/Resources/v1/Vehicle.php +2 -0
  244. package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +3 -0
  245. package/server/src/Imports/TrailerImport.php +33 -0
  246. package/server/src/Models/Asset.php +39 -10
  247. package/server/src/Models/AssetConnection.php +43 -0
  248. package/server/src/Models/Device.php +39 -8
  249. package/server/src/Models/DeviceInstallation.php +27 -0
  250. package/server/src/Models/Equipment.php +2 -0
  251. package/server/src/Models/Trailer.php +181 -0
  252. package/server/src/Models/Vehicle.php +13 -0
  253. package/server/src/Providers/FleetOpsServiceProvider.php +4 -2
  254. package/server/src/Support/Ai/FleetOpsAiQueryResources.php +22 -0
  255. package/server/src/Support/Reporting/FleetOpsReportSchema.php +38 -0
  256. package/server/src/Support/Telematics/TelematicService.php +35 -0
  257. package/server/src/Support/TrailerSummary.php +35 -0
  258. package/server/src/routes.php +29 -0
  259. package/server/tests/CompactResourceSerializationTest.php +36 -0
  260. package/server/tests/ControllerFilterContractsTest.php +29 -0
  261. package/server/tests/Feature/Http/Api/DeviceControllerContractsTest.php +30 -13
  262. package/server/tests/Feature/Http/Api/TrailerControllerLifecycleTest.php +640 -0
  263. package/server/tests/Feature/Http/Api/VehiclePublicContractTest.php +23 -0
  264. package/server/tests/Feature/Http/Internal/DeviceControllerContractsTest.php +20 -5
  265. package/server/tests/Feature/Http/Internal/LiveControllerEndpointsTest.php +19 -0
  266. package/server/tests/ModelAccessorContractsTest.php +10 -0
  267. package/server/tests/OrderFilterExecutionTest.php +5 -0
  268. package/server/tests/PublicApiControllerInputContractsTest.php +11 -0
  269. package/server/tests/PublicFleetOpsRestEndpointsTest.php +15 -3
  270. package/server/tests/ReportSchemaContractsTest.php +4 -0
  271. package/server/tests/TelematicsHardeningTest.php +4 -2
  272. package/server/tests/TrailerSupportCoverageTest.php +524 -0
  273. package/server/tests/Unit/Http/Resources/FleetResourceTest.php +17 -0
  274. package/server/tests/Unit/Http/Resources/IndexVehicleResourceTest.php +35 -0
  275. package/server/tests/Unit/Models/EquipmentTest.php +22 -0
  276. package/server/tests/Unit/Models/ModelLookupFallbackSeamsTest.php +7 -3
  277. package/server/tests/Unit/Models/TrailerTest.php +204 -0
  278. package/server/tests/Unit/Support/Telematics/TelematicServiceTelemetryTest.php +93 -0
  279. package/server/tests/VehicleControllerHelperContractsTest.php +14 -0
  280. package/server/tests/VehicleResourceContractsTest.php +39 -0
  281. package/translations/ar-ae.yml +396 -0
  282. package/translations/bg-bg.yaml +424 -0
  283. package/translations/en-us.yaml +423 -0
  284. package/translations/es-pa.yaml +425 -0
  285. package/translations/fr-fr.yaml +424 -0
  286. package/translations/mn-mn.yaml +424 -0
  287. package/translations/pt-br.yaml +424 -0
  288. package/translations/ru-ru.yaml +424 -0
  289. package/translations/vi-vn.yaml +435 -0
@@ -2,6 +2,9 @@ fleet-ops:
2
2
  extension-name: Fleet-Ops
3
3
 
4
4
  common:
5
+ last-modified: Last modified
6
+ "yes": "Yes"
7
+ "no": "No"
5
8
  proof-of-delivery: Proof of Delivery
6
9
  ad-hoc: As-Hoc
7
10
  bulk-dispatch: Bulk Dispatch
@@ -11,6 +14,7 @@ common:
11
14
  unassign-driver: Unassign Driver
12
15
  assign-drivers: Assign Drivers
13
16
  no-driver-assigned: No driver assigned
17
+ no-vehicle-assigned: No vehicle assigned
14
18
  details: Details
15
19
  name: Name
16
20
  title: Title
@@ -55,6 +59,7 @@ common:
55
59
  optional: Optional
56
60
  unauthorized-access: You are not authorized to access this resource.
57
61
  online: Online
62
+ offline: Offline
58
63
  refresh: Refresh
59
64
  loading-route: Loading route...
60
65
  hover-to-load-route: Loading route preview...
@@ -70,6 +75,7 @@ menu:
70
75
  resources: Resources
71
76
  drivers: Drivers
72
77
  vehicles: Vehicles
78
+ trailers: Trailers
73
79
  fleets: Fleets
74
80
  vendors: Vendors
75
81
  contacts: Contacts
@@ -106,9 +112,365 @@ menu:
106
112
  orchestrator: Orchestrator
107
113
  orchestrator-settings: Orchestrator Settings
108
114
 
115
+ trailer:
116
+ navigation-description: Manage towed assets, towing connections, equipment, and telematics.
117
+ sections:
118
+ details: Details
119
+ identification: Trailer identification
120
+ classification: Classification and status
121
+ registration: Registration
122
+ location: Location
123
+ dimensions: Dimensions and capacity
124
+ measurement: Measurement and usage
125
+ dimensions-fields: "Dimensions ({unit})"
126
+ weight: "Weight ({unit})"
127
+ running-gear: Axles, brakes, and coupling
128
+ refrigeration: Refrigeration
129
+ ownership: Ownership and finance
130
+ finance: Financial details
131
+ connection: Towing connection
132
+ telemetry: Location and telematics
133
+ notes: Notes and history
134
+ fields:
135
+ photo: Photo
136
+ id: ID
137
+ name: Name
138
+ code: Code
139
+ description: Description
140
+ type: Trailer type
141
+ body-type: Body type
142
+ color: Color
143
+ status: Status
144
+ category: Category
145
+ vin: VIN
146
+ plate-number: Plate number
147
+ serial-number: Serial number
148
+ make: Make
149
+ model: Model
150
+ year: Year
151
+ vendor: Vendor
152
+ warranty: Warranty
153
+ vehicle: Towing vehicle
154
+ attachment-state: Attachment state
155
+ attached-at: Attached since
156
+ position: Towing position
157
+ source: Source
158
+ connected-at: Connected at
159
+ disconnected-at: Disconnected at
160
+ duration: Duration
161
+ connectivity: Connectivity
162
+ last-online: Last online
163
+ last-provider: Telemetry provider
164
+ last-event-at: Last telemetry event
165
+ coordinates: Coordinates
166
+ speed: Speed
167
+ heading: Heading
168
+ altitude: Altitude
169
+ devices-count: Attached devices
170
+ equipment-count: Attached equipment
171
+ measurement-system: Measurement system
172
+ odometer: "Odometer / hubometer {unit}"
173
+ odometer-unit: Odometer unit
174
+ length: "Length ({unit})"
175
+ width: "Width ({unit})"
176
+ height: "Height ({unit})"
177
+ cargo-volume: "Cargo volume ({unit})"
178
+ tare-weight: "Tare weight ({unit})"
179
+ gvwr: "GVWR ({unit})"
180
+ payload-capacity: "Payload capacity ({unit})"
181
+ axle-count: Axles
182
+ tire-count: Tires
183
+ door-count: Doors
184
+ coupling-type: Coupling type
185
+ brake-type: Brake type
186
+ abs: ABS
187
+ ebs: EBS
188
+ refrigerated: Refrigerated
189
+ temperature-min: "Minimum temperature ({unit})"
190
+ temperature-max: "Maximum temperature ({unit})"
191
+ reefer-hours: Reefer engine hours
192
+ ownership-type: Ownership
193
+ financing-status: Financing status
194
+ currency: Currency
195
+ acquisition-cost: Acquisition cost
196
+ current-value: Current value
197
+ insurance-value: Insured value
198
+ depreciation-rate: Depreciation rate (% per year)
199
+ purchased-at: Purchase date
200
+ lease-expires-at: Lease expiry
201
+ notes: Notes
202
+ created-at: Created
203
+ updated-at: Last updated
204
+ placeholders:
205
+ filter-vendor: Filter by vendor
206
+ name: e.g. Reefer 12
207
+ code: Internal fleet code, e.g. TRL-0012
208
+ description: What this trailer is used for
209
+ type: Select a trailer type
210
+ status: Select a status
211
+ body-type: e.g. Enclosed, curtain side, platform
212
+ color: e.g. White
213
+ category: Select a category (optional)
214
+ vin: 17-character VIN
215
+ plate-number: Registration plate
216
+ serial-number: Manufacturer serial number
217
+ make: e.g. Utility, Schmitz, Wabash
218
+ model: e.g. 3000R
219
+ year: e.g. 2024
220
+ vendor: Select a vendor (optional)
221
+ warranty: Select a warranty (optional)
222
+ vehicle: Select a vehicle
223
+ trailer: Select a trailer
224
+ equipment: Select equipment
225
+ filter-vehicle: Filter by towing vehicle
226
+ position: "1"
227
+ measurement-system: Select a measurement system
228
+ odometer-unit: Select a unit
229
+ odometer: Current reading
230
+ length: "0.000"
231
+ width: "0.000"
232
+ height: "0.000"
233
+ cargo-volume: "0.000"
234
+ tare-weight: "0.000"
235
+ gvwr: "0.000"
236
+ payload-capacity: "0.000"
237
+ axle-count: e.g. 2
238
+ tire-count: e.g. 8
239
+ door-count: e.g. 2
240
+ coupling-type: Select a coupling type
241
+ brake-type: Select a brake type
242
+ temperature-min: e.g. -20
243
+ temperature-max: e.g. 4
244
+ reefer-hours: Hours on the reefer unit
245
+ ownership-type: Select ownership
246
+ financing-status: e.g. Paid off, financed until 2028
247
+ depreciation-rate: e.g. 10
248
+ date: DD-MM-YYYY
249
+ notes: Internal notes about this trailer
250
+ help:
251
+ photo: Upload a photo of this trailer.
252
+ name: The name shown across Fleet-Ops. Required.
253
+ code: Your own fleet reference for this trailer.
254
+ type: The type drives which sections apply, for example refrigeration for reefers.
255
+ status: Lifecycle status. Attachment and connectivity are tracked separately.
256
+ body-type: Free-form body description used for classification and search.
257
+ category: Optional grouping shared with other fleet resources.
258
+ vin: The chassis or vehicle identification number stamped on the trailer.
259
+ coordinates: The last known or home position. Telematics devices update this automatically.
260
+ measurement-system: Determines the units used for dimensions, weights, volume, and temperatures.
261
+ odometer: Hubometer or odometer reading in the selected odometer unit.
262
+ cargo-volume: Usable cargo volume of the trailer body.
263
+ tare-weight: Weight of the empty trailer.
264
+ gvwr: Gross vehicle weight rating, the maximum loaded weight allowed.
265
+ payload-capacity: Maximum cargo weight the trailer may carry.
266
+ coupling-type: How the trailer couples to the towing vehicle.
267
+ abs: Anti-lock braking system fitted.
268
+ ebs: Electronic braking system fitted.
269
+ refrigerated: Enable for temperature-controlled trailers to record reefer settings.
270
+ temperature: Operating temperature range of the reefer unit.
271
+ reefer-hours: Running hours recorded on the refrigeration unit.
272
+ ownership-type: How this trailer is held. Lease and financing details appear when relevant.
273
+ lease-expires-at: When the lease, rental, or financing agreement ends.
274
+ vendor: The vendor or lessor the trailer was sourced from.
275
+ warranty: Warranty policy covering this trailer.
276
+ acquisition-cost: Purchase price or capitalised cost in the selected currency.
277
+ depreciation-rate: Annual depreciation used for the current value estimate.
278
+ attach-vehicle: The trailer will be coupled to the selected vehicle. A trailer can only be attached to one vehicle at a time.
279
+ select-trailer: Only detached trailers are listed.
280
+ select-equipment: Only unattached equipment is listed.
281
+ position: Towing position behind the vehicle. Position 1 is directly behind the tractor; use 2 or more for road trains.
282
+ units:
283
+ length-metric: m
284
+ length-imperial: ft
285
+ weight-metric: kg
286
+ weight-imperial: lb
287
+ volume-metric: m³
288
+ volume-imperial: ft³
289
+ temperature-metric: °C
290
+ temperature-imperial: °F
291
+ actions:
292
+ new: New trailer
293
+ locate: Locate on map
294
+ attach-vehicle: Attach to vehicle
295
+ detach-vehicle: Detach from vehicle
296
+ attach-device: Attach device
297
+ attach-equipment: Attach equipment
298
+ detach-equipment: Detach equipment
299
+ schedule-maintenance: Schedule maintenance
300
+ create-work-order: Create work order
301
+ log-maintenance: Log maintenance
302
+ prompts:
303
+ attach-vehicle-title: "Attach {trailerName} to a vehicle"
304
+ select-vehicle-warning: Select a vehicle to attach this trailer to.
305
+ attach-vehicle-success: "Attached {trailerName} to {vehicleName}."
306
+ detach-vehicle-title: "Detach {trailerName}?"
307
+ detach-vehicle-body: "This ends the current towing connection between {trailerName} and {vehicleName}. The connection is kept in the trailer's history."
308
+ detach-vehicle-success: "Detached {trailerName} from {vehicleName}."
309
+ not-attached-warning: "{trailerName} is not attached to a vehicle."
310
+ attach-device-title: "Attach a device to {trailerName}"
311
+ select-device-warning: Select a device to attach to this trailer.
312
+ attach-device-success: "Device attached to {trailerName}."
313
+ attach-equipment-title: "Attach equipment to {resourceName}"
314
+ select-equipment-warning: Select equipment to attach.
315
+ attach-equipment-success: "Attached {equipmentName} to {resourceName}."
316
+ detach-equipment-title: "Detach {equipmentName}?"
317
+ detach-equipment-body: "{equipmentName} will no longer be equipped to {resourceName}."
318
+ detach-equipment-success: "Detached {equipmentName} from {resourceName}."
319
+ no-location-warning: "{trailerName} has no recorded location yet."
320
+ photo-upload-error: "Unable to upload photo: {message}"
321
+ empty:
322
+ title: Add your first trailer
323
+ description: Trailers track towing connections, attached devices and equipment, live telemetry, and maintenance for your towed assets.
324
+ filtered-title: No trailers match your filters
325
+ filtered-description: Adjust the search or filters to find another trailer.
326
+ connections: No towing history yet
327
+ connections-description: Attach this trailer to a vehicle to start recording towing connections.
328
+ equipment: No equipment attached
329
+ equipment-description: Attach equipment such as liftgates, straps, or reefer units to this trailer.
330
+ schedules: No maintenance schedules
331
+ schedules-description: Create a schedule to plan recurring inspections or service for this trailer.
332
+ work-orders: No work orders
333
+ work-orders-description: Raise a work order to track repairs or service on this trailer.
334
+ maintenance: No maintenance history
335
+ maintenance-description: Logged maintenance for this trailer will appear here.
336
+ docs:
337
+ title: Trailers guide
338
+ link: Open the trailers guide
339
+ tabs:
340
+ overview: Overview
341
+ positions: Positions
342
+ devices: Devices
343
+ equipment: Equipment
344
+ connections: Towing history
345
+ schedules: Schedules
346
+ work-orders: Work orders
347
+ maintenance: Maintenance
348
+ columns:
349
+ name: Name
350
+ id: ID
351
+ code: Code
352
+ type: Type
353
+ plate-number: Plate number
354
+ status: Status
355
+ vehicle: Towing vehicle
356
+ attachment-state: Attachment
357
+ connectivity: Connectivity
358
+ last-online: Last online
359
+ location: Location
360
+ devices: Devices
361
+ equipment: Equipment
362
+ vin: VIN
363
+ serial-number: Serial number
364
+ make: Make
365
+ model: Model
366
+ year: Year
367
+ vendor: Vendor
368
+ ownership: Ownership
369
+ axles: Axles
370
+ gvwr: GVWR
371
+ payload-capacity: Payload capacity
372
+ length: Length
373
+ refrigerated: Refrigerated
374
+ created-at: Created at
375
+ updated-at: Updated at
376
+ filters:
377
+ created-between: Created between
378
+ updated-between: Updated between
379
+ last-online-between: Last online between
380
+ connections:
381
+ description: Every vehicle this trailer has been coupled to, newest first.
382
+ ongoing: Ongoing
383
+ connected: Connected {date}
384
+ disconnected: Disconnected {date}
385
+ still-attached: Still attached
386
+ equipment:
387
+ description: Equipment currently equipped to this trailer.
388
+ telemetry:
389
+ no-location: No location recorded
390
+ maintenance:
391
+ interval: Interval
392
+ next-due: Next due
393
+ code: Code
394
+ subject: Subject
395
+ priority: Priority
396
+ due: Due
397
+ summary: Summary
398
+ odometer: Odometer
399
+ total-cost: Total cost
400
+ date: Date
401
+ statuses:
402
+ available: Available
403
+ in_use: In use
404
+ maintenance: In maintenance
405
+ out_of_service: Out of service
406
+ retired: Retired
407
+ status-descriptions:
408
+ available: Ready to be dispatched or attached.
409
+ in_use: Currently working on a job or attached to a vehicle.
410
+ maintenance: Undergoing service, inspection, or repair.
411
+ out_of_service: Not usable until further notice.
412
+ retired: Permanently removed from active service.
413
+ attachment:
414
+ attached: Attached
415
+ detached: Detached
416
+ no-vehicle: Not attached to a vehicle
417
+ towed-by: Towed by
418
+ position: Position {position}
419
+ connectivity:
420
+ online: Online
421
+ recently_offline: Recently offline
422
+ offline: Offline
423
+ never_connected: Never connected
424
+ measurement:
425
+ metric: Metric
426
+ imperial: Imperial
427
+ measurement-descriptions:
428
+ metric: Metres, kilograms, cubic metres, and Celsius.
429
+ imperial: Feet, pounds, cubic feet, and Fahrenheit.
430
+ odometer-units:
431
+ km: Kilometres
432
+ mi: Miles
433
+ coupling-types:
434
+ fifth_wheel: Fifth wheel
435
+ pintle_hook: Pintle hook
436
+ ball_hitch: Ball hitch
437
+ gooseneck: Gooseneck
438
+ drawbar: Drawbar
439
+ other: Other
440
+ brake-types:
441
+ air: Air brakes
442
+ electric: Electric brakes
443
+ hydraulic_surge: Hydraulic surge brakes
444
+ none: No brakes
445
+ other: Other
446
+ ownership-types:
447
+ owned: Owned
448
+ leased: Leased
449
+ financed: Financed
450
+ rented: Rented
451
+ types:
452
+ dry_van: Dry van
453
+ reefer: Reefer
454
+ flatbed: Flatbed
455
+ step_deck: Step deck
456
+ lowboy: Lowboy
457
+ tanker: Tanker
458
+ bulk: Bulk
459
+ dump: Dump
460
+ chassis: Chassis
461
+ curtain_side: Curtain side
462
+ car_carrier: Car carrier
463
+ livestock: Livestock
464
+ logging: Logging
465
+ dolly: Dolly
466
+ specialty: Specialty
467
+ other: Other
468
+
109
469
  resource:
110
470
  asset: Asset
111
471
  assets: Assets
472
+ trailer: Trailer
473
+ trailers: Trailers
112
474
  activity: Activity
113
475
  activities: Activities
114
476
  contact: Contact
@@ -470,6 +832,30 @@ driver:
470
832
  unassign-vehicle-success: Unassigned {vehicleName} from {driverName}.
471
833
  issue-title: Issue reported for {driverName}
472
834
  device:
835
+ attachment:
836
+ title: Attached asset
837
+ description: Fleet context for telemetry from this device.
838
+ open: Open asset
839
+ asset: Attached asset
840
+ synced-device: Synced device
841
+ asset-type: Asset type
842
+ select-asset-type: Select an asset type
843
+ locate: Locate
844
+ change: Change asset
845
+ detach: Detach
846
+ attached-device: Attached device
847
+ last-seen: Device last seen
848
+ none-title: No asset attached
849
+ none-message: Attach this device to a vehicle or trailer so telemetry has fleet context.
850
+ latest-positions: Latest positions
851
+ positions-description: Recent asset coordinates reported through this device attachment.
852
+ full-history: Full history
853
+ no-positions: No recent positions
854
+ no-positions-message: This attached asset does not have recent position history available yet.
855
+ attach-or-change: Attach or change asset
856
+ view-attached: View attached asset
857
+ locate-attached: Locate attached asset on map
858
+ unknown: Unknown asset
473
859
  fields:
474
860
  title: Device Details
475
861
  device-name: Device Name
@@ -507,11 +893,18 @@ device:
507
893
  attach-device: Attach Device
508
894
  attach-to-vehicle: Attach to Vehicle
509
895
  detach-from-vehicle: Detach from Vehicle
896
+ attach-to-asset: Attach to Asset
510
897
  prompts:
511
898
  attach-to-vehicle-title: Attach device to vehicle
512
899
  attach-device-to-vehicle-title: "Attach {deviceName} to vehicle"
513
900
  select-vehicle-warning: Select a vehicle to attach this device to.
514
901
  attach-to-vehicle-success: Device attached to vehicle.
902
+ attach-to-asset-title: Attach device to asset
903
+ select-asset-warning: Select a vehicle or trailer to attach this device to.
904
+ attach-to-asset-success: Device attached to asset.
905
+ detach-from-asset-title: "Detach {deviceName} from asset?"
906
+ detach-from-asset-body: "This detaches {deviceName} from {assetName} and stops asset telemetry updates until it is attached again."
907
+ detach-from-asset-success: Device detached from asset.
515
908
  not-attached-warning: "{deviceName} is not attached to a vehicle."
516
909
  detach-from-vehicle-title: "Detach {deviceName} from vehicle?"
517
910
  detach-from-vehicle-body: "This detaches {deviceName} from {vehicleName} and stops vehicle telemetry updates until it is attached again."
@@ -524,6 +917,7 @@ device:
524
917
  detach-from-resource-success: "Detached {deviceName} from {resourceName}."
525
918
  detach-telematic-device-title: "Detach {deviceName} from vehicle?"
526
919
  detach-telematic-device-body: "{deviceName} will remain synced from the provider but will no longer be mapped to a vehicle."
920
+ manager-description: Telematics devices installed on this {resourceType}. Attach a device to start receiving positions and events.
527
921
  no-devices-attached-title: No Devices Attached
528
922
  no-devices-attached-body: "Click Attach Device above to start receiving telematic data for this {resourceType}."
529
923
  entity:
@@ -617,6 +1011,8 @@ issue:
617
1011
  type: Issue Type
618
1012
 
619
1013
  order:
1014
+ placeholders:
1015
+ filter-internal-id: Type or scan internal IDs
620
1016
  card:
621
1017
  linked-order: Linked Order
622
1018
  unknown-order: Unknown order
@@ -1007,7 +1403,19 @@ service-rate:
1007
1403
  cod-fee-label: Cod Fee Label
1008
1404
 
1009
1405
  vehicle:
1406
+ placeholders:
1407
+ filter-internal-id: Type or scan internal IDs
1408
+ filters:
1409
+ has-trailer: Trailer attached
1410
+ has-driver: Driver assigned
1411
+ has-device: Device attached
1412
+ any: Any
1413
+ attached: Attached
1414
+ not-attached: Not attached
1415
+ assigned: Assigned
1416
+ not-assigned: Not assigned
1010
1417
  fields:
1418
+ updated-at: Last updated
1011
1419
  avatar: Avatar
1012
1420
  driver-assigned: Driver Assigned
1013
1421
  make: Make
@@ -1021,6 +1429,9 @@ vehicle:
1021
1429
  vin-number: VIN Number
1022
1430
  year: Year
1023
1431
  actions:
1432
+ attach-trailer: Attach trailer
1433
+ attach-equipment: Attach equipment
1434
+ detach-equipment: Detach equipment
1024
1435
  attach-device: Attach Device
1025
1436
  unassign-orders: Unassign Orders
1026
1437
  create-issue: Create Issue
@@ -1028,8 +1439,20 @@ vehicle:
1028
1439
  schedule-maintenance: Schedule Maintenance
1029
1440
  create-work-order: Create Work Order
1030
1441
  log-maintenance: Log Maintenance
1442
+ empty:
1443
+ trailers: No trailers attached
1444
+ trailers-description: Attach a detached trailer to this vehicle to start a towing connection.
1445
+ equipment: No equipment attached
1446
+ equipment-description: Attach equipment such as liftgates, tools, or safety gear to this vehicle.
1447
+ trailers:
1448
+ description: Trailers currently coupled to this vehicle.
1449
+ equipment:
1450
+ description: Equipment currently equipped to this vehicle.
1031
1451
 
1032
1452
  prompts:
1453
+ attach-trailer-title: Attach a trailer to {vehicleName}
1454
+ select-trailer-warning: Select a trailer to attach to this vehicle.
1455
+ attach-trailer-success: Attached {trailerName} to {vehicleName}.
1033
1456
  attach-device-title: Attach device to {vehicleName}
1034
1457
  select-device-warning: Select a device to attach.
1035
1458
  attach-device-success: Device attached to {vehicleName}.