@fleetbase/fleetops-engine 0.3.9 → 0.4.1

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 (209) hide show
  1. package/addon/components/admin/navigator-app.hbs +3 -3
  2. package/addon/components/admin/visibility-controls.hbs +4 -4
  3. package/addon/components/cell/driver-name.hbs +1 -1
  4. package/addon/components/contact-form-panel.hbs +15 -15
  5. package/addon/components/contact-form-panel.js +5 -1
  6. package/addon/components/contact-panel/details.hbs +7 -7
  7. package/addon/components/contact-panel.hbs +2 -2
  8. package/addon/components/display-place.hbs +2 -2
  9. package/addon/components/driver-card.hbs +1 -1
  10. package/addon/components/driver-form-panel.hbs +36 -29
  11. package/addon/components/driver-form-panel.js +5 -1
  12. package/addon/components/driver-panel/details.hbs +10 -10
  13. package/addon/components/driver-panel.hbs +5 -5
  14. package/addon/components/fleet-driver-listing.hbs +5 -5
  15. package/addon/components/fleet-form-panel.hbs +16 -16
  16. package/addon/components/fleet-form-panel.js +5 -1
  17. package/addon/components/fleet-panel/details.hbs +7 -7
  18. package/addon/components/fleet-panel/driver-listing.hbs +5 -5
  19. package/addon/components/fleet-panel/driver-listing.js +6 -0
  20. package/addon/components/fleet-panel/vehicle-listing.hbs +5 -5
  21. package/addon/components/fleet-panel/vehicle-listing.js +6 -0
  22. package/addon/components/fleet-vehicle-listing.hbs +5 -5
  23. package/addon/components/fuel-report-form-panel.hbs +16 -16
  24. package/addon/components/fuel-report-form-panel.js +5 -1
  25. package/addon/components/fuel-report-panel/details.hbs +11 -11
  26. package/addon/components/fuel-report-panel.hbs +3 -3
  27. package/addon/components/global-search.hbs +1 -1
  28. package/addon/components/horizontal-route.hbs +1 -1
  29. package/addon/components/integrated-order-details.hbs +13 -13
  30. package/addon/components/issue-form-panel.hbs +25 -25
  31. package/addon/components/issue-form-panel.js +6 -1
  32. package/addon/components/issue-panel/details.hbs +11 -11
  33. package/addon/components/issue-panel.hbs +3 -3
  34. package/addon/components/layout/fleet-ops-sidebar.hbs +2 -2
  35. package/addon/components/layout/fleet-ops-sidebar.js +28 -12
  36. package/addon/components/live-map-drawer/driver-listing.hbs +1 -1
  37. package/addon/components/live-map-drawer/driver-listing.js +16 -10
  38. package/addon/components/live-map-drawer/place-listing.hbs +1 -1
  39. package/addon/components/live-map-drawer/place-listing.js +12 -7
  40. package/addon/components/live-map-drawer/vehicle-listing.hbs +1 -1
  41. package/addon/components/live-map-drawer/vehicle-listing.js +15 -9
  42. package/addon/components/live-map.hbs +10 -92
  43. package/addon/components/live-map.js +29 -24
  44. package/addon/components/map-container/toolbar/visibility-control-panel.hbs +9 -9
  45. package/addon/components/map-container/toolbar/zones-panel.hbs +10 -10
  46. package/addon/components/map-container/toolbar.hbs +6 -6
  47. package/addon/components/modals/assign-driver.hbs +2 -2
  48. package/addon/components/modals/clone-config-form.hbs +2 -2
  49. package/addon/components/modals/contact-details.hbs +6 -6
  50. package/addon/components/modals/contact-form.hbs +11 -11
  51. package/addon/components/modals/driver-assign-order.hbs +2 -2
  52. package/addon/components/modals/driver-assign-vehicle.hbs +2 -2
  53. package/addon/components/modals/driver-assign-vendor.hbs +2 -2
  54. package/addon/components/modals/driver-details.hbs +14 -14
  55. package/addon/components/modals/driver-form.hbs +18 -18
  56. package/addon/components/modals/edit-meta-form.hbs +2 -2
  57. package/addon/components/modals/entity-form.hbs +16 -16
  58. package/addon/components/modals/entity-meta-field-prompt.hbs +1 -1
  59. package/addon/components/modals/fleet-details.hbs +6 -6
  60. package/addon/components/modals/fleet-form.hbs +8 -8
  61. package/addon/components/modals/fuel-report-details.hbs +9 -9
  62. package/addon/components/modals/fuel-report-form.hbs +8 -8
  63. package/addon/components/modals/group-details.hbs +4 -4
  64. package/addon/components/modals/group-form.hbs +6 -6
  65. package/addon/components/modals/install-prompt.hbs +2 -3
  66. package/addon/components/modals/issue-details.hbs +8 -8
  67. package/addon/components/modals/issue-from.hbs +21 -21
  68. package/addon/components/modals/map-field-form.hbs +2 -2
  69. package/addon/components/modals/map-field-group-form.hbs +1 -1
  70. package/addon/components/modals/map-layer-form.hbs +10 -10
  71. package/addon/components/modals/meta-field-form.hbs +2 -2
  72. package/addon/components/modals/meta-field-group-form.hbs +1 -1
  73. package/addon/components/modals/new-order-config.hbs +4 -4
  74. package/addon/components/modals/order-assign-driver.hbs +2 -2
  75. package/addon/components/modals/order-config-new-status.hbs +1 -1
  76. package/addon/components/modals/order-event.hbs +2 -2
  77. package/addon/components/modals/order-form.hbs +8 -8
  78. package/addon/components/modals/order-import.hbs +8 -8
  79. package/addon/components/modals/order-label.hbs +1 -1
  80. package/addon/components/modals/order-new-activity.hbs +10 -10
  81. package/addon/components/modals/order-route-form.hbs +17 -17
  82. package/addon/components/modals/place-assign-vendor.hbs +2 -2
  83. package/addon/components/modals/place-details.hbs +13 -13
  84. package/addon/components/modals/place-form.hbs +15 -15
  85. package/addon/components/modals/policy-form.hbs +5 -5
  86. package/addon/components/modals/role-form.hbs +3 -3
  87. package/addon/components/modals/select-payment-method.hbs +1 -1
  88. package/addon/components/modals/service-area-form.hbs +8 -8
  89. package/addon/components/modals/set-password.hbs +3 -3
  90. package/addon/components/modals/uninstall-prompt.hbs +2 -3
  91. package/addon/components/modals/user-form.hbs +9 -9
  92. package/addon/components/modals/vehicle-details.hbs +41 -41
  93. package/addon/components/modals/vehicle-form.hbs +73 -73
  94. package/addon/components/modals/vendor-details.hbs +10 -10
  95. package/addon/components/modals/vendor-form.hbs +36 -36
  96. package/addon/components/modals/view-service-area.hbs +1 -1
  97. package/addon/components/modals/zone-form.hbs +6 -6
  98. package/addon/components/order/header.hbs +11 -11
  99. package/addon/components/order/place-card.hbs +2 -2
  100. package/addon/components/order/schedule-card.hbs +6 -6
  101. package/addon/components/order/schedule-card.js +11 -7
  102. package/addon/components/order-config/activity-flow-editor.hbs +14 -14
  103. package/addon/components/order-config/activity-flow-editor.js +11 -11
  104. package/addon/components/order-config/details-editor.hbs +9 -9
  105. package/addon/components/order-config/entities-editor.hbs +13 -13
  106. package/addon/components/order-config/entities-editor.js +2 -2
  107. package/addon/components/order-config/fields-editor.hbs +14 -14
  108. package/addon/components/order-config/fields-editor.js +13 -12
  109. package/addon/components/order-config.hbs +9 -9
  110. package/addon/components/order-config.js +12 -11
  111. package/addon/components/order-list-overlay.hbs +14 -14
  112. package/addon/components/place-form-panel.hbs +18 -18
  113. package/addon/components/place-form-panel.js +6 -1
  114. package/addon/components/place-panel/details.hbs +10 -10
  115. package/addon/components/place-panel.hbs +2 -2
  116. package/addon/components/route-list.hbs +2 -2
  117. package/addon/components/settings-window.hbs +5 -5
  118. package/addon/components/settings-window.js +2 -1
  119. package/addon/components/vehicle-form-panel.hbs +27 -27
  120. package/addon/components/vehicle-form-panel.js +7 -2
  121. package/addon/components/vehicle-panel/details.hbs +7 -7
  122. package/addon/components/vehicle-panel.hbs +4 -4
  123. package/addon/components/vendor-form-panel/create-form.hbs +34 -33
  124. package/addon/components/vendor-form-panel/create-form.js +6 -2
  125. package/addon/components/vendor-form-panel/edit-form.hbs +27 -27
  126. package/addon/components/vendor-form-panel/edit-form.js +1 -0
  127. package/addon/components/vendor-form-panel.hbs +6 -6
  128. package/addon/components/vendor-form-panel.js +6 -1
  129. package/addon/components/vendor-panel/details.hbs +10 -10
  130. package/addon/components/vendor-panel.hbs +3 -3
  131. package/addon/components/widget/fleet-ops-quickstart.hbs +2 -2
  132. package/addon/components/widget/fleet-ops-quickstart.js +1 -0
  133. package/addon/components/widget/key-metrics.hbs +12 -12
  134. package/addon/components/widget/live-order-map.hbs +4 -4
  135. package/addon/components/widget/recent-orders.hbs +4 -4
  136. package/addon/components/widget/transactions.hbs +4 -4
  137. package/addon/controllers/management/contacts/index/edit.js +10 -3
  138. package/addon/controllers/management/contacts/index/new.js +7 -0
  139. package/addon/controllers/management/contacts/index.js +23 -16
  140. package/addon/controllers/management/drivers/index/edit.js +10 -3
  141. package/addon/controllers/management/drivers/index/new.js +7 -0
  142. package/addon/controllers/management/drivers/index.js +33 -19
  143. package/addon/controllers/management/fleets/index/edit.js +10 -3
  144. package/addon/controllers/management/fleets/index/new.js +7 -0
  145. package/addon/controllers/management/fleets/index.js +24 -17
  146. package/addon/controllers/management/fuel-reports/index/edit.js +10 -3
  147. package/addon/controllers/management/fuel-reports/index/new.js +7 -0
  148. package/addon/controllers/management/fuel-reports/index.js +20 -13
  149. package/addon/controllers/management/issues/index/edit.js +10 -3
  150. package/addon/controllers/management/issues/index/new.js +8 -0
  151. package/addon/controllers/management/issues/index.js +22 -15
  152. package/addon/controllers/management/places/index/edit.js +10 -3
  153. package/addon/controllers/management/places/index/new.js +7 -0
  154. package/addon/controllers/management/places/index.js +27 -20
  155. package/addon/controllers/management/vehicles/index/edit.js +10 -3
  156. package/addon/controllers/management/vehicles/index/new.js +7 -0
  157. package/addon/controllers/management/vehicles/index.js +22 -15
  158. package/addon/controllers/management/vendors/index/edit.js +10 -3
  159. package/addon/controllers/management/vendors/index/new.js +7 -0
  160. package/addon/controllers/management/vendors/index.js +23 -16
  161. package/addon/controllers/operations/orders/index/new.js +110 -25
  162. package/addon/controllers/operations/orders/index/view.js +40 -16
  163. package/addon/controllers/operations/orders/index.js +34 -27
  164. package/addon/controllers/operations/scheduler/index.js +3 -2
  165. package/addon/controllers/operations/service-rates/index/edit.js +9 -1
  166. package/addon/controllers/operations/service-rates/index/new.js +9 -1
  167. package/addon/controllers/operations/service-rates/index.js +16 -9
  168. package/addon/routes/management/places/index.js +1 -1
  169. package/addon/routes/operations/orders/index/view.js +2 -14
  170. package/addon/services/driver-actions.js +9 -8
  171. package/addon/services/vehicle-actions.js +2 -1
  172. package/addon/templates/management/contacts/index.hbs +6 -6
  173. package/addon/templates/management/drivers/index.hbs +6 -6
  174. package/addon/templates/management/fleets/index.hbs +6 -6
  175. package/addon/templates/management/fuel-reports/index.hbs +7 -7
  176. package/addon/templates/management/index.hbs +17 -17
  177. package/addon/templates/management/issues/index.hbs +6 -6
  178. package/addon/templates/management/places/index.hbs +6 -6
  179. package/addon/templates/management/vehicles/index.hbs +6 -6
  180. package/addon/templates/management/vendors/index.hbs +6 -6
  181. package/addon/templates/operations/orders/index/config/types.hbs +3 -3
  182. package/addon/templates/operations/orders/index/config.hbs +3 -4
  183. package/addon/templates/operations/orders/index/new.hbs +72 -72
  184. package/addon/templates/operations/orders/index/view.hbs +147 -53
  185. package/addon/templates/operations/orders/index.hbs +13 -13
  186. package/addon/templates/operations/scheduler/index.hbs +3 -3
  187. package/addon/templates/operations/service-rates/index/new.hbs +79 -81
  188. package/addon/templates/operations/service-rates/index.hbs +6 -6
  189. package/composer.json +2 -2
  190. package/extension.json +1 -1
  191. package/package.json +3 -1
  192. package/server/resources/views/labels/default.php +40 -18
  193. package/server/resources/views/labels/waypoint-label.php +126 -0
  194. package/server/src/Console/Commands/FixDriverCompanies.php +65 -0
  195. package/server/src/Exceptions/IntegratedVendorException.php +11 -12
  196. package/server/src/Http/Controllers/Api/v1/DriverController.php +41 -32
  197. package/server/src/Http/Controllers/Api/v1/OrderController.php +1 -1
  198. package/server/src/Http/Controllers/Internal/v1/DriverController.php +17 -1
  199. package/server/src/Http/Resources/v1/Driver.php +1 -1
  200. package/server/src/Http/Resources/v1/Entity.php +2 -2
  201. package/server/src/Http/Resources/v1/Payload.php +11 -30
  202. package/server/src/Http/Resources/v1/Place.php +3 -3
  203. package/server/src/Http/Resources/v1/Waypoint.php +101 -0
  204. package/server/src/Models/Payload.php +39 -0
  205. package/server/src/Models/Place.php +5 -2
  206. package/server/src/Models/Waypoint.php +15 -3
  207. package/server/src/Providers/FleetOpsServiceProvider.php +1 -0
  208. package/server/src/Support/Flow.php +19 -2
  209. package/translations/en-us.yaml +1341 -3
@@ -21,6 +21,10 @@ export default class FleetFormPanelComponent extends Component {
21
21
  * @service hostRouter
22
22
  */
23
23
  @service hostRouter;
24
+ /**
25
+ * @service intl
26
+ */
27
+ @service intl;
24
28
 
25
29
  /**
26
30
  * @service loader
@@ -94,7 +98,7 @@ export default class FleetFormPanelComponent extends Component {
94
98
  return fleet
95
99
  .save()
96
100
  .then((fleet) => {
97
- this.notifications.success(`Fleet (${fleet.name}) saved successfully.`);
101
+ this.notifications.success(this.intl.t('fleet-ops.component.fleet-form-panel.success-message', { fleetName: fleet.name }));
98
102
  contextComponentCallback(this, 'onAfterSave', fleet);
99
103
  })
100
104
  .catch((error) => {
@@ -1,28 +1,28 @@
1
1
  <div class="p-4">
2
- <ContentPanel @title="Details" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-900">
2
+ <ContentPanel @title={{t "fleet-ops.common.details"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-900">
3
3
  <div class="grid grid-cols-2 gap-2 text-xs md:mb-6 dark:text-gray-100">
4
4
  <div class="field-info-container">
5
- <div class="field-name">Name</div>
5
+ <div class="field-name">{{t "fleet-ops.common.name"}}</div>
6
6
  <div class="field-value">{{n-a @fleet.name}}</div>
7
7
  </div>
8
8
  <div class="field-info-container">
9
- <div class="field-name">Service Area</div>
9
+ <div class="field-name">{{t "fleet-ops.common.service-area"}}</div>
10
10
  <div class="field-value">{{n-a @fleet.service_area.name}}</div>
11
11
  </div>
12
12
  <div class="field-info-container">
13
- <div class="field-name">Zone</div>
13
+ <div class="field-name">{{t "fleet-ops.common.zone"}}</div>
14
14
  <div class="field-value">{{n-a @fleet.zone.name}}</div>
15
15
  </div>
16
16
  <div class="field-info-container">
17
- <div class="field-name">Task</div>
17
+ <div class="field-name">{{t "fleet-ops.common.task"}}</div>
18
18
  <div class="field-value">{{n-a @fleet.task}}</div>
19
19
  </div>
20
20
  <div class="field-info-container">
21
- <div class="field-name">Active Manpower</div>
21
+ <div class="field-name">{{t "fleet-ops.component.fleet-panel.details.active-manpower"}}</div>
22
22
  <div class="field-value">{{@fleet.drivers_online_count}} of {{@fleet.drivers_count}} Online</div>
23
23
  </div>
24
24
  <div class="field-info-container">
25
- <div class="field-name">Date Created</div>
25
+ <div class="field-name">{{t "fleet-ops.common.date-created"}}</div>
26
26
  <div class="field-value">{{@fleet.createdAtShort}}</div>
27
27
  </div>
28
28
  </div>
@@ -3,7 +3,7 @@
3
3
  <div class="mb-3 flex items-center justify-between">
4
4
  <div class="flex items-center">
5
5
  <div class="fleet-driver-listing-search">
6
- <Input @type="text" {{on "input" this.onInput}} placeholder="Search drivers in fleet" class="w-64 form-input form-input-sm" />
6
+ <Input @type="text" {{on "input" this.onInput}} placeholder={{t "fleet-ops.component.fleet-panel.driver-listing.search-driver"}} class="w-64 form-input form-input-sm" />
7
7
  </div>
8
8
  {{#if this.search.isRunning}}
9
9
  <div class="mx-2">
@@ -12,7 +12,7 @@
12
12
  {{/if}}
13
13
  </div>
14
14
  <div class="w-56">
15
- <ModelSelect @modelName="driver" @selectedModel={{this.selectedDriver}} @placeholder="Add driver to fleet" @triggerClass="form-select form-input form-select-sm form-input-sm" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{this.onAddDriver}} as |model|>
15
+ <ModelSelect @modelName="driver" @selectedModel={{this.selectedDriver}} @placeholder={{t "fleet-ops.component.fleet-panel.driver-listing.add-driver"}} @triggerClass="form-select form-input form-select-sm form-input-sm" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{this.onAddDriver}} as |model|>
16
16
  {{model.name}}
17
17
  </ModelSelect>
18
18
  </div>
@@ -23,7 +23,7 @@
23
23
  {{#if this.selectable}}
24
24
  <div></div>
25
25
  {{/if}}
26
- <div class="col-span-4 flex items-center">Driver</div>
26
+ <div class="col-span-4 flex items-center">{{t "fleet-ops.common.driver"}}</div>
27
27
  <div class="col-span-7 flex items-center"></div>
28
28
  </div>
29
29
  </div>
@@ -33,7 +33,7 @@
33
33
  <div class="mr-2">
34
34
  <Spinner @iconClass="text-sky-500" />
35
35
  </div>
36
- <span>Loading fleet drivers...</span>
36
+ <span>{{t "fleet-ops.component.fleet-panel.driver-listing.loading-driver"}}</span>
37
37
  </div>
38
38
  {{/if}}
39
39
  {{#each this.drivers as |driver|}}
@@ -61,7 +61,7 @@
61
61
  <div class="flex items-center justify-end">
62
62
  <a href="javascript:;" class="text-danger text-opacity-75" {{on "click" (fn this.onRemoveDriver driver)}}>
63
63
  <FaIcon @icon="times" @prefix="fas" class="mr-1" />
64
- <span>Remove</span>
64
+ <span>{{t "fleet-ops.common.remove"}}</span>
65
65
  </a>
66
66
  </div>
67
67
  </div>
@@ -22,6 +22,12 @@ export default class FleetPanelDriverListingComponent extends Component {
22
22
  */
23
23
  @service fetch;
24
24
 
25
+ /**
26
+ * Service for intl.
27
+ * @service
28
+ */
29
+ @service intl;
30
+
25
31
  /**
26
32
  * The universe service.
27
33
  *
@@ -3,7 +3,7 @@
3
3
  <div class="mb-3 flex items-center justify-between">
4
4
  <div class="flex items-center">
5
5
  <div class="fleet-vehicle-listing-search">
6
- <Input @type="text" {{on "input" this.onInput}} placeholder="Search vehicle's in fleet" class="w-64 form-input form-input-sm" />
6
+ <Input @type="text" {{on "input" this.onInput}} placeholder={{t "fleet-ops.component.fleet-panel.vehicle-listing.search-vehicle"}} class="w-64 form-input form-input-sm" />
7
7
  </div>
8
8
  {{#if this.search.isRunning}}
9
9
  <div class="mx-2">
@@ -12,7 +12,7 @@
12
12
  {{/if}}
13
13
  </div>
14
14
  <div class="w-56">
15
- <ModelSelect @modelName="vehicle" @selectedModel={{this.selectedVehicle}} @placeholder="Add vehicle to fleet" @triggerClass="form-select form-input form-select-sm form-input-sm" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{this.onAddVehicle}} as |model|>
15
+ <ModelSelect @modelName="vehicle" @selectedModel={{this.selectedVehicle}} @placeholder={{t "fleet-ops.component.fleet-panel.vehicle-listing.add-vehicle"}} @triggerClass="form-select form-input form-select-sm form-input-sm" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{this.onAddVehicle}} as |model|>
16
16
  {{model.displayName}}
17
17
  </ModelSelect>
18
18
  </div>
@@ -23,7 +23,7 @@
23
23
  {{#if this.selectable}}
24
24
  <div></div>
25
25
  {{/if}}
26
- <div class="col-span-4 flex items-center">Vehicle</div>
26
+ <div class="col-span-4 flex items-center">{{t "fleet-ops.common.vehicle"}}</div>
27
27
  <div class="col-span-7 flex items-center"></div>
28
28
  </div>
29
29
  </div>
@@ -33,7 +33,7 @@
33
33
  <div class="mr-2">
34
34
  <Spinner @iconClass="text-sky-500" />
35
35
  </div>
36
- <span>Loading fleet vehicles...</span>
36
+ <span>{{t "fleet-ops.component.fleet-panel.vehicle-listing.loading-vehicle"}}</span>
37
37
  </div>
38
38
  {{/if}}
39
39
  {{#each this.vehicles as |vehicle|}}
@@ -61,7 +61,7 @@
61
61
  <div class="flex items-center justify-end">
62
62
  <a href="javascript:;" class="text-danger text-opacity-75" {{on "click" (fn this.onRemoveVehicle vehicle)}}>
63
63
  <FaIcon @icon="times" @prefix="fas" class="mr-1" />
64
- <span>Remove</span>
64
+ <span>{{t "fleet-ops.common.remove"}}</span>
65
65
  </a>
66
66
  </div>
67
67
  </div>
@@ -22,6 +22,12 @@ export default class FleetPanelVehicleListingComponent extends Component {
22
22
  */
23
23
  @service fetch;
24
24
 
25
+ /**
26
+ * Service for intl.
27
+ * @service
28
+ */
29
+ @service intl;
30
+
25
31
  /**
26
32
  * The universe service.
27
33
  *
@@ -2,7 +2,7 @@
2
2
  <div class="mb-2 flex items-center justify-between">
3
3
  <div class="flex items-center">
4
4
  <div class="fleet-vehicle-listing-search">
5
- <Input @type="text" {{on "keyup" (perform this.search)}} placeholder="Search vehicle in fleet" class="w-64 form-input form-input-sm" />
5
+ <Input @type="text" {{on "keyup" (perform this.search)}} placeholder={{t "fleet-ops.component.fleet-vehicle-listing.search-vehicle"}} class="w-64 form-input form-input-sm" />
6
6
  </div>
7
7
  {{#if this.isLoading}}
8
8
  <div class="mx-2">
@@ -12,7 +12,7 @@
12
12
  </div>
13
13
  <div class="w-56">
14
14
  {{#if @onAddVehicle}}
15
- <ModelSelect @modelName="vehicle" @query={{hash assignedFleet=false}} @selectedModel={{@options.selectedVehicle}} @placeholder="Add vehicle to fleet" @triggerClass="form-select form-input form-select-sm form-input-sm" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{this.onAdd}} as |model|>
15
+ <ModelSelect @modelName="vehicle" @query={{hash assignedFleet=false}} @selectedModel={{@options.selectedVehicle}} @placeholder={{t "fleet-ops.component.fleet-vehicle-listing.add-vehicle"}} @triggerClass="form-select form-input form-select-sm form-input-sm" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{this.onAdd}} as |model|>
16
16
  {{model.display_name}}
17
17
  </ModelSelect>
18
18
  {{/if}}
@@ -24,7 +24,7 @@
24
24
  {{#if @selectable}}
25
25
  <div></div>
26
26
  {{/if}}
27
- <div class="col-span-4 flex items-center">Vehicle</div>
27
+ <div class="col-span-4 flex items-center">{{t "fleet-ops.common.vehicle"}}</div>
28
28
  <div class="col-span-7 flex items-center"></div>
29
29
  </div>
30
30
  </div>
@@ -32,7 +32,7 @@
32
32
  {{#unless this.isLoaded}}
33
33
  <div class="flex text-center items-center justify-center p-4 dark:text-gray-100">
34
34
  <Spinner class="mr-2" @iconClass="text-sky-500" />
35
- <span>Loading fleet vehicle...</span>
35
+ <span>{{t "fleet-ops.component.fleet-vehicle-listing.loading-message"}}</span>
36
36
  </div>
37
37
  {{/unless}}
38
38
  {{#each this.vehicles as |vehicle|}}
@@ -61,7 +61,7 @@
61
61
  {{#if @onRemoveVehicle}}
62
62
  <a href="javascript:;" class="text-danger text-opacity-75" {{on "click" (fn this.onRemove vehicle)}}>
63
63
  <FaIcon @icon="times" @prefix="fas" class="mr-1" />
64
- <span>Remove</span>
64
+ <span>{{t "fleet-ops.common.remove"}}</span>
65
65
  </a>
66
66
  {{/if}}
67
67
  </div>
@@ -10,7 +10,7 @@
10
10
  @width={{or this.width @width "570px"}}
11
11
  >
12
12
  <Overlay::Header
13
- @title={{if this.fuelReport.public_id this.fuelReport.name "New Fuel Report"}}
13
+ @title={{if this.fuelReport.public_id this.fuelReport.name (t "fleet-ops.component.fuel-report-form-panel.fuel-report") }}
14
14
  @status={{this.fuelReport.public_id}}
15
15
  @hideStatusDot={{true}}
16
16
  @createdAt={{this.fuelReport.createdAt}}
@@ -20,24 +20,24 @@
20
20
  <Button
21
21
  @icon={{if this.fuelReport.id "save" "check"}}
22
22
  @type="primary"
23
- @text={{if this.fuelReport.id "Save Fuel Report" "Create Fuel Report"}}
23
+ @text={{if this.fuelReport.id (t "fleet-ops.component.fuel-report-form-panel.save-fuel-report")(t "fleet-ops.component.fuel-report-form-panel.create-fuel-report") }}
24
24
  @onClick={{this.save}}
25
25
  @wrapperClass="mr-2"
26
26
  />
27
27
  {{#if this.fuelReport.id}}
28
- <Button @type="default" @icon="gas-pump" @helpText="View fuel report details" @onClick={{this.onViewDetails}} @wrapperClass="mr-2" />
28
+ <Button @type="default" @icon="gas-pump" @helpText={{t "fleet-ops.component.fuel-report-form-panel.view-details"}} @onClick={{this.onViewDetails}} @wrapperClass="mr-2" />
29
29
  {{/if}}
30
- <Button @type="default" @icon="times" @helpText={{if this.fuelReport.id "Cancel edit fuel report" "Cancel new fuel report"}} @onClick={{this.onPressCancel}} />
30
+ <Button @type="default" @icon="times" @helpText={{if this.fuelReport.id (t "fleet-ops.component.fuel-report-form-panel.cancel-edit-fuel-report")(t "fleet-ops.component.fuel-report-form-panel.cancel-new-fuel-report") }} @onClick={{this.onPressCancel}} />
31
31
  </div>
32
32
  </Overlay::Header>
33
33
 
34
34
  <Overlay::Body @wrapperClass="new-service-rate-overlay-body px-4 space-y-4 pt-4" @increaseInnerBodyHeightBy={{1000}}>
35
35
  <div class="grid grid-cols-1 text-xs dark:text-gray-100">
36
- <InputGroup @name="Reporter">
36
+ <InputGroup @name={{t "fleet-ops.common.reporter"}}>
37
37
  <ModelSelect
38
38
  @modelName="user"
39
39
  @selectedModel={{this.fuelReport.reporter}}
40
- @placeholder="Select Reporter"
40
+ @placeholder={{t "fleet-ops.component.fuel-report-form-panel.select-reporter"}}
41
41
  @triggerClass="form-select form-input"
42
42
  @infiniteScroll={{false}}
43
43
  @renderInPlace={{true}}
@@ -48,11 +48,11 @@
48
48
  {{model.name}}
49
49
  </ModelSelect>
50
50
  </InputGroup>
51
- <InputGroup @name="Driver">
51
+ <InputGroup @name={{t "fleet-ops.common.driver"}}>
52
52
  <ModelSelect
53
53
  @modelName="driver"
54
54
  @selectedModel={{this.fuelReport.driver}}
55
- @placeholder="Select Driver"
55
+ @placeholder={{t "fleet-ops.component.fuel-report-form-panel.select-driver"}}
56
56
  @triggerClass="form-select form-input"
57
57
  @infiniteScroll={{false}}
58
58
  @renderInPlace={{true}}
@@ -63,11 +63,11 @@
63
63
  {{model.name}}
64
64
  </ModelSelect>
65
65
  </InputGroup>
66
- <InputGroup @name="Vehicle">
66
+ <InputGroup @name={{t "fleet-ops.common.vehicle"}}>
67
67
  <ModelSelect
68
68
  @modelName="vehicle"
69
69
  @selectedModel={{this.fuelReport.vehicle}}
70
- @placeholder="Select Vehicle"
70
+ @placeholder={{t "fleet-ops.component.fuel-report-form-panel.select-vehicle"}}
71
71
  @triggerClass="form-select form-input"
72
72
  @infiniteScroll={{false}}
73
73
  @renderInPlace={{true}}
@@ -78,13 +78,13 @@
78
78
  {{model.display_name}}
79
79
  </ModelSelect>
80
80
  </InputGroup>
81
- <InputGroup @name="Status">
81
+ <InputGroup @name={{t "fleet-ops.common.status"}}>
82
82
  <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
83
83
  <PowerSelect
84
84
  @options={{this.statusOptions}}
85
85
  @selected={{this.fuelReport.status}}
86
86
  @onChange={{fn (mut this.fuelReport.status)}}
87
- @placeholder="Select fuel-report status"
87
+ @placeholder={{t "fleet-ops.component.fuel-report-form-panel.select-fuel-report"}}
88
88
  @triggerClass="form-select form-input"
89
89
  as |status|
90
90
  >
@@ -92,8 +92,8 @@
92
92
  </PowerSelect>
93
93
  </div>
94
94
  </InputGroup>
95
- <InputGroup @name="Odometer" @type="number" @value={{this.fuelReport.odometer}} />
96
- <InputGroup @name="Cost">
95
+ <InputGroup @name={{t "fleet-ops.component.fuel-report-form-panel.odometer"}} @type="number" @value={{this.fuelReport.odometer}} />
96
+ <InputGroup @name={{t "fleet-ops.component.fuel-report-form-panel.cost"}}>
97
97
  <MoneyInput
98
98
  class="w-full"
99
99
  @value={{this.fuelReport.amount}}
@@ -102,7 +102,7 @@
102
102
  @onCurrencyChange={{fn (mut this.fuelReport.currency)}}
103
103
  />
104
104
  </InputGroup>
105
- <InputGroup @name="Volume" @helpText="Select the metric unit and volume of fuel to report." @wrapperClass="w-full">
105
+ <InputGroup @name={{t "fleet-ops.component.fuel-report-form-panel.volume"}} @helpText={{t "fleet-ops.component.fuel-report-form-panel.select-volume-text"}} @wrapperClass="w-full">
106
106
  <UnitInput
107
107
  class="w-full"
108
108
  @measurement="volume"
@@ -112,7 +112,7 @@
112
112
  @onUnitChange={{fn (mut this.fuelReport.metric_unit)}}
113
113
  />
114
114
  </InputGroup>
115
- <InputGroup @name="Coordinates">
115
+ <InputGroup @name={{t "fleet-ops.common.coordinates"}}>
116
116
  <CoordinatesInput @value={{this.fuelReport.location}} @onChange={{fn (mut this.fuelReport.location)}} />
117
117
  </InputGroup>
118
118
  </div>
@@ -15,6 +15,10 @@ export default class FuelReportFormPanelComponent extends Component {
15
15
  * @service notifications
16
16
  */
17
17
  @service notifications;
18
+ /**
19
+ * @service intl
20
+ */
21
+ @service intl;
18
22
 
19
23
  /**
20
24
  * @service hostRouter
@@ -87,7 +91,7 @@ export default class FuelReportFormPanelComponent extends Component {
87
91
  return fuelReport
88
92
  .save()
89
93
  .then((fuelReport) => {
90
- this.notifications.success(`Fuel report saved successfully.`);
94
+ this.notifications.success(this.intl.t('fleet-ops.component.fuel-report-form-panel.success-message'));
91
95
  contextComponentCallback(this, 'onAfterSave', fuelReport);
92
96
  })
93
97
  .catch((error) => {
@@ -1,40 +1,40 @@
1
1
  <div class="p-4">
2
- <ContentPanel @title="Details" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-900">
2
+ <ContentPanel @title={{t "fleet-ops.common.details"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-900">
3
3
  <div class="grid grid-cols-2 gap-2 text-xs md:mb-6 dark:text-gray-100">
4
4
  <div class="field-info-container">
5
- <div class="field-name">ID</div>
5
+ <div class="field-name">{{t "fleet-ops.common.id"}}</div>
6
6
  <div class="field-value">{{n-a @fuelReport.public_id}}</div>
7
7
  </div>
8
8
  <div class="field-info-container col-span-2">
9
- <div class="field-name">Reporter</div>
9
+ <div class="field-name">{{t "fleet-ops.common.reporter"}}</div>
10
10
  <div class="field-value">{{n-a @fuelReport.reporter_name}}</div>
11
11
  </div>
12
12
  <div class="field-info-container">
13
- <div class="field-name">Driver</div>
13
+ <div class="field-name">{{t "fleet-ops.common.driver"}}</div>
14
14
  <div class="field-value">{{n-a @fuelReport.driver_name}}</div>
15
15
  </div>
16
16
  <div class="field-info-container">
17
- <div class="field-name">Vehicle</div>
17
+ <div class="field-name">{{t "fleet-ops.common.vehicle"}}</div>
18
18
  <div class="field-value">{{n-a @fuelReport.vehicle_name}}</div>
19
19
  </div>
20
20
  <div class="field-info-container">
21
- <div class="field-name">Odometer</div>
21
+ <div class="field-name">{{t "fleet-ops.common.odometer"}}</div>
22
22
  <div class="field-value">{{n-a @fuelReport.odometer}}</div>
23
23
  </div>
24
24
  <div class="field-info-container">
25
- <div class="field-name">Cost</div>
25
+ <div class="field-name">{{t "fleet-ops.common.cost"}}</div>
26
26
  <div class="field-value">{{format-currency @fuelReport.amount @fuelReport.currency}}</div>
27
27
  </div>
28
28
  <div class="field-info-container">
29
- <div class="field-name">Fuel/ Volume</div>
30
- <div class="field-value">{{pluralize @fuelReport.volume @fuelReport.metric_unit}}</div>
29
+ <div class="field-name">{{t "fleet-ops.component.fuel-report-panel.details.fuel"}}</div>
30
+ <div class="field-value">{{pluralize (n-a @fuelReport.volume) (n-a @fuelReport.metric_unit)}}</div>
31
31
  </div>
32
32
  <div class="field-info-container">
33
- <div class="field-name">Date Created</div>
33
+ <div class="field-name">{{t "fleet-ops.common.date-created"}}</div>
34
34
  <div class="field-value">{{@fuelReport.createdAtShort}}</div>
35
35
  </div>
36
36
  <div class="field-info-container">
37
- <div class="field-name">Coordinates</div>
37
+ <div class="field-name">{{t "fleet-ops.common.coordinates"}}</div>
38
38
  <div class="field-value">{{point-coordinates @fuelReport.location}}</div>
39
39
  </div>
40
40
  </div>
@@ -9,9 +9,9 @@
9
9
  @isResizable={{or this.isResizable @isResizable}}
10
10
  @width={{or this.width @width "570px"}}
11
11
  >
12
- <Overlay::Header @title="Fuel Report Details" @status={{this.fuelReport.public_id}} @hideStatusDot={{true}} @createdAt={{this.fuelReport.createdAt}}>
13
- <Button @type="default" @icon="pen" @helpText="Edit fuel report" @onClick={{this.onEdit}} @wrapperClass="mr-2" />
14
- <Button @type="default" @icon="times" @helpText={{if this.fuelReport.id "Cancel edit fuel report" "Cancel new fuel report"}} @onClick={{this.onPressCancel}} />
12
+ <Overlay::Header @title={{t "fleet-ops.component.fuel-report-panel.title"}} @status={{this.fuelReport.public_id}} @hideStatusDot={{true}} @createdAt={{this.fuelReport.createdAt}}>
13
+ <Button @type="default" @icon="pen" @helpText={{t "fleet-ops.component.fuel-report-panel.edit-button"}} @onClick={{this.onEdit}} @wrapperClass="mr-2" />
14
+ <Button @type="default" @icon="times" @helpText={{if this.fuelReport.id (t "fleet-ops.component.fuel-report-panel.cancel-edit-fuel-report")(t "fleet-ops.component.fuel-report-panel.cancel-new-fuel-report") }} @onClick={{this.onPressCancel}} />
15
15
  </Overlay::Header>
16
16
  <Overlay::Body class="no-padding" @increaseInnerBodyHeightBy={{1000}}>
17
17
  <div class="section-header-actions w-full overflow-x-scroll lg:overflow-x-auto">
@@ -2,7 +2,7 @@
2
2
  <div class="next-map-search-bar-container {{if @visible "is-visible"}}" {{did-insert this.setupComponent}}>
3
3
  <div class="next-map-search-bar">
4
4
  <FaIcon @icon="search" class="ml-4" />
5
- <Input @value={{@value}} {{on "input" this.search}} placeholder="Search by keyword..." />
5
+ <Input @value={{@value}} {{on "input" this.search}} placeholder={{t "fleet-ops.component.global-search.search"}} />
6
6
  <div class="pr-4 flex items-center justify-center">
7
7
  {{#if this.isLoading}}
8
8
  <Spinner class="text-sky-400" />
@@ -13,7 +13,7 @@
13
13
  <div class="notch">
14
14
  {{#if (eq location.uuid this.destination.uuid)}}
15
15
  <Attach::Tooltip @class="clean" @animation="scale" @placement="top" @showOn="mouseenter focus">
16
- <InputInfo @text="Destination" @iconClass="text-green-400" class="flex items-center" @spanClass="flex items-start justify-start text-left ml-1" />
16
+ <InputInfo @text={{t "fleet-ops.common.destination"}} @iconClass="text-green-400" class="flex items-center" @spanClass="flex items-start justify-start text-left ml-1" />
17
17
  </Attach::Tooltip>
18
18
  {{/if}}
19
19
  </div>
@@ -2,38 +2,38 @@
2
2
  <div class="grid grid-cols-1 lg:grid-cols-2 gap-4 lg:gap-2">
3
3
  {{#if this.isLalamove}}
4
4
  <div class="field-info-container space-y-2">
5
- <div class="field-name">Order ID</div>
5
+ <div class="field-name">{{t "fleet-ops.component.integrated-order-details.order-id"}}</div>
6
6
  <div class="field-value">
7
7
  {{n-a @details.orderId}}
8
8
  </div>
9
9
  </div>
10
10
  <div class="field-info-container space-y-2">
11
- <div class="field-name">Quotation ID</div>
11
+ <div class="field-name">{{t "fleet-ops.component.integrated-order-details.quotation-id"}}</div>
12
12
  <div class="field-value">
13
13
  {{n-a @details.quotationId}}
14
14
  </div>
15
15
  </div>
16
16
 
17
17
  <div class="field-info-container space-y-2">
18
- <div class="field-name">Driver ID</div>
18
+ <div class="field-name">{{t "fleet-ops.component.integrated-order-details.driver-id"}}</div>
19
19
  <div class="field-value">
20
20
  {{n-a @details.driverId "No Driver Assigned"}}
21
21
  </div>
22
22
  </div>
23
23
  <div class="field-info-container space-y-2">
24
- <div class="field-name">Status</div>
24
+ <div class="field-name">{{t "fleet-ops.common.status"}}</div>
25
25
  <div class="field-value">
26
26
  {{smart-humanize @details.status}}
27
27
  </div>
28
28
  </div>
29
29
  <div class="field-info-container space-y-2">
30
- <div class="field-name">Distance</div>
30
+ <div class="field-name">{{t "fleet-ops.common.distance"}}</div>
31
31
  <div class="field-value">
32
32
  {{format-meters @details.distance.value}}
33
33
  </div>
34
34
  </div>
35
35
  <div class="field-info-container space-y-2">
36
- <div class="field-name">Shareable Link</div>
36
+ <div class="field-name">{{t "fleet-ops.component.integrated-order-details.link"}}</div>
37
37
  <div class="field-value">
38
38
  <a href={{@details.shareLink}} class="break-words anchor-button" target="_lalamove_link">
39
39
  <div>
@@ -44,14 +44,14 @@
44
44
  </div>
45
45
  </div>
46
46
  <div class="field-info-container space-y-2 lg:col-span-2">
47
- <div class="field-name">Price Breakdown</div>
47
+ <div class="field-name">{{t "fleet-ops.component.integrated-order-details.price-breakdown"}}</div>
48
48
  <div class="field-value">
49
49
  <div class="next-table-wrapper">
50
50
  <table class="table table-fixed w-full">
51
51
  <thead>
52
52
  <tr>
53
- <th class="text-left">Item</th>
54
- <th class="text-left">Amount</th>
53
+ <th class="text-left">{{t "fleet-ops.common.item"}}</th>
54
+ <th class="text-left">{{t "fleet-ops.common.amount"}}</th>
55
55
  </tr>
56
56
  </thead>
57
57
  <tbody>
@@ -64,7 +64,7 @@
64
64
  {{/if}}
65
65
  {{/each-in}}
66
66
  <tr>
67
- <td class="font-bold">Total</td>
67
+ <td class="font-bold">{{t "fleet-ops.common.total"}}</td>
68
68
  <td class="font-bold">{{format-currency (mult @details.priceBreakdown.total 100) @details.priceBreakdown.currency}}</td>
69
69
  </tr>
70
70
  </tbody>
@@ -73,14 +73,14 @@
73
73
  </div>
74
74
  </div>
75
75
  <div class="field-info-container space-y-2 lg:col-span-2">
76
- <div class="field-name">Metadata</div>
76
+ <div class="field-name">{{t "fleet-ops.component.integrated-order-details.metadata"}}</div>
77
77
  <div class="field-value">
78
78
  <div class="next-table-wrapper">
79
79
  <table class="table table-fixed w-full">
80
80
  <thead>
81
81
  <tr>
82
- <th class="text-left">Key</th>
83
- <th class="text-left">Value</th>
82
+ <th class="text-left">{{t "fleet-ops.common.key"}}</th>
83
+ <th class="text-left">{{t "fleet-ops.common.value"}}</th>
84
84
  </tr>
85
85
  </thead>
86
86
  <tbody>