@fleetbase/fleetops-engine 0.4.0 → 0.4.2

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 (207) 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 +8 -4
  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 +6 -2
  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 +8 -3
  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 +7 -2
  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 +127 -30
  162. package/addon/controllers/operations/orders/index/view.js +57 -20
  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 +1 -12
  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/application.js +5 -2
  169. package/addon/routes/management/places/index.js +1 -1
  170. package/addon/routes/operations/orders/index/view.js +2 -14
  171. package/addon/services/driver-actions.js +9 -8
  172. package/addon/services/vehicle-actions.js +2 -1
  173. package/addon/styles/fleetops-engine.css +6 -0
  174. package/addon/templates/management/contacts/index.hbs +6 -6
  175. package/addon/templates/management/drivers/index.hbs +6 -6
  176. package/addon/templates/management/fleets/index.hbs +6 -6
  177. package/addon/templates/management/fuel-reports/index.hbs +7 -7
  178. package/addon/templates/management/index.hbs +17 -17
  179. package/addon/templates/management/issues/index.hbs +6 -6
  180. package/addon/templates/management/places/index.hbs +6 -6
  181. package/addon/templates/management/vehicles/index.hbs +6 -6
  182. package/addon/templates/management/vendors/index.hbs +6 -6
  183. package/addon/templates/operations/orders/index/config/types.hbs +3 -3
  184. package/addon/templates/operations/orders/index/config.hbs +3 -4
  185. package/addon/templates/operations/orders/index/new.hbs +73 -73
  186. package/addon/templates/operations/orders/index/view.hbs +147 -53
  187. package/addon/templates/operations/orders/index.hbs +13 -13
  188. package/addon/templates/operations/scheduler/index.hbs +3 -3
  189. package/addon/templates/operations/service-rates/index/new.hbs +79 -81
  190. package/addon/templates/operations/service-rates/index.hbs +6 -6
  191. package/composer.json +2 -2
  192. package/extension.json +1 -1
  193. package/package.json +4 -2
  194. package/server/resources/views/labels/default.php +40 -18
  195. package/server/resources/views/labels/waypoint-label.php +126 -0
  196. package/server/src/Http/Controllers/Api/v1/DriverController.php +4 -1
  197. package/server/src/Http/Controllers/Api/v1/OrderController.php +1 -1
  198. package/server/src/Http/Resources/v1/Entity.php +2 -2
  199. package/server/src/Http/Resources/v1/Payload.php +11 -30
  200. package/server/src/Http/Resources/v1/Place.php +3 -3
  201. package/server/src/Http/Resources/v1/Waypoint.php +101 -0
  202. package/server/src/Models/Entity.php +1 -1
  203. package/server/src/Models/Payload.php +39 -0
  204. package/server/src/Models/Place.php +5 -2
  205. package/server/src/Models/Proof.php +1 -1
  206. package/server/src/Models/Waypoint.php +15 -3
  207. package/translations/en-us.yaml +1343 -3
@@ -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
  *
@@ -15,6 +15,20 @@ export default class ManagementDriversIndexController extends BaseController {
15
15
  */
16
16
  @service notifications;
17
17
 
18
+ /**
19
+ * Inject the `modals-manager` service
20
+ *
21
+ * @var {Service}
22
+ */
23
+ @service modalsManager;
24
+
25
+ /**
26
+ * Inject the `intl` service
27
+ *
28
+ * @var {Service}
29
+ */
30
+ @service intl;
31
+
18
32
  /**
19
33
  * Inject the `crud` service
20
34
  *
@@ -214,7 +228,7 @@ export default class ManagementDriversIndexController extends BaseController {
214
228
  */
215
229
  @tracked columns = [
216
230
  {
217
- label: 'Name',
231
+ label: this.intl.t('fleet-ops.common.name'),
218
232
  valuePath: 'name',
219
233
  width: '200px',
220
234
  cellComponent: 'table/cell/driver-name',
@@ -225,7 +239,7 @@ export default class ManagementDriversIndexController extends BaseController {
225
239
  filterComponent: 'filter/string',
226
240
  },
227
241
  {
228
- label: 'ID',
242
+ label: this.intl.t('fleet-ops.common.id'),
229
243
  valuePath: 'public_id',
230
244
  width: '130px',
231
245
  cellComponent: 'click-to-copy',
@@ -236,7 +250,7 @@ export default class ManagementDriversIndexController extends BaseController {
236
250
  filterComponent: 'filter/string',
237
251
  },
238
252
  {
239
- label: 'Internal ID',
253
+ label: this.intl.t('fleet-ops.common.internal-id'),
240
254
  valuePath: 'internal_id',
241
255
  cellComponent: 'click-to-copy',
242
256
  width: '130px',
@@ -246,7 +260,7 @@ export default class ManagementDriversIndexController extends BaseController {
246
260
  filterComponent: 'filter/string',
247
261
  },
248
262
  {
249
- label: 'Vendor',
263
+ label: this.intl.t('fleet-ops.common.vendor'),
250
264
  cellComponent: 'table/cell/anchor',
251
265
  onClick: async (driver) => {
252
266
  const vendor = await driver.loadVendor();
@@ -266,7 +280,7 @@ export default class ManagementDriversIndexController extends BaseController {
266
280
  model: 'vendor',
267
281
  },
268
282
  {
269
- label: 'Vehicle',
283
+ label: this.intl.t('fleet-ops.common.vehicle'),
270
284
  cellComponent: 'table/cell/anchor',
271
285
  onClick: (driver) => {
272
286
  return driver
@@ -289,7 +303,7 @@ export default class ManagementDriversIndexController extends BaseController {
289
303
  model: 'vehicle',
290
304
  },
291
305
  {
292
- label: 'Fleets',
306
+ label: this.intl.t('fleet-ops.common.fleet'),
293
307
  cellComponent: 'table/cell/link-list',
294
308
  cellComponentLabelPath: 'name',
295
309
  action: (fleet) => {
@@ -306,7 +320,7 @@ export default class ManagementDriversIndexController extends BaseController {
306
320
  model: 'fleet',
307
321
  },
308
322
  {
309
- label: 'License',
323
+ label: this.intl.t('fleet-ops.common.license'),
310
324
  valuePath: 'drivers_license_number',
311
325
  cellComponent: 'table/cell/base',
312
326
  width: '150px',
@@ -316,7 +330,7 @@ export default class ManagementDriversIndexController extends BaseController {
316
330
  filterComponent: 'filter/string',
317
331
  },
318
332
  {
319
- label: 'Phone',
333
+ label: this.intl.t('fleet-ops.common.phone'),
320
334
  valuePath: 'phone',
321
335
  cellComponent: 'table/cell/base',
322
336
  width: '150px',
@@ -327,7 +341,7 @@ export default class ManagementDriversIndexController extends BaseController {
327
341
  filterComponent: 'filter/string',
328
342
  },
329
343
  {
330
- label: 'Country',
344
+ label: this.intl.t('fleet-ops.common.country'),
331
345
  valuePath: 'country',
332
346
  cellComponent: 'table/cell/country',
333
347
  cellClassNames: 'uppercase',
@@ -345,7 +359,7 @@ export default class ManagementDriversIndexController extends BaseController {
345
359
  multiOptionSearchPlaceholder: 'Search countries...',
346
360
  },
347
361
  {
348
- label: 'Status',
362
+ label: this.intl.t('fleet-ops.common.status'),
349
363
  valuePath: 'status',
350
364
  cellComponent: 'table/cell/status',
351
365
  width: '10%',
@@ -356,7 +370,7 @@ export default class ManagementDriversIndexController extends BaseController {
356
370
  filterFetchOptions: 'drivers/statuses',
357
371
  },
358
372
  {
359
- label: 'Created At',
373
+ label: this.intl.t('fleet-ops.common.created-at'),
360
374
  valuePath: 'createdAt',
361
375
  sortParam: 'created_at',
362
376
  filterParam: 'created_at',
@@ -367,7 +381,7 @@ export default class ManagementDriversIndexController extends BaseController {
367
381
  filterComponent: 'filter/date',
368
382
  },
369
383
  {
370
- label: 'Updated At',
384
+ label: this.intl.t('fleet-ops.common.updated-at'),
371
385
  valuePath: 'updatedAt',
372
386
  sortParam: 'updated_at',
373
387
  filterParam: 'updated_at',
@@ -390,33 +404,33 @@ export default class ManagementDriversIndexController extends BaseController {
390
404
  width: '10%',
391
405
  actions: [
392
406
  {
393
- label: 'View driver details...',
407
+ label: this.intl.t('fleet-ops.management.drivers.index.view-details'),
394
408
  fn: this.viewDriver,
395
409
  },
396
410
  {
397
- label: 'Edit driver details...',
411
+ label: this.intl.t('fleet-ops.management.drivers.index.edit-details'),
398
412
  fn: this.editDriver,
399
413
  },
400
414
  {
401
415
  separator: true,
402
416
  },
403
417
  {
404
- label: 'Assign order to driver...',
418
+ label: this.intl.t('fleet-ops.management.drivers.index.assign-order-driver'),
405
419
  fn: this.assignOrder,
406
420
  },
407
421
  {
408
- label: 'Assign vehicle to driver...',
422
+ label: this.intl.t('fleet-ops.management.drivers.index.assign-vehicle-driver'),
409
423
  fn: this.assignVehicle,
410
424
  },
411
425
  {
412
- label: 'Locate driver on map...',
426
+ label: this.intl.t('fleet-ops.management.drivers.index.locate-driver-map'),
413
427
  fn: this.locateDriver,
414
428
  },
415
429
  {
416
430
  separator: true,
417
431
  },
418
432
  {
419
- label: 'Delete driver...',
433
+ label: this.intl.t('fleet-ops.management.drivers.index.delete-driver'),
420
434
  fn: this.deleteDriver,
421
435
  },
422
436
  ],
@@ -479,7 +493,7 @@ export default class ManagementDriversIndexController extends BaseController {
479
493
 
480
494
  this.crud.bulkDelete(selected, {
481
495
  modelNamePath: `name`,
482
- acceptButtonText: 'Delete Drivers',
496
+ acceptButtonText: this.intl.t('fleet-ops.management.drivers.index.delete-button'),
483
497
  onSuccess: () => {
484
498
  return this.hostRouter.refresh();
485
499
  },
@@ -18,6 +18,13 @@ export default class ManagementFleetsIndexEditController 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 ManagementFleetsIndexEditController extends BaseController
98
105
  */
99
106
  confirmContinueWithUnsavedChanges(fleet, options = {}) {
100
107
  return this.modalsManager.confirm({
101
- title: 'Continue Without Saving?',
102
- body: 'Unsaved changes to this fleet 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.fleets.index.edit.body'),
110
+ acceptButtonText: this.intl.t('fleet-ops.management.drivers.index.edit.button'),
104
111
  confirm: () => {
105
112
  fleet.rollbackAttributes();
106
113
  return this.transitionToRoute('management.fleets.index.details', fleet);
@@ -18,6 +18,13 @@ export default class ManagementFleetsIndexNewController 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
  *