@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
@@ -1,8 +1,8 @@
1
- <ContentPanel @title="Navigator App" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
2
- <InputGroup @name="Instance Linking URL">
1
+ <ContentPanel @title={{t "fleet-ops.component.admin.navigator-app.title"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
2
+ <InputGroup @name={{t "fleet-ops.component.admin.navigator-app.name"}}>
3
3
  <ClickToCopy class="px-4 py-2 border rounded-md bg-gray-100 shadow-sm dark:bg-gray-700 border-gray-200 dark:border-gray-800" @value={{this.url}}>{{this.url}}</ClickToCopy>
4
4
  <Attach::Tooltip @class="clean" @animation="scale" @placement="top">
5
- <InputInfo>Use this URL to link the official Navigator app to this {{t "app.name"}} instance. Opening this URL on a mobile device will open the Navigator app and update it's configuration and branding.</InputInfo>
5
+ <InputInfo>{{t "fleet-ops.component.admin.navigator-app.message" htmlSafe=true companyName=@app.name}}</InputInfo>
6
6
  </Attach::Tooltip>
7
7
  </InputGroup>
8
8
  </ContentPanel>
@@ -1,12 +1,12 @@
1
- <ContentPanel @title="Visibility Controls" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
2
- <p class="mb-4 dark:text-white text-gray-800">Visibility controls allow you to disable sections of Fleet-Ops. Toggle the checkbox to enable or disable sections to hide in Fleet-ops.</p>
1
+ <ContentPanel @title={{t "fleet-ops.component.admin.visibility-controls.title"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
2
+ <p class="mb-4 dark:text-white text-gray-800">{{t "fleet-ops.component.admin.visibility-controls.message"}}</p>
3
3
  {{#each this.visibilitySettings as |visibilityControl|}}
4
4
  <InputGroup @wrapperClass="mb-1i">
5
- <Checkbox @value={{visibilityControl.visible}} @label={{concat visibilityControl.name " Visible"}} @onToggle={{fn (mut visibilityControl.visible)}} @helpText="Enable or disable visibility for this section in Fleet-Ops." />
5
+ <Checkbox @value={{visibilityControl.visible}} @label={{concat visibilityControl.name " Visible"}} @onToggle={{fn (mut visibilityControl.visible)}} @helpText={{t "fleet-ops.component.admin.visibility-controls.checkbox-text"}} />
6
6
  </InputGroup>
7
7
  {{/each}}
8
8
  </ContentPanel>
9
9
 
10
10
  <div class="mt-3 flex items-center justify-end">
11
- <Button @type="primary" @size="lg" @icon="save" @text="Save Changes" @onClick={{this.saveVisibilitySettings}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
11
+ <Button @type="primary" @size="lg" @icon="save" @text={{t "fleet-ops.common.save-changes"}} @onClick={{this.saveVisibilitySettings}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
12
12
  </div>
@@ -8,6 +8,6 @@
8
8
  </div>
9
9
  {{else}}
10
10
  <div class="flex items-center">
11
- <span>No driver assigned</span>
11
+ <span>{{t "fleet-ops.component.cell.driver-name.not-assigned"}}</span>
12
12
  </div>
13
13
  {{/if}}
@@ -13,14 +13,14 @@
13
13
  <div class="flex flex-row items-center justify-between w-full mb-4">
14
14
  <div class="flex flex-1 space-x-2">
15
15
  {{#if this.contact.id}}
16
- <Button @type="default" @icon="id-card" @helpText="View contact details" @onClick={{this.onViewDetails}} />
16
+ <Button @type="default" @icon="id-card" @helpText={{t "fleet-ops.component.contact-form-panel.view-contact-button"}} @onClick={{this.onViewDetails}} />
17
17
  {{/if}}
18
18
  </div>
19
19
  <div class="flex flex-1 justify-end">
20
20
  <div class="mr-2">
21
- <Button @icon={{if this.contact.id "save" "check"}} @type="primary" @text={{if this.contact.id "Save Contact" "Create Contact"}} @onClick={{this.save}} />
21
+ <Button @icon={{if this.contact.id "save" "check"}} @type="primary" @text={{if this.contact.id (t "fleet-ops.component.contact-form-panel.save-contact")(t "fleet-ops.component.contact-form-panel.create-contact") }} @onClick={{this.save}} />
22
22
  </div>
23
- <Button @type="default" @icon="times" @helpText={{if this.contact.id "Cancel edit contact" "Cancel new contact"}} @onClick={{this.onPressCancel}} />
23
+ <Button @type="default" @icon="times" @helpText={{if this.contact.id (t "fleet-ops.component.contact-form-panel.cancel-edit-button")(t "fleet-ops.component.contact-form-panel.cancel-new-button") }} @onClick={{this.onPressCancel}} />
24
24
  </div>
25
25
  </div>
26
26
  <div class="flex flex-row justify-between w-full">
@@ -34,7 +34,7 @@
34
34
  </Attach::Tooltip>
35
35
  <div class="upload-avatar-button-wrapper rounded-lg">
36
36
  <UploadButton
37
- @name="photos"
37
+ @name={{t "fleet-ops.common.photos"}}
38
38
  @accept="image/*"
39
39
  @onFileAdded={{this.onUploadNewPhoto}}
40
40
  @icon="upload"
@@ -53,7 +53,7 @@
53
53
  {{#if this.contact.name}}
54
54
  {{this.contact.name}}
55
55
  {{else}}
56
- <span>New Contact</span>
56
+ <span>{{t "fleet-ops.component.contact-form-panel.new-contact"}}</span>
57
57
  {{/if}}
58
58
  {{/if}}
59
59
  </h1>
@@ -73,22 +73,22 @@
73
73
 
74
74
  <Overlay::Body @wrapperClass="new-service-rate-overlay-body px-4 pt-4" @increaseInnerBodyHeightBy={{700}}>
75
75
  <div class="grid grid-cols-1 text-xs dark:text-gray-100">
76
- <InputGroup @name="Name">
77
- <Input @value={{this.contact.name}} @type="text" class="w-full form-input" placeholder="Name" />
76
+ <InputGroup @name={{t "fleet-ops.common.name"}}>
77
+ <Input @value={{this.contact.name}} @type="text" class="w-full form-input" placeholder={{t "fleet-ops.common.name"}} />
78
78
  </InputGroup>
79
- <InputGroup @name="Title">
80
- <Input @value={{this.contact.title}} @type="text" class="w-full form-input" placeholder="Title" />
79
+ <InputGroup @name={{t "fleet-ops.common.title"}}>
80
+ <Input @value={{this.contact.title}} @type="text" class="w-full form-input" placeholder={{t "fleet-ops.common.title"}} />
81
81
  </InputGroup>
82
- <InputGroup @name="Internal ID">
83
- <Input @value={{this.contact.internal_id}} @type="text" class="w-full form-input" placeholder="Internal ID" />
82
+ <InputGroup @name={{t "fleet-ops.common.internal-id"}}>
83
+ <Input @value={{this.contact.internal_id}} @type="text" class="w-full form-input" placeholder={{t "fleet-ops.common.internal-id"}} />
84
84
  </InputGroup>
85
- <InputGroup @name="Email">
86
- <Input @value={{this.contact.email}} @type="text" class="w-full form-input" placeholder="Email" />
85
+ <InputGroup @name={{t "fleet-ops.common.email"}}>
86
+ <Input @value={{this.contact.email}} @type="text" class="w-full form-input" placeholder={{t "fleet-ops.common.email"}} />
87
87
  </InputGroup>
88
- <InputGroup @name="Phone">
88
+ <InputGroup @name={{t "fleet-ops.common.phone"}}>
89
89
  <PhoneInput @value={{this.contact.phone}} @onInput={{fn (mut this.contact.phone)}} class="form-input w-full" />
90
90
  </InputGroup>
91
- <InputGroup @name="Type">
91
+ <InputGroup @name={{t "fleet-ops.common.type"}}>
92
92
  <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
93
93
  <PowerSelect
94
94
  @options={{this.contactTypeOptions}}
@@ -10,6 +10,10 @@ export default class ContactFormPanelComponent extends Component {
10
10
  * @service store
11
11
  */
12
12
  @service store;
13
+ /**
14
+ * @service intl
15
+ */
16
+ @service intl;
13
17
 
14
18
  /**
15
19
  * @service fetch
@@ -105,7 +109,7 @@ export default class ContactFormPanelComponent extends Component {
105
109
  return contact
106
110
  .save()
107
111
  .then((contact) => {
108
- this.notifications.success(`contact (${contact.name}) saved successfully.`);
112
+ this.notifications.success(this.intl.t('fleet-ops.component.contact-form-panel.success-message', { contactName: contact.name }));
109
113
  contextComponentCallback(this, 'onAfterSave', contact);
110
114
  })
111
115
  .catch((error) => {
@@ -1,34 +1,34 @@
1
1
  <div class="p-4">
2
- <ContentPanel @title="Details" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-900">
2
+ <ContentPanel @title={{t "fleet-ops.common.details"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-900">
3
3
  <div class="grid grid-cols-1 gap-2 lg:grid-cols-2 lg:gap-4 text-xs dark:text-gray-100">
4
4
 
5
5
  <div class="field-info-container">
6
- <div class="field-name">Website URL</div>
6
+ <div class="field-name">{{t "fleet-ops.component.contact-panel.details.web-url"}}</div>
7
7
  <div class="field-value">{{n-a @contact.name}}</div>
8
8
  </div>
9
9
 
10
10
  <div class="field-info-container">
11
- <div class="field-name">Title</div>
11
+ <div class="field-name">{{t "fleet-ops.common.title"}}</div>
12
12
  <div class="field-value">{{n-a @contact.title}}</div>
13
13
  </div>
14
14
 
15
15
  <div class="field-info-container">
16
- <div class="field-name">Internal ID</div>
16
+ <div class="field-name">{{t "fleet-ops.common.internal-id"}}</div>
17
17
  <div class="field-value">{{n-a @contact.internal_id}}</div>
18
18
  </div>
19
19
 
20
20
  <div class="field-info-container">
21
- <div class="field-name">Email</div>
21
+ <div class="field-name">{{t "fleet-ops.common.email"}}</div>
22
22
  <div class="field-value">{{n-a @contact.email}}</div>
23
23
  </div>
24
24
 
25
25
  <div class="field-info-container">
26
- <div class="field-name">Phone</div>
26
+ <div class="field-name">{{t "fleet-ops.common.email"}}</div>
27
27
  <div class="field-value">{{n-a @contact.phone}}</div>
28
28
  </div>
29
29
 
30
30
  <div class="field-info-container">
31
- <div class="field-name">Type</div>
31
+ <div class="field-name">{{t "fleet-ops.common.type"}}</div>
32
32
  <div class="field-value"><Badge @status={{@contact.type}} /></div>
33
33
  </div>
34
34
  </div>
@@ -2,10 +2,10 @@
2
2
  <Overlay::Header @hideLeftSection={{true}} @actionsWrapperClass="flex-1 flex-col py-3" class="h-auto-i min-h-[127px]">
3
3
  <div class="flex flex-row items-center justify-between w-full mb-4">
4
4
  <div class="flex flex-1 space-x-2">
5
- <Button @type="default" @icon="pen" @helpText="Edit contact" @onClick={{this.onEdit}} />
5
+ <Button @type="default" @icon="pen" @helpText={{t "fleet-ops.component.contact-panel.edit-button"}} @onClick={{this.onEdit}} />
6
6
  </div>
7
7
  <div class="flex flex-1 justify-end">
8
- <Button @type="default" @icon="times" @helpText={{if this.contact.id "Cancel edit contact" "Cancel new contact"}} @onClick={{this.onPressCancel}} />
8
+ <Button @type="default" @icon="times" @helpText={{if this.contact.id (t "fleet-ops.component.contact-panel.cancel-edit-button")(t "fleet-ops.component.contact-panel.cancel-new-button") }} @onClick={{this.onPressCancel}} />
9
9
  </div>
10
10
  </div>
11
11
  <div class="flex flex-row justify-between w-full">
@@ -4,9 +4,9 @@
4
4
  <div class={{@noAddressClass}}>
5
5
  <span class="text-red-500">
6
6
  {{#if @type}}
7
- No {{@type}} address!
7
+ {{t "fleet-ops.component.display-panel.no-address" htmlSafe=true type=@type}}
8
8
  {{else}}
9
- No address!
9
+ {{t "fleet-ops.component.display-panel.no-address-message"}}
10
10
  {{/if}}
11
11
  </span>
12
12
  </div>
@@ -17,7 +17,7 @@
17
17
  {{#each @driver.fleets as |fleet|}}
18
18
  <span class="driver-fleet-name truncate horizontal-li-item text-xs">{{fleet.name}}</span>
19
19
  {{else}}
20
- <span class="text-xs text-muted">No fleets</span>
20
+ <span class="text-xs text-muted">{{t "fleet-ops.component.driver-card.no-fleets"}}</span>
21
21
  {{/each}}
22
22
  </div>
23
23
  </div>
@@ -3,14 +3,14 @@
3
3
  <div class="flex flex-row items-center justify-between w-full mb-4">
4
4
  <div class="flex flex-1 space-x-2">
5
5
  {{#if this.driver.id}}
6
- <Button @type="default" @icon="id-card" @helpText="View driver details" @onClick={{this.onViewDetails}} />
6
+ <Button @type="default" @icon="id-card" @helpText={{t "fleet-ops.component.driver-form-panel.driver-detail"}} @onClick={{this.onViewDetails}} />
7
7
  {{/if}}
8
8
  </div>
9
9
  <div class="flex flex-1 justify-end">
10
10
  <div class="mr-2">
11
- <Button @icon={{if this.driver.id "save" "check"}} @type="primary" @text={{if this.driver.id "Save Driver" "Create Driver"}} @onClick={{this.save}} />
11
+ <Button @icon={{if this.driver.id "save" "check"}} @type="primary" @text={{if this.driver.id (t "fleet-ops.component.driver-form-panel.save-driver")(t "fleet-ops.component.driver-form-panel.create-driver") }} @onClick={{this.save}} />
12
12
  </div>
13
- <Button @type="default" @icon="times" @helpText={{if this.driver.id "Cancel edit driver" "Cancel new driver"}} @onClick={{this.onPressCancel}} />
13
+ <Button @type="default" @icon="times" @helpText={{if this.driver.id (t "fleet-ops.component.driver-form-panel.cancel-edit-driver")(t "fleet-ops.component.driver-form-panel.cancel-new-driver") }} @onClick={{this.onPressCancel}} />
14
14
  </div>
15
15
  </div>
16
16
  <div class="flex flex-row justify-between w-full">
@@ -20,10 +20,10 @@
20
20
  <div class="upload-avatar-overlay w-12 h-12 flex items-center justify-start rounded-lg">
21
21
  <img src={{this.driver.photo_url}} alt={{this.driver.name}} height="48" width="48" class="h-12 w-12 rounded-lg shadow-sm" />
22
22
  <Attach::Tooltip @class="clean" @animation="scale" @placement="top">
23
- <InputInfo @text="Upload new photo" />
23
+ <InputInfo @text={{t "fleet-ops.component.driver-form-panel.upload-new-photo"}} />
24
24
  </Attach::Tooltip>
25
25
  <div class="upload-avatar-button-wrapper rounded-lg">
26
- <UploadButton @name="photos" @accept="image/*" @onFileAdded={{this.onUploadNewPhoto}} @icon="upload" @hideButtonText={{true}} @labelClass="upload-avatar-label-overlay" class="w-12 btn-reset" />
26
+ <UploadButton @name={{t "fleet-ops.common.photos"}} @accept="image/*" @onFileAdded={{this.onUploadNewPhoto}} @icon="upload" @hideButtonText={{true}} @labelClass="upload-avatar-label-overlay" class="w-12 btn-reset" />
27
27
  </div>
28
28
  </div>
29
29
  </div>
@@ -35,7 +35,7 @@
35
35
  {{#if this.driver.name}}
36
36
  {{this.driver.name}}
37
37
  {{else}}
38
- <span>New Driver</span>
38
+ <span>{{t "fleet-ops.component.driver-form-panel.new-driver"}}</span>
39
39
  {{/if}}
40
40
  {{/if}}
41
41
  </h1>
@@ -46,7 +46,7 @@
46
46
  </div>
47
47
  {{else}}
48
48
  <div class="flex flex-row items-center">
49
- <span class="text-sm dark:text-gray-500 text-gray-700 mr-3">No vehicle assigned</span>
49
+ <span class="text-sm dark:text-gray-500 text-gray-700 mr-3">{{t "fleet-ops.component.driver-panel.no-vehicle-message"}}</span>
50
50
  </div>
51
51
  {{/if}}
52
52
  </div>
@@ -62,56 +62,63 @@
62
62
  <Overlay::Body @wrapperClass="new-service-rate-overlay-body px-4 space-y-4 pt-4" @increaseInnerBodyHeightBy={{1000}}>
63
63
  <div class="flex-1">
64
64
  <div class="grid grid-cols-1 lg:grid-cols-2 gap-2 text-xs dark:text-gray-100">
65
- <InputGroup @name="Name" @wrapperClass="col-span-2">
66
- <Input @value={{this.driver.name}} @type="text" class="w-full form-input" placeholder="Name" />
65
+ <InputGroup @name={{t "fleet-ops.common.name"}} @wrapperClass="col-span-2">
66
+ <Input @value={{this.driver.name}} @type="text" class="w-full form-input" placeholder={{t "fleet-ops.common.name"}} />
67
67
  </InputGroup>
68
-
69
- <InputGroup @name="Internal ID">
70
- <Input @value={{this.driver.internal_id}} @type="text" class="w-full form-input" placeholder="Internal ID" />
68
+
69
+ <InputGroup @name={{t "fleet-ops.common.internal-id"}}>
70
+ <Input @value={{this.driver.internal_id}} @type="text" class="w-full form-input" placeholder={{t "fleet-ops.common.internal-id"}} />
71
71
  </InputGroup>
72
72
 
73
- <InputGroup @name="Drivers License">
74
- <Input @value={{this.driver.drivers_license_number}} @type="text" class="w-full form-input" placeholder="Drivers License" />
73
+ <InputGroup @name={{t "fleet-ops.common.driver-license"}}>
74
+ <Input @value={{this.driver.drivers_license_number}} @type="text" class="w-full form-input" placeholder={{t "fleet-ops.common.driver-license"}} />
75
75
  </InputGroup>
76
76
 
77
- <InputGroup @name="Email">
78
- <Input @value={{this.driver.email}} @type="text" class="w-full form-input" placeholder="Email" />
77
+ <InputGroup @name={{t "fleet-ops.common.email"}}>
78
+ <Input @value={{this.driver.email}} @type="text" class="w-full form-input" placeholder={{t "fleet-ops.common.email"}} />
79
79
  </InputGroup>
80
80
 
81
- <InputGroup @name="Phone">
81
+ <InputGroup @name={{t "fleet-ops.common.phone"}}>
82
82
  <PhoneInput @value={{this.driver.phone}} @onInput={{fn (mut this.driver.phone)}} class="form-input w-full" />
83
83
  </InputGroup>
84
84
 
85
- <InputGroup @name="Vendor">
85
+ <InputGroup @name={{t "fleet-ops.component.driver-form-panel.vendor"}}>
86
86
  <ModelSelect @modelName="vendor" @selectedModel={{this.driver.vendor}} @placeholder="Select Vendor" @triggerClass="form-select form-input" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{fn (mut this.driver.vendor)}} as |model|>
87
87
  {{model.name}}
88
88
  </ModelSelect>
89
89
  </InputGroup>
90
90
 
91
- <InputGroup @name="Vehicle">
92
- <ModelSelect @modelName="vehicle" @selectedModel={{this.driver.vehicle}} @placeholder="Select Vehicle" @triggerClass="form-select form-input" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{fn (mut this.driver.vehicle)}} as |model|>
91
+ <InputGroup @name={{t "fleet-ops.common.vehicle"}}>
92
+ <ModelSelect @modelName="vehicle" @selectedModel={{this.driver.vehicle}} @placeholder={{t "fleet-ops.component.driver-form-panel.select-vehicle"}} @triggerClass="form-select form-input" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{fn (mut this.driver.vehicle)}} as |model|>
93
93
  {{model.display_name}}
94
94
  </ModelSelect>
95
95
  </InputGroup>
96
96
 
97
- <InputGroup @name="City">
98
- <Input @value={{this.driver.city}} @type="text" class="w-full form-input" placeholder="City" />
97
+ <InputGroup @name={{t "fleet-ops.common.city"}}>
98
+ <Input @value={{this.driver.city}} @type="text" class="w-full form-input" placeholder={{t "fleet-ops.common.city"}} />
99
99
  </InputGroup>
100
100
 
101
- <InputGroup @name="Country">
102
- <CountrySelect class="w-full form-input form-select form-datalist" @value={{this.driver.country}} @onChange={{fn (mut this.driver.country)}} placeholder="Country" />
101
+ <InputGroup @name={{t "fleet-ops.common.country"}}>
102
+ <CountrySelect class="w-full form-input form-select form-datalist" @value={{this.driver.country}} @onChange={{fn (mut this.driver.country)}} placeholder={{t "fleet-ops.common.country"}} />
103
103
  </InputGroup>
104
104
 
105
- <InputGroup @name="Status">
105
+ <InputGroup @name={{t "fleet-ops.common.status"}}>
106
106
  <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
107
- <PowerSelect @options={{this.driverStatusOptions}} @selected={{this.driver.status}} @onChange={{fn (mut this.driver.status)}} @placeholder="Select driver status" @triggerClass="form-select form-input" as |status|>
107
+ <PowerSelect @options={{this.driverStatusOptions}} @selected={{this.driver.status}} @onChange={{fn (mut this.driver.status)}} @placeholder={{t "fleet-ops.common.status"}} @triggerClass="form-select form-input" as |status|>
108
108
  {{smart-humanize status}}
109
109
  </PowerSelect>
110
110
  </div>
111
111
  </InputGroup>
112
- <InputGroup @name="Coordinates" @wrapperClass="col-span-2">
113
- <CoordinatesInput @value={{this.driver.location}} @onChange={{this.onCoordinatesChanged}} @onGeocode={{this.onAutocomplete}} @onUpdatedFromMap={{this.onCoordinatesChanged}} @onInit={{this.setCoordinatesInput}} @renderInPlace={{false}} />
114
- </InputGroup>
112
+ <InputGroup @name={{t "fleet-ops.common.coordinates"}} @wrapperClass="col-span-2">
113
+ <CoordinatesInput
114
+ @value={{this.driver.location}}
115
+ @onChange={{this.onCoordinatesChanged}}
116
+ @onGeocode={{this.onAutocomplete}}
117
+ @onUpdatedFromMap={{this.onCoordinatesChanged}}
118
+ @onInit={{this.setCoordinatesInput}}
119
+ @renderInPlace={{false}}
120
+ />
121
+ </InputGroup>
115
122
  </div>
116
123
  </div>
117
124
  </Overlay::Body>
@@ -16,6 +16,10 @@ export default class DriverFormPanelComponent extends Component {
16
16
  * @service fetch
17
17
  */
18
18
  @service fetch;
19
+ /**
20
+ * @service intl
21
+ */
22
+ @service intl;
19
23
 
20
24
  /**
21
25
  * @service currentUser
@@ -103,7 +107,7 @@ export default class DriverFormPanelComponent extends Component {
103
107
  return driver
104
108
  .save()
105
109
  .then((driver) => {
106
- this.notifications.success(`Driver (${driver.name}) saved successfully.`);
110
+ this.notifications.success(this.intl.t('fleet-ops.component.driver-form-panel.success-message', { driverName: driver.name }));
107
111
  contextComponentCallback(this, 'onAfterSave', driver);
108
112
  })
109
113
  .catch((error) => {
@@ -1,42 +1,42 @@
1
1
  <div class="p-4">
2
- <ContentPanel @title="Details" @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-900">
2
+ <ContentPanel @title={{t "fleet-ops.common.details"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-900">
3
3
  <div class="grid grid-cols-2 gap-2 text-xs md:mb-6 dark:text-gray-100">
4
4
  <div class="field-info-container ">
5
- <div class="field-name">Name</div>
5
+ <div class="field-name">{{t "fleet-ops.common.name"}}</div>
6
6
  <div class="field-value">{{n-a @driver.name}}</div>
7
7
  </div>
8
8
  <div class="field-info-container">
9
- <div class="field-name">ID</div>
9
+ <div class="field-name">{{t "fleet-ops.common.id"}}</div>
10
10
  <div class="field-value">{{n-a @driver.public_id}}</div>
11
11
  </div>
12
12
  <div class="field-info-container">
13
- <div class="field-name">Internal ID</div>
13
+ <div class="field-name">{{t "fleet-ops.common.internal-id"}}</div>
14
14
  <div class="field-value">{{n-a @driver.internal_id}}</div>
15
15
  </div>
16
16
  <div class="field-info-container">
17
- <div class="field-name">Drivers License</div>
17
+ <div class="field-name">{{t "fleet-ops.common.driver-license"}}</div>
18
18
  <div class="field-value">{{n-a @driver.drivers_license_number}}</div>
19
19
  </div>
20
20
  <div class="field-info-container">
21
- <div class="field-name">Email</div>
21
+ <div class="field-name">{{t "fleet-ops.common.email"}}</div>
22
22
  <div class="field-value">{{n-a @driver.email}}</div>
23
23
  </div>
24
24
  <div class="field-info-container">
25
- <div class="field-name">Phone</div>
25
+ <div class="field-name">{{t "fleet-ops.common.phone"}}</div>
26
26
  <div class="field-value">{{n-a @driver.phone}}</div>
27
27
  </div>
28
28
  <div class="field-info-container">
29
- <div class="field-name">City</div>
29
+ <div class="field-name">{{t "fleet-ops.common.city"}}</div>
30
30
  <div class="field-value">{{n-a @driver.city}}</div>
31
31
  </div>
32
32
  <div class="field-info-container">
33
- <div class="field-name">Country</div>
33
+ <div class="field-name">{{t "fleet-ops.common.country"}}</div>
34
34
  <div class="field-value">
35
35
  <CountryName @country={{@driver.country}} />
36
36
  </div>
37
37
  </div>
38
38
  <div class="field-info-container md:col-span-3">
39
- <div class="field-name">Coordinates</div>
39
+ <div class="field-name">{{t "fleet-ops.common.coordinates"}}</div>
40
40
  <div class="field-value">{{point-coordinates @driver.location}}</div>
41
41
  </div>
42
42
  </div>
@@ -12,11 +12,11 @@
12
12
  <Overlay::Header @hideLeftSection={{true}} @actionsWrapperClass="flex-1 flex-col py-3" class="h-auto-i min-h-[127px]">
13
13
  <div class="flex flex-row items-center justify-between w-full mb-4">
14
14
  <div class="flex flex-1 space-x-2">
15
- {{!-- <Button @type="default" @icon="location-arrow" @helpText="Locate driver" @onClick={{@onPressCancel}} /> --}}
16
- <Button @type="default" @icon="pen" @helpText="Edit driver" @onClick={{this.onEdit}} />
15
+ {{!-- <Button @type="default" @icon="location-arrow" @helpText={{t "fleet-ops.component.driver-panel.locate-button-text"}} @onClick={{@onPressCancel}} /> --}}
16
+ <Button @type="default" @icon="pen" @helpText={{t "fleet-ops.component.driver-panel.edit-button-text"}} @onClick={{this.onEdit}} />
17
17
  </div>
18
18
  <div class="flex flex-1 justify-end">
19
- <Button @type="default" @icon="times" @helpText="Close driver details" @onClick={{this.onPressCancel}} />
19
+ <Button @type="default" @icon="times" @helpText={{t "fleet-ops.component.driver-panel.close-button-text"}} @onClick={{this.onPressCancel}} />
20
20
  </div>
21
21
  </div>
22
22
  <div class="flex flex-row justify-between w-full">
@@ -50,8 +50,8 @@
50
50
  </div>
51
51
  {{else}}
52
52
  <div class="flex flex-row items-center">
53
- <span class="text-sm dark:text-gray-500 text-gray-700 mr-3">No vehicle assigned</span>
54
- {{! <Button @icon="plus" @size="xs" @helpText="Assign a vehicle to driver" /> }}
53
+ <span class="text-sm dark:text-gray-500 text-gray-700 mr-3">{{t "fleet-ops.component.driver-panel.no-vehicle-message"}}</span>
54
+ {{!-- <Button @icon="plus" @size="xs" @helpText={{t "fleet-ops.component.driver-panel.assign-vehicle-button"}} /> --}}
55
55
  </div>
56
56
  {{/if}}
57
57
  </div>
@@ -2,7 +2,7 @@
2
2
  <div class="mb-2 flex items-center justify-between">
3
3
  <div class="flex items-center">
4
4
  <div class="fleet-driver-listing-search">
5
- <Input @type="text" {{on "keyup" (perform this.search)}} placeholder="Search drivers in fleet" class="w-64 form-input form-input-sm" />
5
+ <Input @type="text" {{on "keyup" (perform this.search)}} placeholder={{t "fleet-ops.component.fleet-driver-listing.search-driver"}} class="w-64 form-input form-input-sm" />
6
6
  </div>
7
7
 
8
8
  {{#if this.isLoading}}
@@ -13,7 +13,7 @@
13
13
  </div>
14
14
  <div class="w-56">
15
15
  {{#if @onAddDriver}}
16
- <ModelSelect @modelName="driver" @selectedModel={{@options.selectedDriver}} @placeholder="Add driver to fleet" @triggerClass="form-select form-input form-select-sm form-input-sm" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{this.onAdd}} as |model|>
16
+ <ModelSelect @modelName="driver" @selectedModel={{@options.selectedDriver}} @placeholder={{t "fleet-ops.component.fleet-driver-listing.add-driver"}} @triggerClass="form-select form-input form-select-sm form-input-sm" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{this.onAdd}} as |model|>
17
17
  {{model.name}}
18
18
  </ModelSelect>
19
19
  {{/if}}
@@ -25,7 +25,7 @@
25
25
  {{#if @selectable}}
26
26
  <div></div>
27
27
  {{/if}}
28
- <div class="col-span-4 flex items-center">Driver</div>
28
+ <div class="col-span-4 flex items-center">{{t "fleet-ops.common.driver"}}</div>
29
29
  <div class="col-span-7 flex items-center"></div>
30
30
  </div>
31
31
  </div>
@@ -33,7 +33,7 @@
33
33
  {{#unless this.isLoaded}}
34
34
  <div class="flex text-center items-center justify-center p-4 dark:text-gray-100">
35
35
  <Spinner class="mr-2" @iconClass="text-sky-500" />
36
- <span>Loading fleet drivers...</span>
36
+ <span>{{t "fleet-ops.component.fleet-driver-listing.loading-message"}}</span>
37
37
  </div>
38
38
  {{/unless}}
39
39
  {{#each this.drivers as |driver|}}
@@ -62,7 +62,7 @@
62
62
  {{#if @onRemoveDriver}}
63
63
  <a href="javascript:;" class="text-danger text-opacity-75" {{on "click" (fn this.onRemove driver)}}>
64
64
  <FaIcon @icon="times" @prefix="fas" class="mr-1" />
65
- <span>Remove</span>
65
+ <span>{{t "fleet-ops.common.remove"}}</span>
66
66
  </a>
67
67
  {{/if}}
68
68
  </div>
@@ -10,30 +10,30 @@
10
10
  @width={{or this.width @width "570px"}}
11
11
  >
12
12
  <Overlay::Header
13
- @title={{if this.fleet.public_id this.fleet.name "New Fleet"}}
13
+ @title={{if this.fleet.public_id this.fleet.name (t "fleet-ops.component.fleet-form-panel.title") }}
14
14
  @status={{this.fleet.public_id}}
15
15
  @hideStatusDot={{true}}
16
16
  @createdAt={{this.fleet.createdAt}}
17
17
  @titleWrapperClass="leading-5"
18
18
  >
19
19
  <div class="flex flex-1 justify-end">
20
- <Button @icon={{if this.fleet.id "save" "check"}} @type="primary" @text={{if this.fleet.id "Save Fleet" "Create Fleet"}} @onClick={{this.save}} @wrapperClass="mr-2" />
20
+ <Button @icon={{if this.fleet.id "save" "check"}} @type="primary" @text={{if this.fleet.id (t "fleet-ops.component.fleet-form-panel.save-fleet")(t "fleet-ops.component.fleet-form-panel.create-fleet") }} @onClick={{this.save}} @wrapperClass="mr-2" />
21
21
  {{#if this.fleet.id}}
22
- <Button @type="default" @icon="id-card" @helpText="View fleet details" @onClick={{this.onViewDetails}} @wrapperClass="mr-2" />
22
+ <Button @type="default" @icon="id-card" @helpText={{t "fleet-ops.component.fleet-form-panel.view-details"}} @onClick={{this.onViewDetails}} @wrapperClass="mr-2" />
23
23
  {{/if}}
24
- <Button @type="default" @icon="times" @helpText={{if this.fleet.id "Cancel edit fleet" "Cancel new fleet"}} @onClick={{this.onPressCancel}} />
24
+ <Button @type="default" @icon="times" @helpText={{if this.fleet.id (t "fleet-ops.component.fleet-form-panel.cancel-edit-fleet")(t "fleet-ops.component.fleet-form-panel.cancel-new-fleet") }} @onClick={{this.onPressCancel}} />
25
25
  </div>
26
26
  </Overlay::Header>
27
27
 
28
28
  <Overlay::Body @wrapperClass="new-service-rate-overlay-body px-4 space-y-4 pt-4" @increaseInnerBodyHeightBy={{1000}}>
29
29
  <div class="modal-body-container">
30
30
  <div class="flex flex-col text-xs dark:text-gray-100">
31
- <InputGroup @name="Fleet Name" @value={{this.fleet.name}} />
32
- <InputGroup @name="Parent Fleet" @value={{this.fleet.parent_fleet}}>
31
+ <InputGroup @name={{t "fleet-ops.component.fleet-form-panel.fleet-name"}} @value={{this.fleet.name}} />
32
+ <InputGroup @name={{t "fleet-ops.component.fleet-form-panel.parent-fleet"}} @value={{this.fleet.parent_fleet}}>
33
33
  <ModelSelect
34
34
  @modelName="fleet"
35
35
  @selectedModel={{this.fleet.parent_fleet}}
36
- @placeholder="Select parent fleet to assign fleet to"
36
+ @placeholder={{t "fleet-ops.component.fleet-form-panel.select-parent-fleet"}}
37
37
  @triggerClass="form-select form-input"
38
38
  @infiniteScroll={{false}}
39
39
  @renderInPlace={{true}}
@@ -44,11 +44,11 @@
44
44
  {{model.name}}
45
45
  </ModelSelect>
46
46
  </InputGroup>
47
- <InputGroup @name="Vendor" @value={{this.fleet.vendor}}>
47
+ <InputGroup @name={{t "fleet-ops.common.vendor"}} @value={{this.fleet.vendor}}>
48
48
  <ModelSelect
49
49
  @modelName="vendor"
50
50
  @selectedModel={{this.fleet.vendor}}
51
- @placeholder="Select vendor to assign fleet to"
51
+ @placeholder={{t "fleet-ops.component.fleet-form-panel.select-vendor"}}
52
52
  @triggerClass="form-select form-input"
53
53
  @infiniteScroll={{false}}
54
54
  @renderInPlace={{true}}
@@ -59,11 +59,11 @@
59
59
  {{model.name}}
60
60
  </ModelSelect>
61
61
  </InputGroup>
62
- <InputGroup @name="Assign to Service Area" @value={{this.fleet.service_area}}>
62
+ <InputGroup @name={{t "fleet-ops.component.fleet-form-panel.service-title"}} @value={{this.fleet.service_area}}>
63
63
  <ModelSelect
64
64
  @modelName="service-area"
65
65
  @selectedModel={{this.fleet.service_area}}
66
- @placeholder="Select service area to assign fleet to"
66
+ @placeholder={{t "fleet-ops.component.fleet-form-panel.select-service"}}
67
67
  @triggerClass="form-select form-input"
68
68
  @infiniteScroll={{false}}
69
69
  @renderInPlace={{true}}
@@ -75,12 +75,12 @@
75
75
  </ModelSelect>
76
76
  </InputGroup>
77
77
  {{#if this.fleet.service_area}}
78
- <InputGroup @name="Assign to Zone" @value={{this.fleet.zone}}>
78
+ <InputGroup @name={{t "fleet-ops.component.fleet-form-panel.zone-title"}} @value={{this.fleet.zone}}>
79
79
  <ModelSelect
80
80
  @modelName="zone"
81
81
  @selectedModel={{this.fleet.zone}}
82
82
  @query={{hash service_area_uuid=this.fleet.service_area.id}}
83
- @placeholder="Select zone to assign fleet to"
83
+ @placeholder={{t "fleet-ops.component.fleet-form-panel.select-zone"}}
84
84
  @triggerClass="form-select form-input"
85
85
  @infiniteScroll={{false}}
86
86
  @renderInPlace={{true}}
@@ -92,10 +92,10 @@
92
92
  </ModelSelect>
93
93
  </InputGroup>
94
94
  {{/if}}
95
- <InputGroup @name="Status" @helpText="Select the status of the fleet.">
96
- <Select @options={{this.statusOptions}} @value={{this.fleet.status}} @onSelect={{fn (mut this.fleet.status)}} @placeholder="Select status" class="w-full" />
95
+ <InputGroup @name={{t "fleet-ops.common.status"}} @helpText={{t "fleet-ops.component.fleet-form-panel.select-status-fleet"}}>
96
+ <Select @options={{this.statusOptions}} @value={{this.fleet.status}} @onSelect={{fn (mut this.fleet.status)}} @placeholder={{t "fleet-ops.component.fleet-form-panel.select-status"}} class="w-full" />
97
97
  </InputGroup>
98
- <InputGroup @name="Task/ Mission" @helpText="Give a description of this fleet's primary task or mission if applicable." @value={{this.fleet.task}} />
98
+ <InputGroup @name={{t "fleet-ops.component.fleet-form-panel.task-mission-title"}} @helpText={{t "fleet-ops.component.fleet-form-panel.task-text"}} @value={{this.fleet.task}} />
99
99
  </div>
100
100
  </div>
101
101
  {{yield}}