@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
@@ -1,9 +1,9 @@
1
1
  <Overlay @position="right" @noBackdrop={{true}} @isResizable={{true}} @fullHeight={{true}} @width="570px">
2
- <Overlay::Header @title={{if this.serviceRate.id this.serviceRate.service_name "New service rate"}} @status={{this.serviceRate.public_id}} @hideStatusDot={{true}} @createdAt={{this.serviceRate.createdAt}} @onPressCancel={{this.transitionBack}}>
2
+ <Overlay::Header @title={{if this.serviceRate.id this.serviceRate.service_name (t "fleet-ops.operations.service-rates.index.new.new-service-rate-title")}} @status={{this.serviceRate.public_id}} @hideStatusDot={{true}} @createdAt={{this.serviceRate.createdAt}} @onPressCancel={{this.transitionBack}}>
3
3
  {{#if this.serviceRate.id}}
4
- <Button @icon="save" @type="primary" @text="Save Service Rate" @onClick={{this.updateServiceRate}} @isLoading={{this.isUpdatingServiceRate}} />
4
+ <Button @icon="save" @type="primary" @text={{t "fleet-ops.operations.service-rates.index.new.save-service-button"}} @onClick={{this.updateServiceRate}} @isLoading={{this.isUpdatingServiceRate}} />
5
5
  {{else}}
6
- <Button @icon="check" @type="primary" @text="Create Service Rate" @onClick={{this.createServiceRate}} @isLoading={{this.isCreatingServiceRate}} />
6
+ <Button @icon="check" @type="primary" @text={{t "fleet-ops.operations.service-rates.index.new.create-service-button"}} @onClick={{this.createServiceRate}} @isLoading={{this.isCreatingServiceRate}} />
7
7
  {{/if}}
8
8
  </Overlay::Header>
9
9
 
@@ -11,48 +11,48 @@
11
11
  <div>
12
12
  <div class="grid grid-cols-2 gap-2">
13
13
  <div class="input-group">
14
- <InputLabel @labelText="Service Name" @helpText="Display name for this service." @required={{true}} />
15
- <Input @type="text" @value={{this.serviceRate.service_name}} placeholder="Service Name" class="form-input w-full" />
14
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.service-name"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.service-name-help-text"}} @required={{true}} />
15
+ <Input @type="text" @value={{this.serviceRate.service_name}} placeholder={{t "fleet-ops.operations.service-rates.index.new.service-name"}} class="form-input w-full" />
16
16
  </div>
17
17
 
18
18
  <div class="input-group">
19
- <InputLabel @labelText="Service Order Type" @helpText="Restrict this service rate to an explicit `order type`." />
20
- <Select class="w-full" @options={{this.serviceTypes}} @value={{this.serviceRate.service_type}} @optionLabel="name" @optionValue="key" @onSelect={{fn (mut this.serviceRate.service_type)}} @placeholder="Select order type to restrict service to" />
19
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.service-order-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.service-order-help-text"}} />
20
+ <Select class="w-full" @options={{this.serviceTypes}} @value={{this.serviceRate.service_type}} @optionLabel="name" @optionValue="key" @onSelect={{fn (mut this.serviceRate.service_type)}} @placeholder={{t "fleet-ops.operations.service-rates.index.new.service-order-placeholder"}} />
21
21
  </div>
22
22
 
23
23
  <div class="input-group">
24
- <InputLabel @labelText="Base Fee" @helpText="Set a base fee which represents the minimum cost for this serice." @required={{true}} />
24
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.base-fee-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.base-fee-help-text"}} @required={{true}} />
25
25
  <MoneyInput class="w-full" @value={{this.serviceRate.base_fee}} @currency={{this.serviceRate.currency}} @canSelectCurrency={{true}} @onCurrencyChange={{fn (mut this.serviceRate.currency)}} />
26
26
  </div>
27
27
 
28
28
  <div class="input-group">
29
- <InputLabel @labelText="Rate Calculation Method" @helpText="The method this service will use to calculate rates when queried." @required={{true}} />
30
- <Select class="w-full" @options={{this.calculationMethods}} @value={{this.serviceRate.rate_calculation_method}} @optionLabel="name" @optionValue="key" @onSelect={{fn (mut this.serviceRate.rate_calculation_method)}} @placeholder="Select rate calculation method" />
29
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.rate-calculation-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.rate-calculation-help-text"}} @required={{true}} />
30
+ <Select class="w-full" @options={{this.calculationMethods}} @value={{this.serviceRate.rate_calculation_method}} @optionLabel="name" @optionValue="key" @onSelect={{fn (mut this.serviceRate.rate_calculation_method)}} @placeholder={{t "fleet-ops.operations.service-rates.index.new.rate-calculation-placeholder"}} />
31
31
  </div>
32
32
  </div>
33
33
  </div>
34
34
 
35
35
  {{#if this.serviceRate.isParcelService}}
36
36
  <div class="input-group">
37
- <InputLabel @labelText="Estimated Delivery Days" @helpText="The estimated number of days this service will take. For a same-day service use `0`." @required={{true}} />
37
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.estimated-days"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.estimated-days-help-text"}} @required={{true}} />
38
38
 
39
- <Input @type="number" @value={{this.serviceRate.estimated_days}} placeholder="Estimated Delivery Days" class="form-input w-full" />
39
+ <Input @type="number" @value={{this.serviceRate.estimated_days}} placeholder={{t "fleet-ops.operations.service-rates.index.new.estimated-days"}} class="form-input w-full" />
40
40
  </div>
41
41
  {{/if}}
42
42
 
43
43
  <div class="input-group col-span-2">
44
- <InputLabel @labelText="Duration Terms" @helpText="Add additional terms of service regarding duration for this serice rate." />
44
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.duration-terms-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.duration-terms-help-text"}} />
45
45
 
46
- <Input @type="text" @value={{this.serviceRate.duration_terms}} placeholder="Duration terms if applicable" class="form-input w-full" />
46
+ <Input @type="text" @value={{this.serviceRate.duration_terms}} placeholder={{t "fleet-ops.operations.service-rates.index.new.duration-terms-placeholder"}} class="form-input w-full" />
47
47
  </div>
48
48
 
49
49
  {{#if this.serviceRate.isFixedMeter}}
50
- <ContentPanel @title="Fixed Meter Options" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
51
- <InfoBlock class="mb-5" @text="This option defines a fixed fee per kilometer." @exampleText="For example: Every 1 kilometer a fixed fee is defined. If the distance traveled by the order is 3,300 meters the fixed fee for the 3rd kilometer will be added to the sum of the base fee." />
50
+ <ContentPanel @title={{t "fleet-ops.operations.service-rates.index.new.fixed-meter"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
51
+ <InfoBlock class="mb-5" @text={{t "fleet-ops.operations.service-rates.index.new.fixed-meter-text"}} @exampleText={{t "fleet-ops.operations.service-rates.index.new.fixed-meter-example-text"}} />
52
52
 
53
53
  <div class="input-group">
54
- <InputLabel @labelText="Maximum Distance" @helpText="The maximum distance servicable." @required={{true}} />
55
- <Input @type="number" @value={{this.fixedMeterMaxDistance}} placeholder="Maximum Distance" class="form-input w-full" />
54
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.maximum-distance"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.maximum-distance-help-text"}} @required={{true}} />
55
+ <Input @type="number" @value={{this.fixedMeterMaxDistance}} placeholder={{t "fleet-ops.operations.service-rates.index.new.maximum-distance"}} class="form-input w-full" />
56
56
  </div>
57
57
 
58
58
  <div class="table-scrolling-height overflow-y-scroll">
@@ -60,8 +60,8 @@
60
60
  <table class="table table-fixed">
61
61
  <thead>
62
62
  <tr>
63
- <th>Distance</th>
64
- <th>Fee</th>
63
+ <th>{{t "fleet-ops.operations.service-rates.index.new.distance"}}</th>
64
+ <th>{{t "fleet-ops.operations.service-rates.index.new.fee"}}</th>
65
65
  </tr>
66
66
  </thead>
67
67
  <tbody>
@@ -80,20 +80,20 @@
80
80
  </div>
81
81
  </ContentPanel>
82
82
  {{else if this.serviceRate.isPerDrop}}
83
- <ContentPanel @title="Per Drop-off Options" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
84
- <InfoBlock class="mb-5" @text="This option defines a fixed fee per drop-offs." @exampleText="For example: 1-5 dropoffs in the order will cost $x amount, 5-10 dropoffs per order will cost $x amount. This will be added to the sum of the base fee." />
83
+ <ContentPanel @title={{t "fleet-ops.operations.service-rates.index.new.per-drop-off-title"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
84
+ <InfoBlock class="mb-5" @text={{t "fleet-ops.operations.service-rates.index.new.per-drop-off-text"}} @exampleText={{t "fleet-ops.operations.service-rates.index.new.per-drop-off-example-text"}} />
85
85
 
86
86
  <div class="input-group">
87
- <Button @text="Add drop-off range" @icon="plus" @iconPrefix="fas" @onClick={{this.addPerDropoffRateFee}} />
87
+ <Button @text={{t "fleet-ops.operations.service-rates.index.new.add-drop-off-button"}} @icon="plus" @iconPrefix="fas" @onClick={{this.addPerDropoffRateFee}} />
88
88
  </div>
89
89
 
90
90
  <div class="table-wrapper table-fluid rounded-none">
91
91
  <table class="table table-fixed">
92
92
  <thead>
93
93
  <tr>
94
- <th>Min Drop</th>
95
- <th>Max Drop</th>
96
- <th>Fee</th>
94
+ <th>{{t "fleet-ops.operations.service-rates.index.new.min-drop"}}</th>
95
+ <th>{{t "fleet-ops.operations.service-rates.index.new.max-drop"}}</th>
96
+ <th>{{t "fleet-ops.operations.service-rates.index.new.fee"}}</th>
97
97
  <th></th>
98
98
  </tr>
99
99
  </thead>
@@ -101,16 +101,16 @@
101
101
  {{#each this.perDropRateFees as |rateFee index|}}
102
102
  <tr>
103
103
  <td>
104
- <Input @type="number" @value={{rateFee.min}} placeholder="Min" class="form-input w-16" />
104
+ <Input @type="number" @value={{rateFee.min}} placeholder={{t "fleet-ops.operations.service-rates.index.new.min"}} class="form-input w-16" />
105
105
  </td>
106
106
  <td>
107
- <Input @type="number" @value={{rateFee.max}} placeholder="Max" class="form-input w-16" />
107
+ <Input @type="number" @value={{rateFee.max}} placeholder={{t "fleet-ops.operations.service-rates.index.new.max"}} class="form-input w-16" />
108
108
  </td>
109
109
  <td>
110
110
  <MoneyInput class="w-full" @currency={{this.serviceRate.currency}} @value={{rateFee.fee}} />
111
111
  </td>
112
112
  <td>
113
- <a href="javascript:;" class="text-danger text-red-500 font-semibold" {{on "click" (fn this.removePerDropoffRateFee index)}}>Remove</a>
113
+ <a href="javascript:;" class="text-danger text-red-500 font-semibold" {{on "click" (fn this.removePerDropoffRateFee index)}}>{{t "fleet-ops.common.remove"}}</a>
114
114
  </td>
115
115
  </tr>
116
116
  {{/each}}
@@ -119,18 +119,18 @@
119
119
  </div>
120
120
  </ContentPanel>
121
121
  {{else if this.serviceRate.isPerMeter}}
122
- <ContentPanel @title="Per Meter" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
123
- <InfoBlock class="mb-5" @text="This option allows the service to be calculated per kilometer or meter, that means you define a flat fee which is then multiplied by the distance which can be either meter or kilometer." @exampleText="For example: {fee} * {distance} + {baseFee}" />
122
+ <ContentPanel @title={{t "fleet-ops.operations.service-rates.index.new.per-meter"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
123
+ <InfoBlock class="mb-5" @text={{t "fleet-ops.operations.service-rates.index.new.per-meter-text"}} @exampleText={{t "fleet-ops.operations.service-rates.index.new.per-meter-example-text"}} />
124
124
 
125
125
  <div class="grid grid-cols-2 gap-2">
126
126
  <div class="input-group">
127
- <InputLabel @labelText="Per Meter Flat Rate Fee" @helpText="The single flat fee which will be multipled by the distance." @required={{true}} />
127
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.per-meter-rate-fee"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.per-meter-rate-fee-help-text"}} @required={{true}} />
128
128
  <MoneyInput class="w-full" @currency={{this.serviceRate.currency}} @value={{this.serviceRate.per_meter_flat_rate_fee}} />
129
129
  </div>
130
130
 
131
131
  <div class="input-group">
132
- <InputLabel @labelText="Distance Unit" @helpText="The unit of distance can be either per kilometer or meter." @required={{true}} />
133
- <Select class="w-full" @options={{this.distanceUnits}} @value={{this.serviceRate.per_meter_unit}} @optionLabel="name" @optionValue="key" @onSelect={{fn (mut this.serviceRate.per_meter_unit)}} placeholder="Select distance unit." />
132
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.distance-unit"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.distance-unit-help-text"}} @required={{true}} />
133
+ <Select class="w-full" @options={{this.distanceUnits}} @value={{this.serviceRate.per_meter_unit}} @optionLabel="name" @optionValue="key" @onSelect={{fn (mut this.serviceRate.per_meter_unit)}} placeholder={{t "fleet-ops.operations.service-rates.index.new.distance-unit-placeholder"}} />
134
134
  </div>
135
135
 
136
136
  <div class="col-span-2">
@@ -141,39 +141,37 @@
141
141
  </div>
142
142
  </ContentPanel>
143
143
  {{else if this.serviceRate.isAlgorithm}}
144
- <ContentPanel @title="Custom Algorithm" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
144
+ <ContentPanel @title={{t "fleet-ops.operations.service-rates.index.new.custom-algorithm-title"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
145
145
  <InfoBlock class="mb-5">
146
- This option is to define a custom calculation for this service's fee with variables.
147
- Note that variables must be wrapped in a single curly brace.
146
+ {{t "fleet-ops.operations.service-rates.index.new.custom-algorithm-info-message"}}
147
+ {{t "fleet-ops.operations.service-rates.index.new.custom-algorithm-info-second-message"}}
148
148
 
149
149
  <div class="block my-4 break-text">
150
150
  <ul class="list-disc space-y-2 pl-16">
151
- <li class="leading-5"><i>distance</i> - the distance in meters from the order
152
- route.</li>
153
- <li class="leading-5"><i>time</i> - the route ETA in seconds.</li>
151
+ <li class="leading-5"><i>{{t "fleet-ops.operations.service-rates.index.new.distance-message"}}</i> {{t "fleet-ops.operations.service-rates.index.new.distance-continue-message"}}</li>
152
+ <li class="leading-5"><i>{{t "fleet-ops.operations.service-rates.index.new.time-message"}}</i> {{t "fleet-ops.operations.service-rates.index.new.time-continue-message"}}</li>
154
153
  </ul>
155
154
  </div>
156
155
 
157
156
  <div>
158
- <h4 class="mb-1 text-sm font-semibold">Example</h4>
157
+ <h4 class="mb-1 text-sm font-semibold">{{t "fleet-ops.operations.service-rates.index.new.example"}}</h4>
159
158
  <div class="mb-3 text-inherit">
160
- If the order request is a distance of 2,200 meters with an ETA of 30 minutes.
161
- Then the following formula will calculate a service fee of $2.50, which will be
162
- added to the base fee.
159
+ {{t "fleet-ops.operations.service-rates.index.new.example-message"}}
160
+ {{t "fleet-ops.operations.service-rates.index.new.example-second-message"}}
163
161
  </div>
164
162
  <code class="text-xs font-mono">(( {distance} / 50 ) * .05 ) + (( {time} / 60 ) * .01)</code>
165
163
  </div>
166
164
  </InfoBlock>
167
165
 
168
166
  <div class="input-group">
169
- <InputLabel @labelText="Algorithm" @helpText="Define a formula to be evaluated for this service rate calculation." @required={{true}} />
170
- <Input @type="tel" @value={{this.serviceRate.algorithm}} placeholder="(( {distance} / 50 ) * .05 ) + (( {time} / 60 ) * .01)" class="form-input w-full" />
167
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.algorithm-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.algorithm-help-text"}} @required={{true}} />
168
+ <Input @type="tel" @value={{this.serviceRate.algorithm}} placeholder={{t "fleet-ops.operations.service-rates.index.new.algorithm-placeholder"}} class="form-input w-full" />
171
169
  </div>
172
170
  </ContentPanel>
173
171
  {{/if}}
174
172
 
175
173
  {{#if this.serviceRate.isParcelService}}
176
- <ContentPanel @title="Parcel Fee's" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
174
+ <ContentPanel @title={{t "fleet-ops.operations.service-rates.index.new.percel-fee-title"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
177
175
  <div class="space-y-2">
178
176
  {{#each this.parcelFees as |parcelFee|}}
179
177
  <div class="dark:text-gray-100">
@@ -185,38 +183,38 @@
185
183
  <div class="col-span-6 dimensions-box">
186
184
  <div class="grid grid-cols-4 gap-2 px-2 mb-2">
187
185
  <div class="input-group">
188
- <InputLabel @labelText="Length" />
189
- <Input @type="tel" @value={{parcelFee.length}} placeholder="Length in {{parcelFee.dimension_unit}}" class="form-input w-4/5" />
186
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.length-label"}} />
187
+ <Input @type="tel" @value={{parcelFee.length}} placeholder={{t "fleet-ops.operations.service-rates.index.new.length-placeholder" htmlSafe=true parcelFeeDimension=@parcelFee.dimension_unit}} class="form-input w-4/5" />
190
188
  </div>
191
189
 
192
190
  <div class="input-group">
193
- <InputLabel @labelText="Width" />
194
- <Input @type="tel" @value={{parcelFee.width}} placeholder="Width in {{parcelFee.dimension_unit}}" class="form-input w-4/5" />
191
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.width-label"}} />
192
+ <Input @type="tel" @value={{parcelFee.width}} placeholder={{t "fleet-ops.operations.service-rates.index.new.width-placeholder" htmlSafe=true parcelFeeDimension=@parcelFee.dimension_unit }} class="form-input w-4/5" />
195
193
  </div>
196
194
 
197
195
  <div class="input-group">
198
- <InputLabel @labelText="Height" />
199
- <Input @type="tel" @value={{parcelFee.height}} placeholder="Height in {{parcelFee.dimension_unit}}" class="form-input w-4/5" />
196
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.height-label"}} />
197
+ <Input @type="tel" @value={{parcelFee.height}} placeholder={{t "fleet-ops.operations.service-rates.index.new.height-placeholder" htmlSafe=true parcelFeeDimension=@parcelFee.dimension_unit }} class="form-input w-4/5" />
200
198
  </div>
201
199
 
202
200
  <div class="input-group">
203
- <InputLabel @labelText="Weight" />
204
- <Input @type="tel" @value={{parcelFee.weight}} placeholder="Weight in {{parcelFee.weight_unit}}" class="form-input w-4/5" />
201
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.weight-label"}} />
202
+ <Input @type="tel" @value={{parcelFee.weight}} placeholder={{t "fleet-ops.operations.service-rates.index.new.weight-label" htmlSafe=true parcelFeeWeight=@parcelFee.weight_unit }} class="form-input w-4/5" />
205
203
  </div>
206
204
  </div>
207
205
  <div class="grid grid-cols-3 gap-2 px-2">
208
206
  <div class="input-group">
209
- <InputLabel @labelText="Dimensions Unit" />
210
- <Select class="w-full" @options={{this.dimensionUnits}} @value={{parcelFee.dimension_unit}} placeholder="Select unit" />
207
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.deminsions-unit"}} />
208
+ <Select class="w-full" @options={{this.dimensionUnits}} @value={{parcelFee.dimension_unit}} placeholder={{t "fleet-ops.operations.service-rates.index.new.select-unit-placeholder"}} />
211
209
  </div>
212
210
 
213
211
  <div class="input-group">
214
- <InputLabel @labelText="Weight Unit" />
215
- <Select class="w-full" @options={{this.weightUnits}} @value={{parcelFee.weight_unit}} placeholder="Select unit" />
212
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.weight-unit"}} />
213
+ <Select class="w-full" @options={{this.weightUnits}} @value={{parcelFee.weight_unit}} placeholder={{t "fleet-ops.operations.service-rates.index.new.select-unit-placeholder"}} />
216
214
  </div>
217
215
 
218
216
  <div class="input-group">
219
- <InputLabel @labelText="Additional Fee" />
217
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.additional-fee"}} />
220
218
  <MoneyInput class="w-full" @currency={{this.serviceRate.currency}} @value={{parcelFee.fee}} />
221
219
  </div>
222
220
  </div>
@@ -228,79 +226,79 @@
228
226
  </ContentPanel>
229
227
  {{/if}}
230
228
 
231
- <ContentPanel @title="Cash on Delivery" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
232
- <Toggle @wrapperClass="justify-start-i mb-5" @label="Enable additional fee for `cash on delivery` orders?" @isToggled={{this.serviceRate.has_cod_fee}} @onToggle={{fn (mut this.serviceRate.has_cod_fee)}} />
229
+ <ContentPanel @title={{t "fleet-ops.operations.service-rates.index.new.cash-delivery-title"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
230
+ <Toggle @wrapperClass="justify-start-i mb-5" @label={{t "fleet-ops.operations.service-rates.index.new.cash-delivery-label"}} @isToggled={{this.serviceRate.has_cod_fee}} @onToggle={{fn (mut this.serviceRate.has_cod_fee)}} />
233
231
 
234
232
  {{#if this.serviceRate.has_cod_fee}}
235
233
  <div class="grid grid-cols-2 gap-2">
236
234
  <div class="input-group">
237
- <InputLabel @labelText="Cash on Delivery Fee Calculation Method" @helpText="Method used to calculate the COD fee." @required={{true}} />
235
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.calculation-method-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.calculation-method-help-text"}} @required={{true}} />
238
236
  <Select class="w-full" @options={{this.codCalculationMethods}} @optionLabel="name" @optionValue="key" @value={{this.serviceRate.cod_calculation_method}} @onSelect={{fn (mut
239
- this.serviceRate.cod_calculation_method)}} @placeholder="Select COD fee calculation method" />
237
+ this.serviceRate.cod_calculation_method)}} @placeholder={{t "fleet-ops.operations.service-rates.index.new.calculation-method-placeholder"}} />
240
238
  </div>
241
239
 
242
240
  {{#if this.serviceRate.hasCodFlatFee}}
243
241
  <div class="input-group">
244
- <InputLabel @labelText="Cash on Delivery Flat Fee" @helpText="Defines a flat fee to be added during peak hours." @required={{true}} />
242
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.delivery-flat-fee"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.delivery-flat-fee-help-text"}} @required={{true}} />
245
243
  <MoneyInput class="w-full" @currency={{this.serviceRate.currency}} @value={{this.serviceRate.cod_flat_fee}} />
246
244
  </div>
247
245
  {{else if this.serviceRate.hasCodPercentageFee}}
248
246
  <div class="input-group">
249
- <InputLabel @labelText="Cash on Delivery Fee Percentage" @helpText="Defines a percentage based fee from the service rate subtotal to be added as the COD fee." @required={{true}} />
250
- <Input @type="number" min="0" max="100" @value={{this.serviceRate.cod_percent}} placeholder="Percentage" class="form-input w-full" />
247
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.fee-percentage"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.fee-percentage-help-text"}} @required={{true}} />
248
+ <Input @type="number" min="0" max="100" @value={{this.serviceRate.cod_percent}} placeholder={{t "fleet-ops.operations.service-rates.index.new.percentage-placeholder"}} class="form-input w-full" />
251
249
  </div>
252
250
  {{/if}}
253
251
  </div>
254
252
  {{/if}}
255
253
  </ContentPanel>
256
254
 
257
- <ContentPanel @title="Peak Hours" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
258
- <Toggle @wrapperClass="justify-start-i mb-5" @label="Enable additional fee for order made during service defined `peak hours`?" @isToggled={{this.serviceRate.has_peak_hours_fee}} @onToggle={{fn (mut this.serviceRate.has_peak_hours_fee)}} />
255
+ <ContentPanel @title={{t "fleet-ops.operations.service-rates.index.new.peak-hours-title"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
256
+ <Toggle @wrapperClass="justify-start-i mb-5" @label={{t "fleet-ops.operations.service-rates.index.new.peak-hours-label"}} @isToggled={{this.serviceRate.has_peak_hours_fee}} @onToggle={{fn (mut this.serviceRate.has_peak_hours_fee)}} />
259
257
 
260
258
  {{#if this.serviceRate.has_peak_hours_fee}}
261
259
  <div class="grid grid-cols-2 gap-2">
262
260
  <div class="input-group">
263
- <InputLabel @labelText="Peak Hours Start" @helpText="Defines the what time the peak hour fee starts." @required={{true}} />
261
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.peak-hours-start-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.peak-hours-start-help-text"}} @required={{true}} />
264
262
 
265
263
  <Input @type="time" @value={{this.serviceRate.peak_hours_start}} class="form-input w-full" />
266
264
  </div>
267
265
 
268
266
  <div class="input-group">
269
- <InputLabel @labelText="Peak Hours End" @helpText="Defines the what time the peak hour fee ends." @required={{true}} />
267
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.peak-hours-end-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.peak-hours-end-help-text"}} @required={{true}} />
270
268
 
271
269
  <Input @type="time" @value={{this.serviceRate.peak_hours_end}} class="form-input w-full" />
272
270
  </div>
273
271
  </div>
274
272
 
275
273
  <div class="input-group">
276
- <InputLabel @labelText="Peak Hours Fee Calculation Method" @helpText="Method used to calculate the peak hours fee." @required={{true}} />
277
- <Select class="w-full" @options={{this.peakHourCalculationMethods}} @optionLabel="name" @optionValue="key" @value={{this.serviceRate.peak_hours_calculation_method}} @onSelect={{fn (mut this.serviceRate.peak_hours_calculation_method)}} @placeholder="Select peak hours fee calculation method" />
274
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.peak-hours-fee-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.peak-hours-fee-help-text"}} @required={{true}} />
275
+ <Select class="w-full" @options={{this.peakHourCalculationMethods}} @optionLabel="name" @optionValue="key" @value={{this.serviceRate.peak_hours_calculation_method}} @onSelect={{fn (mut this.serviceRate.peak_hours_calculation_method)}} @placeholder={{t "fleet-ops.operations.service-rates.index.new.peak-hours-fee-placeholder"}} />
278
276
  </div>
279
277
 
280
278
  {{#if this.serviceRate.hasPeakHoursFlatFee}}
281
279
  <div class="input-group">
282
- <InputLabel @labelText="Peak Hours Flat Fee" @helpText="Defines a flat fee to be added during peak hours." @required={{true}} />
280
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.flat-fee-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.flat-fee-help-text"}} @required={{true}} />
283
281
  <MoneyInput class="w-full" @currency={{this.serviceRate.currency}} @value={{this.serviceRate.peak_hours_flat_fee}} />
284
282
  </div>
285
283
  {{else if this.serviceRate.hasPeakHoursPercentageFee}}
286
284
  <div class="input-group">
287
- <InputLabel @labelText="Peak Hours Fee Percentage" @helpText="Defines a percentage based fee from the service rate subtotal to be added during peak hours." @required={{true}} />
288
- <Input @type="number" min="0" max="100" @value={{this.serviceRate.peak_hours_percent}} placeholder="Percentage" class="form-input w-full" />
285
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.peak-hours-percentage-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.peak-hours-percentage-help-text"}} @required={{true}} />
286
+ <Input @type="number" min="0" max="100" @value={{this.serviceRate.peak_hours_percent}} placeholder={{t "fleet-ops.operations.service-rates.index.new.percentage-placeholder"}} class="form-input w-full" />
289
287
  </div>
290
288
  {{/if}}
291
289
  {{/if}}
292
290
  </ContentPanel>
293
291
 
294
- <ContentPanel @title="Restrict Service" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
292
+ <ContentPanel @title={{t "fleet-ops.operations.service-rates.index.new.restrict-service-title"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
295
293
  <div class="input-group">
296
- <InputLabel @labelText="Service Area" @helpText="Restrict this service to order request originating from a service area." />
297
- <Select class="w-full" @options={{this.serviceAreas}} @optionLabel="name" @optionValue="id" @value={{this.serviceRate.service_area_uuid}} @onSelect={{this.selectServiceArea}} @placeholder="Restrict to service area" @disabled={{not this.serviceAreas.length}} />
294
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.service-area-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.service-area-help-text"}} />
295
+ <Select class="w-full" @options={{this.serviceAreas}} @optionLabel="name" @optionValue="id" @value={{this.serviceRate.service_area_uuid}} @onSelect={{this.selectServiceArea}} @placeholder={{t "fleet-ops.operations.service-rates.index.new.service-area-placeholder"}} @disabled={{not this.serviceAreas.length}} />
298
296
  </div>
299
297
 
300
298
  {{#if this.serviceRate.service_area_uuid}}
301
299
  <div class="input-group">
302
- <InputLabel @labelText="Zone" @helpText="Restrict this service to order request originating from a specific zone." />
303
- <Select class="w-full" @options={{this.zones}} @optionLabel="name" @optionValue="id" @value={{this.serviceRate.zone_uuid}} @onSelect={{fn (mut this.serviceRate.zone_uuid)}} @placeholder="Restrict to zone" @disabled={{not this.zones.length}} />
300
+ <InputLabel @labelText={{t "fleet-ops.operations.service-rates.index.new.zone-label"}} @helpText={{t "fleet-ops.operations.service-rates.index.new.zone-help-text"}} />
301
+ <Select class="w-full" @options={{this.zones}} @optionLabel="name" @optionValue="id" @value={{this.serviceRate.zone_uuid}} @onSelect={{fn (mut this.serviceRate.zone_uuid)}} @placeholder={{t "fleet-ops.operations.service-rates.index.new.zone-placeholder"}} @disabled={{not this.zones.length}} />
304
302
  </div>
305
303
  {{/if}}
306
304
  </ContentPanel>
@@ -1,5 +1,5 @@
1
- <Layout::Section::Header @title="Service Rates" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
2
- <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
1
+ <Layout::Section::Header @title={{t "fleet-ops.operations.service-rates.index.title"}} @searchQuery={{this.query}} @onSearch={{perform this.search}}>
2
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText={{t "fleet-ops.operations.service-rates.index.reload-data"}} class="mr-2" />
3
3
  <FiltersPicker
4
4
  @columns={{this.columns}}
5
5
  @onApply={{fn this.filters.apply this}}
@@ -10,18 +10,18 @@
10
10
  />
11
11
  <VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
12
12
  {{#if (safe-has this.table "selectedRows")}}
13
- <DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
13
+ <DropdownButton @icon="layer-group" @text={{t "fleet-ops.common.bulk-action"}} @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
14
14
  <div class="next-dd-menu mt-2 mx-0">
15
15
  <div class="px-1">
16
16
  <a href="#" class="text-red-500 next-dd-item" {{on "click" (dropdown-fn dd this.bulkDeleteServiceRates this.selectedServiceRates)}}>
17
- Delete Service Rates
17
+ {{t "fleet-ops.operations.service-rates.index.delete-service-rates"}}
18
18
  </a>
19
19
  </div>
20
20
  </div>
21
21
  </DropdownButton>
22
22
  {{/if}}
23
- <Button @icon="plus" @iconPrefix="fas" @type="primary" @text="New" class="mr-2" @onClick={{transition-to "operations.service-rates.index.new"}} />
24
- <Button @icon="long-arrow-up" @iconClass="rotate-icon-45" @text="Export" />
23
+ <Button @icon="plus" @iconPrefix="fas" @type="primary" @text={{t "fleet-ops.common.new"}} class="mr-2" @onClick={{transition-to "operations.service-rates.index.new"}} />
24
+ <Button @icon="long-arrow-up" @iconClass="rotate-icon-45" @text={{t "fleet-ops.common.export"}} />
25
25
  </Layout::Section::Header>
26
26
 
27
27
  <Layout::Section::Body>
package/composer.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fleetbase/fleetops-api",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Fleet & Transport Management Extension for Fleetbase",
5
5
  "keywords": [
6
6
  "fleetbase-extension",
@@ -22,7 +22,7 @@
22
22
  ],
23
23
  "require": {
24
24
  "php": "^7.4|^8.0",
25
- "fleetbase/core-api": "^1.3.10",
25
+ "fleetbase/core-api": "^1.3.12",
26
26
  "barryvdh/laravel-dompdf": "^2.0",
27
27
  "brick/geo": "0.7.2",
28
28
  "cknow/laravel-money": "^7.1",
package/extension.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "Fleet-Ops",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Fleet & Transport Management Extension for Fleetbase",
5
5
  "repository": "https://github.com/fleetbase/fleetops",
6
6
  "license": "MIT",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fleetbase/fleetops-engine",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Fleet & Transport Management Extension for Fleetbase",
5
5
  "fleetbase": {
6
6
  "route": "fleet-ops",
@@ -33,6 +33,7 @@
33
33
  "lint:hbs:fix": "ember-template-lint . --fix",
34
34
  "lint:js": "eslint . --cache",
35
35
  "lint:js:fix": "eslint . --fix",
36
+ "lint:intl": "fleetbase-intl-lint",
36
37
  "start": "ember serve",
37
38
  "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"",
38
39
  "test:ember": "ember test",
@@ -68,6 +69,7 @@
68
69
  "leaflet-rotatedmarker": "^0.2.0"
69
70
  },
70
71
  "devDependencies": {
72
+ "@fleetbase/intl-lint": "^0.0.1",
71
73
  "@babel/eslint-parser": "^7.22.15",
72
74
  "@babel/plugin-proposal-decorators": "^7.23.2",
73
75
  "@ember/optional-features": "^2.0.0",
@@ -1,6 +1,6 @@
1
1
  <?php
2
2
 
3
- use Fleetbase\Models\Order;
3
+ use Fleetbase\Fleetops\Models\Order;
4
4
  use Fleetbase\Support\Utils; ?>
5
5
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6
6
  <html xmlns="http://www.w3.org/1999/xhtml">
@@ -43,32 +43,33 @@ use Fleetbase\Support\Utils; ?>
43
43
 
44
44
  <body bgcolor="#f7f7f7">
45
45
  <div style="width: 420px; border: 2px #414141 solid; margin: auto;">
46
- <div class="group" style="border-bottom: 1px #414141 solid;">
47
- <div style="float:left; display:inline-block; width: 100px; height: 90px; border-right: 1px #414141 solid; text-align: center; padding: 10px;">
48
- <img src="data:image/png;base64,<?= Utils::notEmpty($trackingNumber) ? $trackingNumber->qr_code : $order->trackingNumber->qr_code ?>" style="width: 100%; height: 90px;">
46
+ <div class="group" style="border-bottom: 1px #414141 solid; overflow: hidden;">
47
+ <div style="float: left; width: 130px; height: 120px; border-right: 1px #414141 solid; text-align: center; padding: 10px; box-sizing: border-box;">
48
+ <img src="data:image/png;base64,<?= Utils::notEmpty($trackingNumber) ? $trackingNumber->qr_code : $order->trackingNumber->qr_code ?>" style="width: 100%; height: 100%; object-fit: cover;">
49
49
  </div>
50
- <div style="display: inline-block; height: 90px;">
51
- <div style="padding: 10px; font-size: 20px;">
52
- <span style="display: block; margin-top: 15px;"><?= $company->name ?></span>
53
- <span style="display: block;">
54
- <?php
55
- if ($order && $order instanceof Order) {
56
- $order->load('purchaseRate.serviceQuote.serviceRate');
57
- if (isset($order->purchaseRate->serviceQuote->serviceRate)) {
58
- echo strtoupper($order->purchaseRate->serviceQuote->serviceRate->name);
59
- }
50
+ <div style="margin-top: 10px; padding-left: 10px;">
51
+ <div style="font-size: 18px; font-weight: bold;"><?= strtoupper($company->name) ?></div>
52
+ <div style="font-size: 16px; font-weight: 300; color: #000;">
53
+ <?php
54
+ if ($order && $order instanceof Order) {
55
+ $order->load('purchaseRate.serviceQuote.serviceRate');
56
+ $serviceName = data_get($order, 'purchaseRate.serviceQuote.serviceRate.service_name');
57
+ if ($serviceName) {
58
+ echo strtoupper($serviceName);
60
59
  }
61
- ?>
62
- </span>
60
+ }
61
+ ?>
63
62
  </div>
64
63
  </div>
65
64
  </div>
65
+
66
66
  <?php
67
67
  // load payload locations
68
68
  if ($order) {
69
- $order->load('payload.pickup', 'payload.dropoff');
69
+ $order->load('payload.pickup', 'payload.dropoff', 'payload.entities');
70
70
  $pickup = $pickup ?? $order->payload->pickup;
71
71
  $dropoff = $dropoff ?? $order->payload->dropoff;
72
+ $entities = $entities ?? ($order->payload['entities'] ?? []);
72
73
  }
73
74
  ?>
74
75
  <?php if ($pickup) { ?>
@@ -114,7 +115,7 @@ use Fleetbase\Support\Utils; ?>
114
115
  <?php } ?>
115
116
  <?php if ($dropoff) { ?>
116
117
  <div class="group">
117
- <div style="padding: 15px;" class="group">
118
+ <div style="padding: 15px;" class="group" style="border-bottom: 1px #414141 solid; padding: 15px;">
118
119
  <div style="float: left; display: inline-block; margin-right: 15px; font-weight: bold;">
119
120
  DROPOFF:
120
121
  </div>
@@ -153,6 +154,27 @@ use Fleetbase\Support\Utils; ?>
153
154
  </div>
154
155
  </div>
155
156
  <?php } ?>
157
+ <?php if ($entities) { ?>
158
+ <div class="group">
159
+ <div style="padding: 15px;" class="group" style="border-bottom: 1px #414141 solid; padding: 15px;">
160
+ <div style="float: left; display: inline-block; margin-right: 15px">
161
+ <?php foreach ($entities as $entity) { ?>
162
+ <div class="line">
163
+ <strong>
164
+ <?php
165
+ if (isset($entity['name']) && !empty($entity['name'])) {
166
+ echo strtoupper($entity['name']) . ' - ' . ($entity['internal_id'] ?? '');
167
+ } else {
168
+ echo 'ITEM -' . ($entity['internal_id'] ?? '');
169
+ }
170
+ ?>
171
+ </strong>
172
+ </div>
173
+ <?php } ?>
174
+ </div>
175
+ </div>
176
+ </div>
177
+ <?php } ?>
156
178
  <div class="group">
157
179
  <div style="text-align: center; padding: 15px 0px; border-top: 1px #414141 solid;">
158
180
  <img src="data:image/png;base64,<?= isset($trackingNumber) ? $trackingNumber->barcode : $order->trackingNumber->barcode ?>" style="height: 90px; margin-top: 10px;">