@fleetbase/fleetops-engine 0.4.0 → 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 (202) 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/Http/Controllers/Api/v1/OrderController.php +1 -1
  195. package/server/src/Http/Resources/v1/Entity.php +2 -2
  196. package/server/src/Http/Resources/v1/Payload.php +11 -30
  197. package/server/src/Http/Resources/v1/Place.php +3 -3
  198. package/server/src/Http/Resources/v1/Waypoint.php +101 -0
  199. package/server/src/Models/Payload.php +39 -0
  200. package/server/src/Models/Place.php +5 -2
  201. package/server/src/Models/Waypoint.php +15 -3
  202. package/translations/en-us.yaml +1341 -3
@@ -13,14 +13,14 @@
13
13
  <div class="flex flex-row items-center justify-between w-full mb-4">
14
14
  <div class="flex flex-1 space-x-2">
15
15
  {{#if this.vendor.id}}
16
- <Button @type="default" @icon="warehouse" @helpText="View vendor details" @onClick={{this.onViewDetails}} />
16
+ <Button @type="default" @icon="warehouse" @helpText={{t "fleet-ops.component.vendor-form-panel.view-details"}} @onClick={{this.onViewDetails}} />
17
17
  {{/if}}
18
18
  </div>
19
19
  <div class="flex flex-1 justify-end">
20
20
  <div class="mr-2">
21
- <Button @icon={{if this.vendor.id "save" "check"}} @type="primary" @text={{if this.vendor.id "Save Vendor" "Create Vendor"}} @onClick={{this.save}} />
21
+ <Button @icon={{if this.vendor.id "save" "check"}} @type="primary" @text={{if this.vendor.id (t "fleet-ops.component.vendor-form-panel.save-vendor")(t "fleet-ops.component.vendor-form-panel.create-vendor") }} @onClick={{this.save}} />
22
22
  </div>
23
- <Button @type="default" @icon="times" @helpText={{if this.vendor.id "Cancel edit vendor" "Cancel new vendor"}} @onClick={{this.onPressCancel}} />
23
+ <Button @type="default" @icon="times" @helpText={{if this.vendor.id (t "fleet-ops.component.vendor-form-panel.cancel-edit-vendor")(t "fleet-ops.component.vendor-form-panel.cancel-new-vendor") }} @onClick={{this.onPressCancel}} />
24
24
  </div>
25
25
  </div>
26
26
  <div class="flex flex-row justify-between w-full">
@@ -30,11 +30,11 @@
30
30
  <div class="upload-avatar-overlay w-12 h-12 flex items-center justify-start rounded-lg">
31
31
  <img src={{this.vendor.logo_url}} alt={{this.vendor.name}} height="48" width="48" class="h-12 w-12 rounded-lg shadow-sm" />
32
32
  <Attach::Tooltip @class="clean" @animation="scale" @placement="top">
33
- <InputInfo @text="Upload new photo" />
33
+ <InputInfo @text={{t "fleet-ops.component.vendor-form-panel.upload-photo"}} />
34
34
  </Attach::Tooltip>
35
35
  <div class="upload-avatar-button-wrapper rounded-lg">
36
36
  <UploadButton
37
- @name="photos"
37
+ @name={{t "fleet-ops.common.photos"}}
38
38
  @accept="image/*"
39
39
  @onFileAdded={{this.onUploadNewPhoto}}
40
40
  @icon="upload"
@@ -53,7 +53,7 @@
53
53
  {{#if this.vendor.name}}
54
54
  {{this.vendor.name}}
55
55
  {{else}}
56
- <span>New Vendor</span>
56
+ <span>{{t "fleet-ops.component.vendor-form-panel.new-vendor"}}</span>
57
57
  {{/if}}
58
58
  {{/if}}
59
59
  </h1>
@@ -18,6 +18,11 @@ export default class VendorFormPanelComponent extends Component {
18
18
  */
19
19
  @service fetch;
20
20
 
21
+ /**
22
+ * @service intl
23
+ */
24
+ @service intl;
25
+
21
26
  /**
22
27
  * @service currentUser
23
28
  */
@@ -114,7 +119,7 @@ export default class VendorFormPanelComponent extends Component {
114
119
  return vendor
115
120
  .save()
116
121
  .then((vendor) => {
117
- this.notifications.success(`Vendor (${vendor.displayName}) saved successfully.`);
122
+ this.notifications.success(this.intl.t('fleet-ops.component.vendor-form-panel.success-message', { vendorName: vendor.displayName }));
118
123
  contextComponentCallback(this, 'onAfterSave', vendor);
119
124
  })
120
125
  .catch((error) => {
@@ -11,15 +11,15 @@
11
11
  </div>
12
12
  <div class="grid grid-cols-1 md:grid-cols-3 gap-2 text-xs dark:text-gray-100">
13
13
  <div class="field-info-container">
14
- <div class="field-name">Sandbox</div>
14
+ <div class="field-name">{{t "fleet-ops.common.sandbox"}}</div>
15
15
  <div class="field-value">{{if this.vendor.sandbox "Yes" "No"}}</div>
16
16
  </div>
17
17
  <div class="field-info-container">
18
- <div class="field-name">Host</div>
18
+ <div class="field-name">{{t "fleet-ops.common.host"}}</div>
19
19
  <div class="field-value">{{n-a this.vendor.host}}</div>
20
20
  </div>
21
21
  <div class="field-info-container">
22
- <div class="field-name">Namespace</div>
22
+ <div class="field-name">{{t "fleet-ops.common.namespace"}}</div>
23
23
  <div class="field-value">{{n-a this.vendor.namespace}}</div>
24
24
  </div>
25
25
  {{#if (is-object this.vendor.options)}}
@@ -34,41 +34,41 @@
34
34
  {{else}}
35
35
  <div class="grid grid-cols-1 lg:grid-cols-2 gap-2 text-xs dark:text-gray-100">
36
36
  <div class="field-info-container">
37
- <div class="field-name">Name</div>
37
+ <div class="field-name">{{t "fleet-ops.common.name"}}</div>
38
38
  <div class="field-value">{{n-a this.vendor.name}}</div>
39
39
  </div>
40
40
 
41
41
  <div class="field-info-container">
42
- <div class="field-name">Email</div>
42
+ <div class="field-name">{{t "fleet-ops.common.email"}}</div>
43
43
  <div class="field-value">{{n-a this.vendor.email}}</div>
44
44
  </div>
45
45
 
46
46
  <div class="field-info-container">
47
- <div class="field-name">Phone</div>
47
+ <div class="field-name">{{t "fleet-ops.common.phone"}}</div>
48
48
  <div class="field-value">{{n-a this.vendor.phone}}</div>
49
49
  </div>
50
50
 
51
51
  <div class="field-info-container">
52
- <div class="field-name">Website URL</div>
52
+ <div class="field-name">{{t "fleet-ops.common.website-url"}}</div>
53
53
  <div class="field-value">{{n-a this.vendor.website_url}}</div>
54
54
  </div>
55
55
 
56
56
  <div class="field-info-container">
57
- <div class="field-name">Country</div>
57
+ <div class="field-name">{{t "fleet-ops.common.country"}}</div>
58
58
  <div class="field-value">
59
59
  <CountryName @country={{this.vendor.country}} @showFlag={{true}} />
60
60
  </div>
61
61
  </div>
62
62
 
63
63
  <div class="field-info-container">
64
- <div class="field-name">Status</div>
64
+ <div class="field-name">{{t "fleet-ops.common.status"}}</div>
65
65
  <div class="field-value">
66
66
  <Badge @status={{this.vendor.status}} />
67
67
  </div>
68
68
  </div>
69
69
 
70
70
  <div class="field-info-container col-span-2">
71
- <div class="field-name">Address</div>
71
+ <div class="field-name">{{t "fleet-ops.common.address"}}</div>
72
72
  <div class="field-value">{{n-a this.vendor.address}}</div>
73
73
  </div>
74
74
  </div>
@@ -12,10 +12,10 @@
12
12
  <Overlay::Header @hideLeftSection={{true}} @actionsWrapperClass="flex-1 flex-col py-3" class="h-auto-i">
13
13
  <div class="flex flex-row items-center justify-between w-full mb-4">
14
14
  <div class="flex flex-1 space-x-2">
15
- <Button @type="default" @icon="pen" @helpText="Edit vendor" @onClick={{this.onEdit}} />
15
+ <Button @type="default" @icon="pen" @helpText={{t "fleet-ops.component.vendor-panel.edit"}} @onClick={{this.onEdit}} />
16
16
  </div>
17
17
  <div class="flex flex-1 justify-end">
18
- <Button @type="default" @icon="times" @helpText="Close vendor details" @onClick={{this.onPressCancel}} />
18
+ <Button @type="default" @icon="times" @helpText={{t "fleet-ops.component.vendor-panel.close"}} @onClick={{this.onPressCancel}} />
19
19
  </div>
20
20
  </div>
21
21
  <div class="flex flex-row justify-between w-full">
@@ -40,7 +40,7 @@
40
40
  {{#if this.vendor.id}}
41
41
  {{this.vendor.name}}
42
42
  {{else}}
43
- <span>New Vendor</span>
43
+ <span>{{t "fleet-ops.component.vendor-panel.new-vendor"}}</span>
44
44
  {{/if}}
45
45
  </h1>
46
46
  <div class="-mt-1">
@@ -10,7 +10,7 @@
10
10
  {{#if this.isLoading}}
11
11
  <div class="flex text-center items-center justify-center p-4">
12
12
  <Spinner class="mr-2" />
13
- <span>Let's see what you can do to jumpstart operations...</span>
13
+ <span>{{t "fleet-ops.component.widget.fleet-ops-quickstart.message"}}</span>
14
14
  </div>
15
15
  {{else}}
16
16
  <div class="space-y-3">
@@ -27,7 +27,7 @@
27
27
  </div>
28
28
  <div>
29
29
  {{#if task.should}}
30
- <a href="javascript:;" class="text-yellow-700 dark:text-yellow-700 hover:text-yellow-700 font-semibold underline" {{on "click" (fn this.startTask action)}}>Start Task</a>
30
+ <a href="javascript:;" class="text-yellow-700 dark:text-yellow-700 hover:text-yellow-700 font-semibold underline" {{on "click" (fn this.startTask action)}}>{{t "fleet-ops.component.widget.fleet-ops-quickstart.start-task"}}</a>
31
31
  {{/if}}
32
32
  </div>
33
33
  </div>
@@ -4,6 +4,7 @@ import { inject as service } from '@ember/service';
4
4
  import { action, computed } from '@ember/object';
5
5
 
6
6
  export default class WidgetFleetOpsQuickstartComponent extends Component {
7
+ @service intl;
7
8
  @service fetch;
8
9
  @service hostRouter;
9
10
  @tracked tasks = {};
@@ -12,7 +12,7 @@
12
12
  <dl class="mt-5 grid grid-cols-1 gap-5 sm:grid-cols-2 md:grid-cols-4">
13
13
  <div class="px-4 py-5 bg-white dark:bg-gray-900 shadow rounded-lg overflow-hidden sm:p-6">
14
14
  <dt class="text-sm font-medium text-gray-500 dark:text-gray-100 truncate">
15
- Earnings
15
+ {{t "fleet-ops.component.widget.key-metrics.earnings"}}
16
16
  </dt>
17
17
  <dd class="mt-1 text-3xl font-semibold text-gray-900 dark:text-white">
18
18
  {{format-currency this.metrics.earnings}}
@@ -21,7 +21,7 @@
21
21
 
22
22
  <div class="px-4 py-5 bg-white dark:bg-gray-900 shadow rounded-lg overflow-hidden sm:p-6">
23
23
  <dt class="text-sm font-medium text-gray-500 dark:text-gray-100 truncate">
24
- Fuel Expenses
24
+ {{t "fleet-ops.component.widget.key-metrics.fuel-expenses"}}
25
25
  </dt>
26
26
  <dd class="mt-1 text-3xl font-semibold text-gray-900 dark:text-white">
27
27
  {{format-currency this.metrics.fuel_cost}}
@@ -30,7 +30,7 @@
30
30
 
31
31
  <div class="px-4 py-5 bg-white dark:bg-gray-900 shadow rounded-lg overflow-hidden sm:p-6">
32
32
  <dt class="text-sm font-medium text-gray-500 dark:text-gray-100 truncate">
33
- Distance Traveled
33
+ {{t "fleet-ops.component.widget.key-metrics.traveled"}}
34
34
  </dt>
35
35
  <dd class="mt-1 text-3xl font-semibold text-gray-900 dark:text-white">
36
36
  {{format-meters this.metrics.distance_traveled}}
@@ -39,7 +39,7 @@
39
39
 
40
40
  <div class="px-4 py-5 bg-white dark:bg-gray-900 shadow rounded-lg overflow-hidden sm:p-6">
41
41
  <dt class="text-sm font-medium text-gray-500 dark:text-gray-100 truncate">
42
- Total Time
42
+ {{t "fleet-ops.component.widget.key-metrics.total-time"}}
43
43
  </dt>
44
44
  <dd class="mt-1 text-3xl font-semibold text-gray-900 dark:text-white">
45
45
  {{format-duration this.metrics.total_time_traveled}}
@@ -48,7 +48,7 @@
48
48
 
49
49
  <div class="px-4 py-5 bg-white dark:bg-gray-900 shadow rounded-lg overflow-hidden sm:p-6">
50
50
  <dt class="text-sm font-medium text-gray-500 dark:text-gray-100 truncate">
51
- Orders Scheduled
51
+ {{t "fleet-ops.component.widget.key-metrics.order-scheduled"}}
52
52
  </dt>
53
53
  <dd class="mt-1 text-3xl font-semibold text-gray-900 dark:text-white">
54
54
  {{this.metrics.orders_scheduled}}
@@ -57,7 +57,7 @@
57
57
 
58
58
  <div class="px-4 py-5 bg-white dark:bg-gray-900 shadow rounded-lg overflow-hidden sm:p-6">
59
59
  <dt class="text-sm font-medium text-gray-500 dark:text-gray-100 truncate">
60
- Orders Completed
60
+ {{t "fleet-ops.component.widget.key-metrics.order-completed"}}
61
61
  </dt>
62
62
  <dd class="mt-1 text-3xl font-semibold text-gray-900 dark:text-white">
63
63
  {{this.metrics.orders_completed}}
@@ -66,7 +66,7 @@
66
66
 
67
67
  <div class="px-4 py-5 bg-white dark:bg-gray-900 shadow rounded-lg overflow-hidden sm:p-6">
68
68
  <dt class="text-sm font-medium text-gray-500 dark:text-gray-100 truncate">
69
- Orders In Progress
69
+ {{t "fleet-ops.component.widget.key-metrics.order-progress"}}
70
70
  </dt>
71
71
  <dd class="mt-1 text-3xl font-semibold text-gray-900 dark:text-white">
72
72
  {{this.metrics.orders_in_progress}}
@@ -75,7 +75,7 @@
75
75
 
76
76
  <div class="px-4 py-5 bg-white dark:bg-gray-900 shadow rounded-lg overflow-hidden sm:p-6">
77
77
  <dt class="text-sm font-medium text-gray-500 dark:text-gray-100 truncate">
78
- Orders Canceled
78
+ {{t "fleet-ops.component.widget.key-metrics.order-canceled"}}
79
79
  </dt>
80
80
  <dd class="mt-1 text-3xl font-semibold text-gray-900 dark:text-white">
81
81
  {{this.metrics.orders_canceled}}
@@ -84,7 +84,7 @@
84
84
 
85
85
  <div class="px-4 py-5 bg-white dark:bg-gray-900 shadow rounded-lg overflow-hidden sm:p-6">
86
86
  <dt class="text-sm font-medium text-gray-500 dark:text-gray-100 truncate">
87
- Drivers Online
87
+ {{t "fleet-ops.component.widget.key-metrics.driver-online"}}
88
88
  </dt>
89
89
  <dd class="mt-1 text-3xl font-semibold text-gray-900 dark:text-white">
90
90
  {{this.metrics.drivers_online}}
@@ -93,7 +93,7 @@
93
93
 
94
94
  <div class="px-4 py-5 bg-white dark:bg-gray-900 shadow rounded-lg overflow-hidden sm:p-6">
95
95
  <dt class="text-sm font-medium text-gray-500 dark:text-gray-100 truncate">
96
- Customers
96
+ {{t "fleet-ops.component.widget.key-metrics.customers"}}
97
97
  </dt>
98
98
  <dd class="mt-1 text-3xl font-semibold text-gray-900 dark:text-white">
99
99
  {{this.metrics.customers}}
@@ -102,7 +102,7 @@
102
102
 
103
103
  <div class="px-4 py-5 bg-white dark:bg-gray-900 shadow rounded-lg overflow-hidden sm:p-6">
104
104
  <dt class="text-sm font-medium text-gray-500 dark:text-gray-100 truncate">
105
- Open Issue
105
+ {{t "fleet-ops.component.widget.key-metrics.open-issue"}}
106
106
  </dt>
107
107
  <dd class="mt-1 text-3xl font-semibold text-gray-900 dark:text-white">
108
108
  {{this.metrics.open_issues}}
@@ -111,7 +111,7 @@
111
111
 
112
112
  <div class="px-4 py-5 bg-white dark:bg-gray-900 shadow rounded-lg overflow-hidden sm:p-6">
113
113
  <dt class="text-sm font-medium text-gray-500 dark:text-gray-100 truncate">
114
- Closed Issues
114
+ {{t "fleet-ops.component.widget.key-metrics.closed-issues"}}
115
115
  </dt>
116
116
  <dd class="mt-1 text-3xl font-semibold text-gray-900 dark:text-white">
117
117
  {{this.metrics.resolved_issues}}
@@ -15,7 +15,7 @@
15
15
  {{#if this.isLoading}}
16
16
  <div class="flex text-center items-center justify-center p-4">
17
17
  <Spinner class="mr-2" />
18
- <span>Loading orders in progress...</span>
18
+ <span>{{t "fleet-ops.component.widget.live-order-map.loading"}}</span>
19
19
  </div>
20
20
  {{else}}
21
21
  {{#each this.routes as |route|}}
@@ -29,7 +29,7 @@
29
29
  </div>
30
30
  <div>
31
31
  <div>
32
- <div class="mb-1 text-xs text-gray-100">Driver Assigned</div>
32
+ <div class="mb-1 text-xs text-gray-100">{{t "fleet-ops.component.widget.live-order-map.assigned"}}</div>
33
33
  <DriverCardMini @driver={{route.driver}} />
34
34
  </div>
35
35
  </div>
@@ -46,8 +46,8 @@
46
46
  <FaIcon @icon="satellite-dish" @size="3x" />
47
47
  </div>
48
48
  <div class="dark:text-gray-100 text-center">
49
- <div class="font-semibold text-lg mb-2">No orders in progress</div>
50
- <p class="">When orders are in progress they will display in this widget and show real time activity.</p>
49
+ <div class="font-semibold text-lg mb-2">{{t "fleet-ops.component.widget.live-order-map.no-order"}}</div>
50
+ <p class="">{{t "fleet-ops.component.widget.live-order-map.message"}}</p>
51
51
  </div>
52
52
  </div>
53
53
  {{/each}}
@@ -2,13 +2,13 @@
2
2
  <div class="shadow-sm content-panel">
3
3
  <div class="content-panel-header">
4
4
  <h3 class="text-sm font-bold dark:text-gray-100">
5
- Recent Orders
5
+ {{t "fleet-ops.component.widget.recent-orders.title"}}
6
6
  </h3>
7
7
  </div>
8
8
  <div class="text-sm content-panel-body no-padding dark:text-gray-100">
9
9
  {{#if this.isLoading}}
10
10
  <div class="flex text-center items-center justify-center p-4">
11
- Loading recent orders...
11
+ {{t "fleet-ops.component.widget.recent-orders.loading"}}
12
12
  </div>
13
13
  {{else}}
14
14
  {{#each this.recentOrders as |order|}}
@@ -24,8 +24,8 @@
24
24
  <FaIcon @icon="calendar-exclamation" @size="3x" />
25
25
  </div>
26
26
  <div class="dark:text-gray-100 text-center">
27
- <div class="font-semibold text-lg mb-2">No orders for this week</div>
28
- <p class="">There hasn't been any orders this week, get movement going by <LinkTo @route="operations.orders.index.new">creating a new order</LinkTo> or allow your customers to submit orders via API.</p>
27
+ <div class="font-semibold text-lg mb-2">{{t "fleet-ops.component.widget.recent-orders.no-orders"}}</div>
28
+ <p class="">{{t "fleet-ops.component.widget.recent-orders.message-part-1"}} <LinkTo @route="operations.orders.index.new">{{t "fleet-ops.component.widget.recent-orders.message-part-2"}}</LinkTo> {{t "fleet-ops.component.widget.recent-orders.message-part-3"}}</p>
29
29
  </div>
30
30
  </div>
31
31
  {{/each}}
@@ -2,14 +2,14 @@
2
2
  <div class="shadow-sm content-panel">
3
3
  <div class="content-panel-header">
4
4
  <h3 class="text-sm font-bold dark:text-gray-100">
5
- Recent Transactions
5
+ {{t "fleet-ops.component.widget.transactions.title"}}
6
6
  </h3>
7
7
  </div>
8
8
  <div class="text-sm content-panel-body no-padding dark:text-gray-100">
9
9
  {{#if this.isLoading}}
10
10
  <div class="flex text-center items-center justify-center p-4">
11
11
  <Spinner class="mr-2" />
12
- <span>Loading recent transactions...</span>
12
+ <span>{{t "fleet-ops.component.widget.transactions.loading"}}</span>
13
13
  </div>
14
14
  {{else}}
15
15
  {{#each this.recentTransactions as |transaction|}}
@@ -25,8 +25,8 @@
25
25
  <FaIcon @icon="funnel-dollar" @size="3x" />
26
26
  </div>
27
27
  <div class="dark:text-gray-100 text-center">
28
- <div class="font-semibold text-lg mb-2">No transactions this week</div>
29
- <p class="">When orders are going through with service rates, Fleetbase tracks transactions automatically.</p>
28
+ <div class="font-semibold text-lg mb-2">{{t "fleet-ops.component.widget.transactions.no-transactions"}}</div>
29
+ <p class="">{{t "fleet-ops.component.widget.transactions.message"}}</p>
30
30
  </div>
31
31
  </div>
32
32
  {{/each}}
@@ -18,6 +18,13 @@ export default class ManagementContactsIndexEditController extends BaseControlle
18
18
  */
19
19
  @service modalsManager;
20
20
 
21
+ /**
22
+ * Inject the `intl` service
23
+ *
24
+ * @memberof intl
25
+ */
26
+ @service intl;
27
+
21
28
  /**
22
29
  * The overlay component context.
23
30
  *
@@ -98,9 +105,9 @@ export default class ManagementContactsIndexEditController extends BaseControlle
98
105
  */
99
106
  confirmContinueWithUnsavedChanges(contact, options = {}) {
100
107
  return this.modalsManager.confirm({
101
- title: 'Continue Without Saving?',
102
- body: 'Unsaved changes to this contact will be lost. Click continue to proceed.',
103
- acceptButtonText: 'Continue without saving',
108
+ title: this.intl.t('fleet-ops.management.contacts.index.edit.title'),
109
+ body: this.intl.t('fleet-ops.management.contacts.index.edit.body'),
110
+ acceptButtonText: this.intl.t('fleet-ops.management.contacts.index.edit.button'),
104
111
  confirm: () => {
105
112
  contact.rollbackAttributes();
106
113
  return this.transitionToRoute('management.contacts.index.details', contact);
@@ -18,6 +18,13 @@ export default class ManagementContactsIndexNewController extends BaseController
18
18
  */
19
19
  @service hostRouter;
20
20
 
21
+ /**
22
+ * Inject the `intl` service
23
+ *
24
+ * @memberof intl
25
+ */
26
+ @service intl;
27
+
21
28
  /**
22
29
  * Inject the `hostRouter` service
23
30
  *
@@ -21,6 +21,13 @@ export default class ManagementContactsIndexController extends BaseController {
21
21
  */
22
22
  @service notifications;
23
23
 
24
+ /**
25
+ * Inject the `intl` service
26
+ *
27
+ * @var {Service}
28
+ */
29
+ @service intl;
30
+
24
31
  /**
25
32
  * Inject the `modals-manager` service
26
33
  *
@@ -147,7 +154,7 @@ export default class ManagementContactsIndexController extends BaseController {
147
154
  */
148
155
  @tracked columns = [
149
156
  {
150
- label: 'Name',
157
+ label: this.intl.t('fleet-ops.common.name'),
151
158
  valuePath: 'name',
152
159
  width: '170px',
153
160
  cellComponent: 'table/cell/media-name',
@@ -158,7 +165,7 @@ export default class ManagementContactsIndexController extends BaseController {
158
165
  filterComponent: 'filter/string',
159
166
  },
160
167
  {
161
- label: 'ID',
168
+ label: this.intl.t('fleet-ops.common.id'),
162
169
  valuePath: 'public_id',
163
170
  cellComponent: 'click-to-copy',
164
171
  width: '120px',
@@ -168,7 +175,7 @@ export default class ManagementContactsIndexController extends BaseController {
168
175
  filterComponent: 'filter/string',
169
176
  },
170
177
  {
171
- label: 'Internal ID',
178
+ label: this.intl.t('fleet-ops.common.internal-id'),
172
179
  valuePath: 'internal_id',
173
180
  cellComponent: 'click-to-copy',
174
181
  width: '130px',
@@ -178,7 +185,7 @@ export default class ManagementContactsIndexController extends BaseController {
178
185
  filterComponent: 'filter/string',
179
186
  },
180
187
  {
181
- label: 'Title',
188
+ label: this.intl.t('fleet-ops.common.title'),
182
189
  valuePath: 'title',
183
190
  cellComponent: 'click-to-copy',
184
191
  width: '160px',
@@ -188,7 +195,7 @@ export default class ManagementContactsIndexController extends BaseController {
188
195
  filterComponent: 'filter/string',
189
196
  },
190
197
  {
191
- label: 'Email',
198
+ label: this.intl.t('fleet-ops.common.email'),
192
199
  valuePath: 'email',
193
200
  cellComponent: 'click-to-copy',
194
201
  width: '160px',
@@ -198,7 +205,7 @@ export default class ManagementContactsIndexController extends BaseController {
198
205
  filterComponent: 'filter/string',
199
206
  },
200
207
  {
201
- label: 'Phone',
208
+ label: this.intl.t('fleet-ops.common.phone'),
202
209
  valuePath: 'phone',
203
210
  cellComponent: 'click-to-copy',
204
211
  width: '140px',
@@ -208,7 +215,7 @@ export default class ManagementContactsIndexController extends BaseController {
208
215
  filterComponent: 'filter/string',
209
216
  },
210
217
  {
211
- label: 'Type',
218
+ label: this.intl.t('fleet-ops.common.type'),
212
219
  valuePath: 'type',
213
220
  cellComponent: 'table/cell/status',
214
221
  width: '100px',
@@ -219,7 +226,7 @@ export default class ManagementContactsIndexController extends BaseController {
219
226
  filterOptions: ['contact', 'customer'],
220
227
  },
221
228
  {
222
- label: 'Created At',
229
+ label: this.intl.t('fleet-ops.management.contacts.index.created'),
223
230
  valuePath: 'createdAt',
224
231
  sortParam: 'created_at',
225
232
  width: '130px',
@@ -229,7 +236,7 @@ export default class ManagementContactsIndexController extends BaseController {
229
236
  filterComponent: 'filter/date',
230
237
  },
231
238
  {
232
- label: 'Updated At',
239
+ label: this.intl.t('fleet-ops.management.contacts.index.updated'),
233
240
  valuePath: 'updatedAt',
234
241
  sortParam: 'updated_at',
235
242
  width: '130px',
@@ -251,18 +258,18 @@ export default class ManagementContactsIndexController extends BaseController {
251
258
  width: '10%',
252
259
  actions: [
253
260
  {
254
- label: 'View Contact Details',
261
+ label: this.intl.t('fleet-ops.management.contacts.index.view-contact'),
255
262
  fn: this.viewContact,
256
263
  },
257
264
  {
258
- label: 'Edit Contact',
265
+ label: this.intl.t('fleet-ops.management.contacts.index.edit-contact'),
259
266
  fn: this.editContact,
260
267
  },
261
268
  {
262
269
  separator: true,
263
270
  },
264
271
  {
265
- label: 'Delete Contact',
272
+ label: this.intl.t('fleet-ops.management.contacts.index.delete-contact'),
266
273
  fn: this.deleteContact,
267
274
  },
268
275
  ],
@@ -320,7 +327,7 @@ export default class ManagementContactsIndexController extends BaseController {
320
327
  * @void
321
328
  */
322
329
  @action viewContact(contact) {
323
- return this.transitionToRoute('management.contacts.index.details', contact);
330
+ return this.transitionToRoute('management.contact.index.details', contact);
324
331
  }
325
332
 
326
333
  /**
@@ -329,7 +336,7 @@ export default class ManagementContactsIndexController extends BaseController {
329
336
  * @void
330
337
  */
331
338
  @action createContact() {
332
- return this.transitionToRoute('management.contacts.index.new');
339
+ return this.transitionToRoute('management.contact.index.new');
333
340
  }
334
341
 
335
342
  /**
@@ -339,7 +346,7 @@ export default class ManagementContactsIndexController extends BaseController {
339
346
  * @void
340
347
  */
341
348
  @action editContact(contact) {
342
- return this.transitionToRoute('management.contacts.index.edit', contact);
349
+ return this.transitionToRoute('management.contact.index.edit', contact);
343
350
  }
344
351
 
345
352
  /**
@@ -370,7 +377,7 @@ export default class ManagementContactsIndexController extends BaseController {
370
377
 
371
378
  this.crud.bulkDelete(selected, {
372
379
  modelNamePath: `name`,
373
- acceptButtonText: 'Delete Contacts',
380
+ acceptButtonText: this.intl.t('fleet-ops.management.contacts.index.delete-button'),
374
381
  onSuccess: () => {
375
382
  return this.hostRouter.refresh();
376
383
  },
@@ -18,6 +18,13 @@ export default class ManagementDriversIndexEditController extends BaseController
18
18
  */
19
19
  @service modalsManager;
20
20
 
21
+ /**
22
+ * Inject the `intl` service
23
+ *
24
+ * @memberof intl
25
+ */
26
+ @service intl;
27
+
21
28
  /**
22
29
  * The overlay component context.
23
30
  *
@@ -98,9 +105,9 @@ export default class ManagementDriversIndexEditController extends BaseController
98
105
  */
99
106
  confirmContinueWithUnsavedChanges(driver, options = {}) {
100
107
  return this.modalsManager.confirm({
101
- title: 'Continue Without Saving?',
102
- body: 'Unsaved changes to this driver will be lost. Click continue to proceed.',
103
- acceptButtonText: 'Continue without saving',
108
+ title: this.intl.t('fleet-ops.management.drivers.index.edit.title'),
109
+ body: this.intl.t('fleet-ops.management.drivers.index.edit.body'),
110
+ acceptButtonText: this.intl.t('fleet-ops.management.drivers.index.edit.button'),
104
111
  confirm: () => {
105
112
  driver.rollbackAttributes();
106
113
  return this.transitionToRoute('management.drivers.index.details', driver);
@@ -18,6 +18,13 @@ export default class ManagementDriversIndexNewController extends BaseController
18
18
  */
19
19
  @service hostRouter;
20
20
 
21
+ /**
22
+ * Inject the `intl` service
23
+ *
24
+ * @memberof intl
25
+ */
26
+ @service intl;
27
+
21
28
  /**
22
29
  * Inject the `hostRouter` service
23
30
  *