@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
@@ -4,7 +4,7 @@
4
4
  <layers.tile @url={{this.tileSourceUrl}} />
5
5
  {{#if @options.serviceArea}}
6
6
  <layers.polygon @id={{@options.serviceArea.id}} @record={{@options.serviceArea}} @locations={{@options.serviceArea.bounds}} @fillColor={{@options.serviceArea.color}} @color={{@options.serviceArea.stroke_color}} @onAdd={{fn this.onServiceAreaAdded @options.serviceArea}} as |polygon|>
7
- <polygon.tooltip @permanent={{true}} @sticky={{true}}>{{@options.serviceArea.name}} Service Area</polygon.tooltip>
7
+ <polygon.tooltip @permanent={{true}} @sticky={{true}}>{{@options.serviceArea.name}} {{t "fleet-ops.common.service-area"}}</polygon.tooltip>
8
8
  </layers.polygon>
9
9
  {{/if}}
10
10
  </LeafletMap>
@@ -1,16 +1,16 @@
1
1
  <Modal::Default @modalIsOpened={{@modalIsOpened}} @options={{@options}} @confirm={{@onConfirm}} @decline={{@onDecline}}>
2
2
  <div class="modal-body-container">
3
3
  <div class="input-group">
4
- <InputLabel @labelText="Zone Name" @helpText="Set a display name for the zone." @required={{true}} />
5
- <Input @value={{@options.zone.name}} @type="text" class="w-full form-input" placeholder="Zone Name" />
4
+ <InputLabel @labelText={{t "fleet-ops.component.modals.zone-form.name"}} @helpText={{t "fleet-ops.component.modals.zone-form.name-text"}} @required={{true}} />
5
+ <Input @value={{@options.zone.name}} @type="text" class="w-full form-input" placeholder={{t "fleet-ops.component.modals.zone-form.name"}} />
6
6
  </div>
7
7
 
8
- <InputGroup @type="color" @value={{@options.zone.stroke_color}} @name="Zone Border Color" @helpText="Customize the border color for this zone." class="p-0 border-0 m-0 w-8 h-8 bg-transparent rounded-none" />
9
- <InputGroup @type="color" @value={{@options.zone.color}} @name="Zone Color" @helpText="Customize the fill color for this zone." class="p-0 border-0 m-0 w-8 h-8 bg-transparent rounded-none" />
8
+ <InputGroup @type="color" @value={{@options.zone.stroke_color}} @name={{t "fleet-ops.component.modals.zone-form.border-color"}} @helpText={{t "fleet-ops.component.modals.zone-form.customize-border"}} class="p-0 border-0 m-0 w-8 h-8 bg-transparent rounded-none" />
9
+ <InputGroup @type="color" @value={{@options.zone.color}} @name={{t "fleet-ops.component.modals.zone-form.zone-color"}} @helpText={{t "fleet-ops.component.modals.zone-form.customize-fill-color"}} class="p-0 border-0 m-0 w-8 h-8 bg-transparent rounded-none" />
10
10
 
11
11
  <div class="input-group">
12
- <InputLabel @labelText="Zone Name" @helpText="Optionally give the zone a description." />
13
- <Textarea @value={{@options.zone.description}} rows={{3}} type="text" class="w-full form-input" placeholder="Description of Zone" />
12
+ <InputLabel @labelText={{t "fleet-ops.component.modals.zone-form.name"}} @helpText={{t "fleet-ops.component.modals.zone-form.optionally"}} />
13
+ <Textarea @value={{@options.zone.description}} rows={{3}} type="text" class="w-full form-input" placeholder={{t "fleet-ops.component.modals.zone-form.description-zone"}} />
14
14
  </div>
15
15
  </div>
16
16
  </Modal::Default>
@@ -1,45 +1,45 @@
1
1
  <div class="px-3 py-4 border-b border-gray-900 order-view-header">
2
2
  <div class="flex items-start justify-between">
3
3
  <div class="flex items-start flex-1">
4
- <Button @text="Back" @onClick={{@onBackButtonClick}} class="mr-3" />
4
+ <Button @text={{t "fleet-ops.common.back"}} @onClick={{@onBackButtonClick}} class="mr-3" />
5
5
  <div>
6
6
  <h1 class="mb-1 text-gray-700 dark:text-gray-100">
7
7
  {{@order.public_id}}
8
8
  </h1>
9
9
  <div class="flex flex-row">
10
- <Badge @status={{@order.status}} @helpText={{if (eq @order.status "dispatched") (concat "Dispatched at " @order.dispatchedAt)}} />
10
+ <Badge @status={{@order.status}} @helpText={{if (eq @order.status (t "fleet-ops.component.order.header.dispatched")) (concat (t "fleet-ops.component.order.header.dispatched-at") @order.dispatchedAt)}} />
11
11
  {{#if @order.shouldDisplayDispatchLabel}}
12
- <Badge @status="info" class="ml-2" @helpText="Dispatched at {{@order.dispatchedAt}}">Dispatched</Badge>
12
+ <Badge @status="info" class="ml-2" @helpText={{t "fleet-ops.component.order.header.dispatched" htmlSafe=true order=@order.dispatchedAt}}>{{t "fleet-ops.component.order.header.dispatched"}}</Badge>
13
13
  {{/if}}
14
14
  </div>
15
15
  </div>
16
16
  </div>
17
17
  <div class="flex">
18
18
  {{#if @order.canBeDispatched}}
19
- <Button @type="primary" @icon="paper-plane" @text="Dispatch" class="mr-2" @onClick={{fn this.forwardAction "dispatchOrder"}} />
19
+ <Button @type="primary" @icon="paper-plane" @text={{t "fleet-ops.component.order.header.dispatched"}} class="mr-2" @onClick={{fn this.forwardAction "dispatchOrder"}} />
20
20
  {{/if}}
21
21
  <DropdownButton @icon="ellipsis-h" @contentClass="dropdown-menu" as |dd|>
22
22
  <div class="dropdown-menu-content context-menu">
23
23
  <a href="#" class="dropdown-menu-item" {{on "click" (fn this.forwardAction "editOrder" dd)}}>
24
- Edit Details
24
+ {{t "fleet-ops.component.order.header.edit"}}
25
25
  </a>
26
26
  <a href="#" class="dropdown-menu-item" {{on "click" (fn this.forwardAction "createNewActivity" dd)}}>
27
- Update Activity
27
+ {{t "fleet-ops.component.order.header.update"}}
28
28
  </a>
29
29
  <a href="#" class="dropdown-menu-item" {{on "click" (fn this.forwardAction "assignDriver" dd)}}>
30
- Assign Driver
30
+ {{t "fleet-ops.component.order.header.assign"}}
31
31
  </a>
32
32
  <a href="#" class="dropdown-menu-item" {{on "click" (fn this.forwardAction "viewOrderLabel" dd)}}>
33
- Get Order Label
33
+ {{t "fleet-ops.component.order.header.get-order"}}
34
34
  </a>
35
35
  {{!-- <a href="#" class="dropdown-menu-item" {{on "click" (fn this.forwardAction "splitOrder" dd)}}>
36
- Split Order
36
+ {{t "fleet-ops.component.order.header.split-order"}}
37
37
  </a> --}}
38
38
  {{!-- <a href="#" class="dropdown-menu-item" {{on "click" (fn this.forwardAction "splitOrder" dd)}}>
39
- Reschedule Order
39
+ {{t "fleet-ops.component.order.header.reschedule"}}
40
40
  </a> --}}
41
41
  <a href="#" class="dropdown-menu-item" {{on "click" (fn this.forwardAction "cancelOrder" dd)}}>
42
- Cancel Order
42
+ {{t "fleet-ops.component.order.header.cancel-order"}}
43
43
  </a>
44
44
  </div>
45
45
  </DropdownButton>
@@ -29,9 +29,9 @@
29
29
  {{#if @place.metadata}}
30
30
  <Button @size="xs" @onClick={{this.showMeta}} class="my-2">
31
31
  {{#if this.showingMeta}}
32
- Show less details
32
+ {{t "fleet-ops.component.order.place-card.show-less"}}
33
33
  {{else}}
34
- Show more details
34
+ {{t "fleet-ops.component.order.place-card.show-more"}}
35
35
  {{/if}}
36
36
  </Button>
37
37
  {{#if this.showingMeta}}
@@ -9,7 +9,7 @@
9
9
  <div class="flex items-center justify-between">
10
10
  <div>
11
11
  <FaIcon @icon="calendar" class="mr-2" />
12
- <span class="font-semibold">Date scheduled</span>
12
+ <span class="font-semibold">{{t "fleet-ops.component.order.schedule-card.date"}}</span>
13
13
  </div>
14
14
  <span class={{unless @order.scheduled_at "dark:text-gray-600 text-gray-400"}}>{{n-a @order.scheduledAt "Not Scheduled"}}</span>
15
15
  </div>
@@ -23,7 +23,7 @@
23
23
  <div class="flex items-center justify-between">
24
24
  <div class="flex flex-row items-center">
25
25
  <FaIcon @icon="calendar" class="mr-2" />
26
- <span class="font-semibold">Driver Assigned</span>
26
+ <span class="font-semibold">{{t "fleet-ops.component.order.schedule-card.driver-assigned"}}</span>
27
27
  <div class="ml-2">
28
28
  <a href="javascript:;" class="text-blue-400 hover:opacity-75" {{on "click" this.startAssignDriver}}>
29
29
  <FaIcon @icon="edit" @size="xs" />
@@ -32,7 +32,7 @@
32
32
  </div>
33
33
  <div>
34
34
  {{#if this.isAssigningDriver}}
35
- <ModelSelect @modelName="driver" @selectedModel={{@order.driver_assigned}} @placeholder="Select Driver" @triggerClass="form-select form-input form-input-sm w-48" @infiniteScroll={{false}} @renderInPlace={{true}} @allowClear={{true}} @disabled={{@model.isLoading}} @onChange={{this.assignDriver}} as |model|>
35
+ <ModelSelect @modelName="driver" @selectedModel={{@order.driver_assigned}} @placeholder={{t "fleet-ops.component.order.schedule-card.select-driver"}} @triggerClass="form-select form-input form-input-sm w-48" @infiniteScroll={{false}} @renderInPlace={{true}} @allowClear={{true}} @disabled={{@model.isLoading}} @onChange={{this.assignDriver}} as |model|>
36
36
  <div class="flex items-center">
37
37
  <div class="w-5">
38
38
  <FaIcon @icon="id-card-alt" @size="xs" />
@@ -44,16 +44,16 @@
44
44
  </div>
45
45
  </ModelSelect>
46
46
  {{else}}
47
- <a href="javascript:;" disabled={{not @order.driver_assigned}} class={{unless @order.driver_assigned "dark:text-gray-600 text-gray-400"}} {{on "click" (fn this.onClickDriver @order.driver_assigned)}}>{{n-a @order.driver_assigned.name "No Driver Assigned"}}</a>
47
+ <a href="javascript:;" disabled={{not @order.driver_assigned}} class={{unless @order.driver_assigned "dark:text-gray-600 text-gray-400"}} {{on "click" (fn this.onClickDriver @order.driver_assigned)}}>{{n-a @order.driver_assigned.name (t "fleet-ops.component.order.schedule-card.no-driver")}}</a>
48
48
  {{/if}}
49
49
  </div>
50
50
  </div>
51
51
  <div class="flex items-center justify-between">
52
52
  <div class="flex flex-row items-center">
53
53
  <FaIcon @icon="calendar" class="mr-2" />
54
- <span class="font-semibold">Vehicle Assigned</span>
54
+ <span class="font-semibold">{{t "fleet-ops.component.order.schedule-card.vehicle-assigned"}}</span>
55
55
  </div>
56
- <a href="javascript:;" disabled={{not @order.driver_assigned.vehicle}} class={{unless @order.driver_assigned.vehicle_uuid "dark:text-gray-600 text-gray-400"}} {{on "click" (fn this.onClickVehicle @order.driver_assigned.vehicle)}}>{{n-a @order.driver_assigned.vehicle_name "No Vehicle Assigned"}}</a>
56
+ <a href="javascript:;" disabled={{not @order.driver_assigned.vehicle}} class={{unless @order.driver_assigned.vehicle_uuid "dark:text-gray-600 text-gray-400"}} {{on "click" (fn this.onClickVehicle @order.driver_assigned.vehicle)}}>{{n-a @order.driver_assigned.vehicle_name (t "fleet-ops.component.order.schedule-card.no-vehicle")}}</a>
57
57
  </div>
58
58
  {{!-- <div class="z-20 relative">
59
59
  <RouteList @order={{@order}} />
@@ -16,7 +16,11 @@ export default class OrderScheduleCardComponent extends Component {
16
16
  * @memberof OrderScheduleCardComponent
17
17
  */
18
18
  @service contextPanel;
19
-
19
+ /**
20
+ * Service for intl.
21
+ * @service
22
+ */
23
+ @service intl;
20
24
  /**
21
25
  * Service for managing modals.
22
26
  * @service
@@ -89,9 +93,9 @@ export default class OrderScheduleCardComponent extends Component {
89
93
 
90
94
  if (isBlank(driver)) {
91
95
  return this.modalsManager.confirm({
92
- title: 'Unassign Driver?',
93
- body: `You are about to unassign the driver for Order ${order.public_id}. Click continue to confirm removal of driver.`,
94
- acceptButtonText: 'Continue and unassign driver',
96
+ title: this.intl.t('fleet-ops.component.order.schedule-card.unassign-driver'),
97
+ body: this.intl.t('fleet-ops.component.order.schedule-card.unassign-text', { orderId: order.public_id }),
98
+ acceptButtonText: this.intl.t('fleet-ops.component.order.schedule-card.unassign-button'),
95
99
  confirm: () => {
96
100
  order.setProperties({
97
101
  driver_assigned: null,
@@ -115,9 +119,9 @@ export default class OrderScheduleCardComponent extends Component {
115
119
  }
116
120
 
117
121
  return this.modalsManager.confirm({
118
- title: 'Assign New Driver?',
119
- body: `You are about to assign a new driver (${driver.name}) to Order ${order.public_id}. Click continue to confirm driver.`,
120
- acceptButtonText: 'Continue and assign driver',
122
+ title: this.intl.t('fleet-ops.component.order.schedule-card.assign-driver'),
123
+ body: this.intl.t('fleet-ops.component.order.schedule-card.assign-text', { driverName: driver.name, orderId: order.public_id }),
124
+ acceptButtonText: this.intl.t('fleet-ops.component.order.schedule-card.assign-button'),
121
125
  confirm: () => {
122
126
  order.set('driver_assigned_uuid', driver.id);
123
127
  return order
@@ -2,23 +2,23 @@
2
2
  <div class="content-panel mb-20">
3
3
  <div class="content-panel-header items-center">
4
4
  <h3 class="text-lg font-semibold dark:text-gray-100">
5
- Activity Flow
5
+ {{t "fleet-ops.component.order-config.activity-flow-editor.title"}}
6
6
  </h3>
7
7
 
8
8
  <Button @icon="plus" @iconPrefix="fas" @text="New Status" @size="sm" @onClick={{this.newStatus}} />
9
9
  </div>
10
10
  <div class="content-panel-body no-padding">
11
11
  <div class="my-6 px-5">
12
- <p>Activity flow configuration will allow you to define the different types of tracking status activities that apply for this order type. Logic of the activity flow can also be configured.</p>
12
+ <p>{{t "fleet-ops.component.order-config.activity-flow-editor.message"}}</p>
13
13
  </div>
14
14
 
15
15
  <div class="ui-tabs mb-4">
16
16
  <nav>
17
17
  <a href="javascript:;" class="ui-tab {{if (eq this.activeTab 'order') 'active'}}" {{on "click" (fn (mut this.activeTab) "order" )}}>
18
- Order Flow
18
+ {{t "fleet-ops.component.order-config.activity-flow-editor.order-flow"}}
19
19
  </a>
20
20
  <a href="javascript:;" class="ui-tab {{if (eq this.activeTab 'waypoint') 'active'}}" {{on "click" (fn (mut this.activeTab) "waypoint" )}}>
21
- Waypoint Flow
21
+ {{t "fleet-ops.component.order-config.activity-flow-editor.waypoint-flow"}}
22
22
  </a>
23
23
  </nav>
24
24
  </div>
@@ -33,7 +33,7 @@
33
33
  <div class="activity-status relative cursor-move flex items-center justify-center mb-6">
34
34
  <div class="relative px-3 py-2 status-element {{dasherize (flow-raw-status status)}}-status-element rounded-md flex flex-col items-center justify-center">
35
35
  <Badge @status={{flow-raw-status status}} class="status-badge-lg shadow-none" />
36
- <Button @text="New Activity" @icon="plus" @iconPrefix="fas" @wrapperClass="my-2" @onClick={{fn this.addNewActivity status}} />
36
+ <Button @text={{t "fleet-ops.component.order-config.activity-flow-editor.new-activity"}} @icon="plus" @iconPrefix="fas" @wrapperClass="my-2" @onClick={{fn this.addNewActivity status}} />
37
37
  {{#if (not (includes status (w "created dispatched completed")))}}
38
38
  <div class="absolute top-0 right-0">
39
39
  <button type="button" class="flex items-center justify-center rounded-full w-6 h-6 bg-gray-900 font-semibold text-white -mt-3 -mr-3 shadow-sm" {{on "click" (fn this.removeStatus status)}}>
@@ -50,25 +50,25 @@
50
50
  <div class="mb-4 flex items-center justify-between">
51
51
  <div>
52
52
  <FaIcon @icon="sitemap" class="mr-2 dark:text-sky-300" />
53
- <span class="dark:text-gray-100 text-sm">Activity Details</span>
53
+ <span class="dark:text-gray-100 text-sm">{{t "fleet-ops.component.order-config.activity-flow-editor.activity-details"}}</span>
54
54
  </div>
55
55
  <a href="javascript:;" class="btn btn-danger btn-sm" {{on "click" (fn this.removeActivity status event)}}>
56
56
  <FaIcon @icon="trash" />
57
57
  </a>
58
58
  </div>
59
59
  <div class="grid grid-cols-3 gap-2">
60
- <InputGroup @name="Status" @value={{event.status}} />
61
- <InputGroup @name="Code" @value={{event.code}} />
62
- <InputGroup @name="Details" @value={{event.details}} />
60
+ <InputGroup @name={{t "fleet-ops.common.status"}} @value={{event.status}} />
61
+ <InputGroup @name={{t "fleet-ops.common.code"}} @value={{event.code}} />
62
+ <InputGroup @name={{t "fleet-ops.common.details"}} @value={{event.details}} />
63
63
  </div>
64
64
  </div>
65
65
  <div class="p-3">
66
66
  <div class="mb-4 flex items-center justify-between">
67
67
  <div>
68
68
  <FaIcon @icon="project-diagram" class="mr-2 dark:text-sky-300" />
69
- <span class="dark:text-gray-100 text-sm">Logic Stack</span>
69
+ <span class="dark:text-gray-100 text-sm">{{t "fleet-ops.component.order-config.activity-flow-editor.logic-stack"}}</span>
70
70
  </div>
71
- <Button @text="Add logic condition" @icon="plus" @iconPrefix="fas" @onClick={{fn this.addLogicCondition status event}} />
71
+ <Button @text={{t "fleet-ops.component.order-config.activity-flow-editor.add-logic"}} @icon="plus" @iconPrefix="fas" @onClick={{fn this.addLogicCondition status event}} />
72
72
  </div>
73
73
  <div class="space-y-3 mb-3">
74
74
  {{#each event.if as |logic conditionIndex|}}
@@ -79,15 +79,15 @@
79
79
  </div>
80
80
  <Select @options={{this.configFields}} @value={{get logic 0}} @placeholder="Select field" class="flex-1 w-full" @onSelect={{fn this.updateActivityLogic status event conditionIndex 0}} />
81
81
  </div>
82
- <Select @options={{this.logicOperators}} @value={{get logic 1}} @optionLabel="label" @optionValue="value" @onSelect={{fn this.updateActivityLogic status event conditionIndex 1}} @placeholder="Select operator" />
82
+ <Select @options={{this.logicOperators}} @value={{get logic 1}} @optionLabel="label" @optionValue="value" @onSelect={{fn this.updateActivityLogic status event conditionIndex 1}} @placeholder={{t "fleet-ops.component.order-config.activity-flow-editor.select-operator"}} />
83
83
  <div class="flex items-center col-span-2">
84
- <Input @type="text" @value={{get logic 2}} {{on "keyup" (fn this.updateActivityLogic status event conditionIndex 2)}} placeholder="Enter value to compare" class="form-input w-full flex-1 mr-3" />
84
+ <Input @type="text" @value={{get logic 2}} {{on "keyup" (fn this.updateActivityLogic status event conditionIndex 2)}} placeholder={{t "fleet-ops.component.order-config.activity-flow-editor.enter-value"}} class="form-input w-full flex-1 mr-3" />
85
85
  <Button @size="sm" @icon="trash" @onClick={{fn this.removeLogicCondition event logic}} />
86
86
  </div>
87
87
  </div>
88
88
  {{else}}
89
89
  <div class="flex items-center justify-center">
90
- <div class="rounded bg-gray-300 dark:bg-gray-700 shadow-sm text-sm text-center px-6 py-3 dark:text-gray-100 border border-dashed border-gray-500 dark:border-gray-900">No logic conditions applied</div>
90
+ <div class="rounded bg-gray-300 dark:bg-gray-700 shadow-sm text-sm text-center px-6 py-3 dark:text-gray-100 border border-dashed border-gray-500 dark:border-gray-900">{{t "fleet-ops.component.order-config.activity-flow-editor.no-logic"}}</div>
91
91
  </div>
92
92
  {{/each}}
93
93
  </div>
@@ -22,7 +22,7 @@ export default class OrderConfigActivityFlowEditorComponent extends Component {
22
22
  @service modalsManager;
23
23
  @service notifications;
24
24
  @service fetch;
25
-
25
+ @service intl;
26
26
  @tracked drake;
27
27
  @tracked orderConfig = {};
28
28
  @tracked flow = {};
@@ -149,13 +149,13 @@ export default class OrderConfigActivityFlowEditorComponent extends Component {
149
149
  const { flow } = this;
150
150
 
151
151
  this.modalsManager.show('modals/order-config-new-status', {
152
- title: 'Add new status to flow',
152
+ title: this.intl.t('fleet-ops.component.order-config.activity-flow-editor.add-status'),
153
153
  statusName: null,
154
154
  confirm: async (modal) => {
155
155
  const statusName = modal.getOption('statusName');
156
156
 
157
157
  if (!statusName) {
158
- return this.notifications.warning('No status entered.');
158
+ return this.notifications.warning(this.intl.t('fleet-ops.component.order-config.activity-flow-editor.no-status'));
159
159
  }
160
160
 
161
161
  const format = (status) => underscore(status.toLowerCase());
@@ -165,9 +165,9 @@ export default class OrderConfigActivityFlowEditorComponent extends Component {
165
165
  await modal.done();
166
166
  // prompt to confirm overwrite
167
167
  return this.modalsManager.confirm({
168
- title: 'This will overwrite an existing status!',
169
- body: `There is another '${statusName}' status already existing in this flow, if you continue this status will be overwritten. Would you like to overwrite the previous '${statusName}' status?`,
170
- acceptButtonText: 'Yes, overwrite!',
168
+ title: this.intl.t('fleet-ops.component.order-config.activity-flow-editor.overwrite'),
169
+ body: this.intl.t('fleet-ops.component.order-config.activity-flow-editor.overwrite-text', { statusName: statusName }),
170
+ acceptButtonText: this.intl.t('fleet-ops.component.order-config.activity-flow-editor.overwrite-button'),
171
171
  confirm: (modal) => {
172
172
  this.insertNewStatus(status);
173
173
  modal.done();
@@ -204,9 +204,9 @@ export default class OrderConfigActivityFlowEditorComponent extends Component {
204
204
  @action removeStatus(status) {
205
205
  const { flow } = this;
206
206
  this.modalsManager.confirm({
207
- title: 'Remove status',
208
- body: `Are you sure you wish to delete this status? All related activites and logic will be deleted along with the status.`,
209
- acceptButtonText: 'Yes, delete',
207
+ title: this.intl.t('fleet-ops.component.order-config.activity-flow-editor.remove'),
208
+ body: this.intl.t('fleet-ops.component.order-config.activity-flow-editor.remove-text'),
209
+ acceptButtonText: this.intl.t('fleet-ops.component.order-config.activity-flow-editor.delete-button'),
210
210
  confirm: (modal) => {
211
211
  delete flow[status];
212
212
  set(this, 'flow', flow);
@@ -231,7 +231,7 @@ export default class OrderConfigActivityFlowEditorComponent extends Component {
231
231
 
232
232
  // if status is created or dispatched prevent from dragging
233
233
  if (['created', 'dispatched', 'completed'].includes(format(status))) {
234
- this.notifications.warning(`The '${format(status)}' must be in this order of sequence, unable to shift.`);
234
+ this.notifications.warning(this.intl.t('fleet-ops.component.order-config.activity-flow-editor.unable-warning', { status: format(status) }));
235
235
  this.drake.cancel(true);
236
236
  return;
237
237
  }
@@ -241,7 +241,7 @@ export default class OrderConfigActivityFlowEditorComponent extends Component {
241
241
 
242
242
  // if is not created but attempt to move to sequence 0
243
243
  if (format(status) !== 'created' && sequence === 0) {
244
- this.notifications.warning(`The created status must always be the first sequence of an order flow.`);
244
+ this.notifications.warning(this.intl.t('fleet-ops.component.order-config.activity-flow-editor.order-warning'));
245
245
  this.drake.cancel(true);
246
246
  return;
247
247
  }
@@ -12,20 +12,20 @@
12
12
  </div>
13
13
  <div class="content-panel-body">
14
14
 
15
- <InputGroup @name="Name" @value={{@orderConfig.name}} />
16
- <InputGroup @name="Description" @value={{@orderConfig.description}} />
17
- <InputGroup @name="Key" @value={{@orderConfig.key}} @disabled={{true}} readonly={{true}} @helpText="Pass this key into your order type to configure the order using this config." />
18
- <InputGroup @name="Namespace" @value={{@orderConfig.namespace}} @disabled={{true}} readonly={{true}} @helpText="Unique namespace for this extension." />
19
- <InputGroup @name="Extension ID" @value={{@orderConfig.extension_id}} @disabled={{true}} readonly={{true}} @helpText="Unique ID for this extension." />
20
- <InputGroup @name="Extension Version" @value={{@orderConfig.version}} @disabled={{true}} readonly={{true}} @helpText="Version of this extension." />
15
+ <InputGroup @name={{t "fleet-ops.common.name"}} @value={{@orderConfig.name}} />
16
+ <InputGroup @name={{t "fleet-ops.common.description"}} @value={{@orderConfig.description}} />
17
+ <InputGroup @name={{t "fleet-ops.common.key"}} @value={{@orderConfig.key}} @disabled={{true}} readonly={{true}} @helpText={{t "fleet-ops.component.order-config.details-editor.key-text"}} />
18
+ <InputGroup @name={{t "fleet-ops.common.namespace"}} @value={{@orderConfig.namespace}} @disabled={{true}} readonly={{true}} @helpText={{t "fleet-ops.component.order-config.details-editor.namespace-text"}} />
19
+ <InputGroup @name={{t "fleet-ops.component.order-config.details-editor.id"}} @value={{@orderConfig.extension_id}} @disabled={{true}} readonly={{true}} @helpText={{t "fleet-ops.component.order-config.details-editor.id-text"}} />
20
+ <InputGroup @name={{t "fleet-ops.component.order-config.details-editor.version"}} @value={{@orderConfig.version}} @disabled={{true}} readonly={{true}} @helpText={{t "fleet-ops.component.order-config.details-editor.version-text"}} />
21
21
  </div>
22
22
  </div>
23
23
  <div class="flex items-center justify-end">
24
- <Button @type="default" @icon="clone" @text="Clone Configuration" @size="sm" @wrapperClass="mr-2" @onClick={{fn this.sendAction "clone" @orderConfig}} />
24
+ <Button @type="default" @icon="clone" @text={{t "fleet-ops.component.order-config.details-editor.clone"}} @size="sm" @wrapperClass="mr-2" @onClick={{fn this.sendAction "clone" @orderConfig}} />
25
25
  {{#if @orderConfig.installed}}
26
- <Button @type="danger" @icon="trash" @text="Uninstall Configuration" @size="sm" @onClick={{fn this.sendAction "uninstall" @orderConfig}} />
26
+ <Button @type="danger" @icon="trash" @text={{t "fleet-ops.component.order-config.details-editor.uninstall"}} @size="sm" @onClick={{fn this.sendAction "uninstall" @orderConfig}} />
27
27
  {{else}}
28
- <Button @type="danger" @icon="trash" @text="Delete Configuration" @size="sm" @onClick={{fn this.sendAction "delete" @orderConfig}} />
28
+ <Button @type="danger" @icon="trash" @text={{t "fleet-ops.component.order-config.details-editor.delete"}} @size="sm" @onClick={{fn this.sendAction "delete" @orderConfig}} />
29
29
  {{/if}}
30
30
  </div>
31
31
  {{yield}}
@@ -2,7 +2,7 @@
2
2
  <div class="content-panel mb-20">
3
3
  <div class="content-panel-header items-center">
4
4
  <h3 class="text-lg font-semibold dark:text-gray-100">
5
- Entities
5
+ {{t "fleet-ops.component.order-config.entities-editor.title"}}
6
6
  </h3>
7
7
 
8
8
  <Button @text="New Entity Type" @icon="plus" @iconPrefix="fas" @onClick={{this.newEntity}} />
@@ -10,7 +10,7 @@
10
10
  <div class="content-panel-body">
11
11
  <div class="mb-6">
12
12
  <p>
13
- Entities configuration will allow you to define the different type of entities that should be selectable for this order type. These should be used like templates to make manual order creation faster.
13
+ {{t "fleet-ops.component.order-config.entities-editor.message"}}
14
14
  </p>
15
15
  </div>
16
16
 
@@ -22,38 +22,38 @@
22
22
  <div class="flex items-center justify-between">
23
23
  <div>
24
24
  <FaIcon @icon="box-alt" class="mr-2 dark:text-sky-300" />
25
- <span class="dark:text-gray-100 text-sm mr-1">Entity Type</span>
25
+ <span class="dark:text-gray-100 text-sm mr-1">{{t "fleet-ops.component.order-config.entities-editor.type"}}</span>
26
26
  <span class="dark:text-gray-100 text-sm">({{entity.name}})</span>
27
27
  </div>
28
28
  <div class="flex items-center">
29
29
  <a href="javascript:;" class="mr-2 btn btn-danger btn-sm" {{on "click" (fn this.removeEntity index)}}>
30
30
  <FaIcon @icon="trash" />
31
31
  </a>
32
- <Button @text="Add meta field" @icon="plus" @iconPrefix="fas" @onClick={{fn this.addMetaField index}} />
32
+ <Button @text={{t "fleet-ops.component.order-config.entities-editor.add-meta"}} @icon="plus" @iconPrefix="fas" @onClick={{fn this.addMetaField index}} />
33
33
  </div>
34
34
  </div>
35
35
  </div>
36
36
  <div class="p-3">
37
37
  <div class="grid grid-cols-3 gap-2">
38
- <InputGroup @name="Name" @value={{entity.name}} />
39
- <InputGroup @name="Type" @value={{entity.type}}>
38
+ <InputGroup @name={{t "fleet-ops.common.name"}} @value={{entity.name}} />
39
+ <InputGroup @name={{t "fleet-ops.common.type"}} @value={{entity.type}}>
40
40
  <KeyInput @value={{entity.type}} @onChange={{fn (mut entity.type)}} />
41
41
  </InputGroup>
42
- <InputGroup @name="Description" @value={{entity.description}} class="col-span-2" />
42
+ <InputGroup @name={{t "fleet-ops.common.description"}} @value={{entity.description}} class="col-span-2" />
43
43
  </div>
44
44
 
45
45
  <div class="grid grid-cols-5 gap-2">
46
- <InputGroup @name="Weight" @value={{entity.weight}} class="col-span-3" />
47
- <InputGroup @name="Unit">
46
+ <InputGroup @name={{t "fleet-ops.common.weight"}} @value={{entity.weight}} class="col-span-3" />
47
+ <InputGroup @name={{t "fleet-ops.common.unit"}}>
48
48
  <Select @value={{entity.weight_unit}} @options={{this.weightUnits}} @optionLabel="name" @optionValue="value" class="w-full" />
49
49
  </InputGroup>
50
50
  </div>
51
51
 
52
52
  <div class="grid grid-cols-5 gap-2">
53
- <InputGroup @name="Length" @value={{entity.length}} />
54
- <InputGroup @name="Width" @value={{entity.width}} />
55
- <InputGroup @name="Height" @value={{entity.width}} />
56
- <InputGroup @name="Unit">
53
+ <InputGroup @name={{t "fleet-ops.common.length"}} @value={{entity.length}} />
54
+ <InputGroup @name={{t "fleet-ops.common.width"}} @value={{entity.width}} />
55
+ <InputGroup @name={{t "fleet-ops.common.height"}} @value={{entity.width}} />
56
+ <InputGroup @name={{t "fleet-ops.common.unit"}}>
57
57
  <Select @value={{entity.dimentions_unit}} @options={{this.lengthUnits}} @optionLabel="name" @optionValue="value" class="w-full" />
58
58
  </InputGroup>
59
59
  </div>
@@ -11,7 +11,7 @@ import getLengthUnits from '@fleetbase/ember-core/utils/get-length-units';
11
11
  export default class OrderConfigEntitiesEditorComponent extends Component {
12
12
  @service modalsManager;
13
13
  @service notifications;
14
-
14
+ @service intl;
15
15
  @tracked weightUnits = getWeightUnits();
16
16
  @tracked lengthUnits = getLengthUnits();
17
17
  @tracked _orderConfig = null;
@@ -75,7 +75,7 @@ export default class OrderConfigEntitiesEditorComponent extends Component {
75
75
  const keyName = modal.getOption('keyName');
76
76
 
77
77
  if (!keyName) {
78
- return this.notifications.warning('No meta field key name entered.');
78
+ return this.notifications.warning(this.intl.t('fleet-ops.component.order-config.entities-editor.warning-message'));
79
79
  }
80
80
 
81
81
  modal.startLoading();
@@ -2,16 +2,16 @@
2
2
  <div class="content-panel">
3
3
  <div class="content-panel-header items-center">
4
4
  <h3 class="text-lg font-semibold dark:text-gray-100">
5
- Meta Fields
5
+ {{t "fleet-ops.component.order-config.fields-editor.field-title"}}
6
6
  </h3>
7
7
  <div>
8
- <Button @icon="plus" @iconPrefix="fas" @text="New Custom Field" @size="sm" @onClick={{this.addField}} />
9
- <Button @icon="plus" @iconPrefix="fas" @text="New Custom Fields Group" @size="sm" @onClick={{this.addMetaFieldGroup}} />
8
+ <Button @icon="plus" @iconPrefix="fas" @text={{t "fleet-ops.component.order-config.fields-editor.new-field"}} @size="sm" @onClick={{this.addField}} />
9
+ <Button @icon="plus" @iconPrefix="fas" @text={{t "fleet-ops.component.order-config.fields-editor.new-custom-field"}} @size="sm" @onClick={{this.addMetaFieldGroup}} />
10
10
  </div>
11
11
  </div>
12
12
  <div class="content-panel-body">
13
13
  <div class="mb-6">
14
- <p>Meta fields configuration will allow you to define custom input fields that will be applied to orders.</p>
14
+ <p>{{t "fleet-ops.component.order-config.fields-editor.field-text"}}</p>
15
15
  </div>
16
16
 
17
17
  <Dragula @onDrop={{this.moveMetaField}} as |Container|>
@@ -19,16 +19,16 @@
19
19
  <div class="content-panel">
20
20
  <div class="content-panel-header items-center">
21
21
  <div class="font-semibold dark:text-gray-100">
22
- <span class="mr-1">Custom Fields Group:</span>
22
+ <span class="mr-1">{{t "fleet-ops.component.order-config.fields-editor.custom-field-group"}}:</span>
23
23
  {{#if group.value}}
24
24
  <span>{{smart-humanize group.value}}</span>
25
25
  {{else}}
26
- <span>Default Fields</span>
26
+ <span>{{t "fleet-ops.component.order-config.fields-editor.default-field"}}</span>
27
27
  {{/if}}
28
28
  </div>
29
29
 
30
30
  <div>
31
- <Button @icon="plus" @iconPrefix="fas" @text="New Custom Field" @size="sm" @onClick={{fn this.addField group.value}} />
31
+ <Button @icon="plus" @iconPrefix="fas" @text={{t "fleet-ops.component.order-config.fields-editor.new-field"}} @size="sm" @onClick={{fn this.addField group.value}} />
32
32
  {{#if group.value}}
33
33
  <Button @type="danger" @icon="times" @iconPrefix="fas" @size="sm" @onClick={{fn this.removeGroup group.value}} />
34
34
  {{/if}}
@@ -41,7 +41,7 @@
41
41
  <div class="content-panel cursor-move">
42
42
  <div class="content-panel-header items-center">
43
43
  <div class="font-semibold dark:text-gray-100">
44
- <span class="mr-1">Custom Field:</span>
44
+ <span class="mr-1">{{t "fleet-ops.component.order-config.fields-editor.custom-field"}}:</span>
45
45
  <span>{{metaField.label}}</span>
46
46
  </div>
47
47
  <a href="javascript:;" {{on "click" (fn this.removeField metaField)}} class="btn btn-danger btn-sm">
@@ -53,10 +53,10 @@
53
53
  <InputGroup @name="Label" @value={{metaField.label}} {{on "keyup" (fn this.setFieldLabel metaField)}} />
54
54
  <div class="input-group {{if (eq metaField.type "select") 'col-span-2'}}">
55
55
  <div class="flex items-center justify-between">
56
- <label class="font-medium flex-1">Field Type</label>
56
+ <label class="font-medium flex-1">{{t "fleet-ops.component.order-config.fields-editor.type"}}</label>
57
57
  </div>
58
58
  <div class="flex items-center justify-between">
59
- <Select class="w-full" @value={{metaField.type}} @options={{this.metaFieldTypes}} @optionLabel="label" @optionValue="key" @placeholder="Select field type" @onSelect={{fn (mut metaField.type)}} />
59
+ <Select class="w-full" @value={{metaField.type}} @options={{this.metaFieldTypes}} @optionLabel="label" @optionValue="key" @placeholder={{t "fleet-ops.component.order-config.fields-editor.select-type"}} @onSelect={{fn (mut metaField.type)}} />
60
60
  {{#if (eq metaField.type "select")}}
61
61
  <div class="pl-2">
62
62
  <BasicDropdown @renderInPlace={{false}} as |dd|>
@@ -67,7 +67,7 @@
67
67
  <div class="w-80 mt-2 rounded shadow-md be-white dark:bg-gray-800">
68
68
  <div class="border border-gray-300 shdaow-sm rounded dark:border-gray-900">
69
69
  <div class="flex items-start justify-between mb-1 p-3">
70
- <Button @type="primary" @size="xs" @text="Add Option" @onClick={{fn this.addMetaFieldOption metaField}} />
70
+ <Button @type="primary" @size="xs" @text={{t "fleet-ops.component.order-config.fields-editor.add-option"}} @onClick={{fn this.addMetaFieldOption metaField}} />
71
71
  <div class="flex flex-col space-y-3">
72
72
  <Toggle @label="Key-Value" @isToggled={{metaField.useKvOptions}} @onToggle={{fn this.toggleMetaFieldKv metaField}} />
73
73
  {{#unless metaField.useKvOptions}}
@@ -84,9 +84,9 @@
84
84
  <div class="flex items-start flex-1">
85
85
  <div class="space-y-3 flex flex-col pr-2 flex-1">
86
86
  {{#if metaField.useKvOptions}}
87
- <Input @type="text" @value={{option.key}} class="form-input form-input-sm" placeholder="Key" />
87
+ <Input @type="text" @value={{option.key}} class="form-input form-input-sm" placeholder={{t "fleet-ops.common.key"}} />
88
88
  {{/if}}
89
- <Input @type="text" @value={{option.value}} class="form-input form-input-sm" placeholder="Value" />
89
+ <Input @type="text" @value={{option.value}} class="form-input form-input-sm" placeholder={{t "fleet-ops.common.value"}} />
90
90
  </div>
91
91
  <Button @size="xs" @type="danger" @icon="trash" @onClick={{fn this.removeMetaFieldOption metaField option}} />
92
92
  </div>
@@ -103,7 +103,7 @@
103
103
  {{/if}}
104
104
  </div>
105
105
  </div>
106
- <InputGroup @name="Description" @value={{metaField.description}} />
106
+ <InputGroup @name={{t "fleet-ops.common.description"}} @value={{metaField.description}} />
107
107
  <div class="input-group">
108
108
  <Checkbox @label="Required" @onToggle={{fn (mut metaField.required)}} @value={{metaField.required}} />
109
109
  </div>