@fleetbase/fleetops-engine 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/addon/components/admin/navigator-app.hbs +3 -3
- package/addon/components/admin/visibility-controls.hbs +4 -4
- package/addon/components/cell/driver-name.hbs +1 -1
- package/addon/components/contact-form-panel.hbs +15 -15
- package/addon/components/contact-form-panel.js +8 -4
- package/addon/components/contact-panel/details.hbs +7 -7
- package/addon/components/contact-panel.hbs +2 -2
- package/addon/components/display-place.hbs +2 -2
- package/addon/components/driver-card.hbs +1 -1
- package/addon/components/driver-form-panel.hbs +36 -29
- package/addon/components/driver-form-panel.js +6 -2
- package/addon/components/driver-panel/details.hbs +10 -10
- package/addon/components/driver-panel.hbs +5 -5
- package/addon/components/fleet-driver-listing.hbs +5 -5
- package/addon/components/fleet-form-panel.hbs +16 -16
- package/addon/components/fleet-form-panel.js +5 -1
- package/addon/components/fleet-panel/details.hbs +7 -7
- package/addon/components/fleet-panel/driver-listing.hbs +5 -5
- package/addon/components/fleet-panel/driver-listing.js +6 -0
- package/addon/components/fleet-panel/vehicle-listing.hbs +5 -5
- package/addon/components/fleet-panel/vehicle-listing.js +6 -0
- package/addon/components/fleet-vehicle-listing.hbs +5 -5
- package/addon/components/fuel-report-form-panel.hbs +16 -16
- package/addon/components/fuel-report-form-panel.js +5 -1
- package/addon/components/fuel-report-panel/details.hbs +11 -11
- package/addon/components/fuel-report-panel.hbs +3 -3
- package/addon/components/global-search.hbs +1 -1
- package/addon/components/horizontal-route.hbs +1 -1
- package/addon/components/integrated-order-details.hbs +13 -13
- package/addon/components/issue-form-panel.hbs +25 -25
- package/addon/components/issue-form-panel.js +6 -1
- package/addon/components/issue-panel/details.hbs +11 -11
- package/addon/components/issue-panel.hbs +3 -3
- package/addon/components/layout/fleet-ops-sidebar.hbs +2 -2
- package/addon/components/layout/fleet-ops-sidebar.js +28 -12
- package/addon/components/live-map-drawer/driver-listing.hbs +1 -1
- package/addon/components/live-map-drawer/driver-listing.js +16 -10
- package/addon/components/live-map-drawer/place-listing.hbs +1 -1
- package/addon/components/live-map-drawer/place-listing.js +12 -7
- package/addon/components/live-map-drawer/vehicle-listing.hbs +1 -1
- package/addon/components/live-map-drawer/vehicle-listing.js +15 -9
- package/addon/components/live-map.hbs +10 -92
- package/addon/components/live-map.js +29 -24
- package/addon/components/map-container/toolbar/visibility-control-panel.hbs +9 -9
- package/addon/components/map-container/toolbar/zones-panel.hbs +10 -10
- package/addon/components/map-container/toolbar.hbs +6 -6
- package/addon/components/modals/assign-driver.hbs +2 -2
- package/addon/components/modals/clone-config-form.hbs +2 -2
- package/addon/components/modals/contact-details.hbs +6 -6
- package/addon/components/modals/contact-form.hbs +11 -11
- package/addon/components/modals/driver-assign-order.hbs +2 -2
- package/addon/components/modals/driver-assign-vehicle.hbs +2 -2
- package/addon/components/modals/driver-assign-vendor.hbs +2 -2
- package/addon/components/modals/driver-details.hbs +14 -14
- package/addon/components/modals/driver-form.hbs +18 -18
- package/addon/components/modals/edit-meta-form.hbs +2 -2
- package/addon/components/modals/entity-form.hbs +16 -16
- package/addon/components/modals/entity-meta-field-prompt.hbs +1 -1
- package/addon/components/modals/fleet-details.hbs +6 -6
- package/addon/components/modals/fleet-form.hbs +8 -8
- package/addon/components/modals/fuel-report-details.hbs +9 -9
- package/addon/components/modals/fuel-report-form.hbs +8 -8
- package/addon/components/modals/group-details.hbs +4 -4
- package/addon/components/modals/group-form.hbs +6 -6
- package/addon/components/modals/install-prompt.hbs +2 -3
- package/addon/components/modals/issue-details.hbs +8 -8
- package/addon/components/modals/issue-from.hbs +21 -21
- package/addon/components/modals/map-field-form.hbs +2 -2
- package/addon/components/modals/map-field-group-form.hbs +1 -1
- package/addon/components/modals/map-layer-form.hbs +10 -10
- package/addon/components/modals/meta-field-form.hbs +2 -2
- package/addon/components/modals/meta-field-group-form.hbs +1 -1
- package/addon/components/modals/new-order-config.hbs +4 -4
- package/addon/components/modals/order-assign-driver.hbs +2 -2
- package/addon/components/modals/order-config-new-status.hbs +1 -1
- package/addon/components/modals/order-event.hbs +2 -2
- package/addon/components/modals/order-form.hbs +8 -8
- package/addon/components/modals/order-import.hbs +8 -8
- package/addon/components/modals/order-label.hbs +1 -1
- package/addon/components/modals/order-new-activity.hbs +10 -10
- package/addon/components/modals/order-route-form.hbs +17 -17
- package/addon/components/modals/place-assign-vendor.hbs +2 -2
- package/addon/components/modals/place-details.hbs +13 -13
- package/addon/components/modals/place-form.hbs +15 -15
- package/addon/components/modals/policy-form.hbs +5 -5
- package/addon/components/modals/role-form.hbs +3 -3
- package/addon/components/modals/select-payment-method.hbs +1 -1
- package/addon/components/modals/service-area-form.hbs +8 -8
- package/addon/components/modals/set-password.hbs +3 -3
- package/addon/components/modals/uninstall-prompt.hbs +2 -3
- package/addon/components/modals/user-form.hbs +9 -9
- package/addon/components/modals/vehicle-details.hbs +41 -41
- package/addon/components/modals/vehicle-form.hbs +73 -73
- package/addon/components/modals/vendor-details.hbs +10 -10
- package/addon/components/modals/vendor-form.hbs +36 -36
- package/addon/components/modals/view-service-area.hbs +1 -1
- package/addon/components/modals/zone-form.hbs +6 -6
- package/addon/components/order/header.hbs +11 -11
- package/addon/components/order/place-card.hbs +2 -2
- package/addon/components/order/schedule-card.hbs +6 -6
- package/addon/components/order/schedule-card.js +11 -7
- package/addon/components/order-config/activity-flow-editor.hbs +14 -14
- package/addon/components/order-config/activity-flow-editor.js +11 -11
- package/addon/components/order-config/details-editor.hbs +9 -9
- package/addon/components/order-config/entities-editor.hbs +13 -13
- package/addon/components/order-config/entities-editor.js +2 -2
- package/addon/components/order-config/fields-editor.hbs +14 -14
- package/addon/components/order-config/fields-editor.js +13 -12
- package/addon/components/order-config.hbs +9 -9
- package/addon/components/order-config.js +12 -11
- package/addon/components/order-list-overlay.hbs +14 -14
- package/addon/components/place-form-panel.hbs +18 -18
- package/addon/components/place-form-panel.js +6 -1
- package/addon/components/place-panel/details.hbs +10 -10
- package/addon/components/place-panel.hbs +2 -2
- package/addon/components/route-list.hbs +2 -2
- package/addon/components/settings-window.hbs +5 -5
- package/addon/components/settings-window.js +2 -1
- package/addon/components/vehicle-form-panel.hbs +27 -27
- package/addon/components/vehicle-form-panel.js +8 -3
- package/addon/components/vehicle-panel/details.hbs +7 -7
- package/addon/components/vehicle-panel.hbs +4 -4
- package/addon/components/vendor-form-panel/create-form.hbs +34 -33
- package/addon/components/vendor-form-panel/create-form.js +6 -2
- package/addon/components/vendor-form-panel/edit-form.hbs +27 -27
- package/addon/components/vendor-form-panel/edit-form.js +1 -0
- package/addon/components/vendor-form-panel.hbs +6 -6
- package/addon/components/vendor-form-panel.js +7 -2
- package/addon/components/vendor-panel/details.hbs +10 -10
- package/addon/components/vendor-panel.hbs +3 -3
- package/addon/components/widget/fleet-ops-quickstart.hbs +2 -2
- package/addon/components/widget/fleet-ops-quickstart.js +1 -0
- package/addon/components/widget/key-metrics.hbs +12 -12
- package/addon/components/widget/live-order-map.hbs +4 -4
- package/addon/components/widget/recent-orders.hbs +4 -4
- package/addon/components/widget/transactions.hbs +4 -4
- package/addon/controllers/management/contacts/index/edit.js +10 -3
- package/addon/controllers/management/contacts/index/new.js +7 -0
- package/addon/controllers/management/contacts/index.js +23 -16
- package/addon/controllers/management/drivers/index/edit.js +10 -3
- package/addon/controllers/management/drivers/index/new.js +7 -0
- package/addon/controllers/management/drivers/index.js +33 -19
- package/addon/controllers/management/fleets/index/edit.js +10 -3
- package/addon/controllers/management/fleets/index/new.js +7 -0
- package/addon/controllers/management/fleets/index.js +24 -17
- package/addon/controllers/management/fuel-reports/index/edit.js +10 -3
- package/addon/controllers/management/fuel-reports/index/new.js +7 -0
- package/addon/controllers/management/fuel-reports/index.js +20 -13
- package/addon/controllers/management/issues/index/edit.js +10 -3
- package/addon/controllers/management/issues/index/new.js +8 -0
- package/addon/controllers/management/issues/index.js +22 -15
- package/addon/controllers/management/places/index/edit.js +10 -3
- package/addon/controllers/management/places/index/new.js +7 -0
- package/addon/controllers/management/places/index.js +27 -20
- package/addon/controllers/management/vehicles/index/edit.js +10 -3
- package/addon/controllers/management/vehicles/index/new.js +7 -0
- package/addon/controllers/management/vehicles/index.js +22 -15
- package/addon/controllers/management/vendors/index/edit.js +10 -3
- package/addon/controllers/management/vendors/index/new.js +7 -0
- package/addon/controllers/management/vendors/index.js +23 -16
- package/addon/controllers/operations/orders/index/new.js +127 -30
- package/addon/controllers/operations/orders/index/view.js +57 -20
- package/addon/controllers/operations/orders/index.js +34 -27
- package/addon/controllers/operations/scheduler/index.js +3 -2
- package/addon/controllers/operations/service-rates/index/edit.js +1 -12
- package/addon/controllers/operations/service-rates/index/new.js +9 -1
- package/addon/controllers/operations/service-rates/index.js +16 -9
- package/addon/routes/application.js +5 -2
- package/addon/routes/management/places/index.js +1 -1
- package/addon/routes/operations/orders/index/view.js +2 -14
- package/addon/services/driver-actions.js +9 -8
- package/addon/services/vehicle-actions.js +2 -1
- package/addon/styles/fleetops-engine.css +6 -0
- package/addon/templates/management/contacts/index.hbs +6 -6
- package/addon/templates/management/drivers/index.hbs +6 -6
- package/addon/templates/management/fleets/index.hbs +6 -6
- package/addon/templates/management/fuel-reports/index.hbs +7 -7
- package/addon/templates/management/index.hbs +17 -17
- package/addon/templates/management/issues/index.hbs +6 -6
- package/addon/templates/management/places/index.hbs +6 -6
- package/addon/templates/management/vehicles/index.hbs +6 -6
- package/addon/templates/management/vendors/index.hbs +6 -6
- package/addon/templates/operations/orders/index/config/types.hbs +3 -3
- package/addon/templates/operations/orders/index/config.hbs +3 -4
- package/addon/templates/operations/orders/index/new.hbs +73 -73
- package/addon/templates/operations/orders/index/view.hbs +147 -53
- package/addon/templates/operations/orders/index.hbs +13 -13
- package/addon/templates/operations/scheduler/index.hbs +3 -3
- package/addon/templates/operations/service-rates/index/new.hbs +79 -81
- package/addon/templates/operations/service-rates/index.hbs +6 -6
- package/composer.json +2 -2
- package/extension.json +1 -1
- package/package.json +4 -2
- package/server/resources/views/labels/default.php +40 -18
- package/server/resources/views/labels/waypoint-label.php +126 -0
- package/server/src/Http/Controllers/Api/v1/DriverController.php +4 -1
- package/server/src/Http/Controllers/Api/v1/OrderController.php +1 -1
- package/server/src/Http/Resources/v1/Entity.php +2 -2
- package/server/src/Http/Resources/v1/Payload.php +11 -30
- package/server/src/Http/Resources/v1/Place.php +3 -3
- package/server/src/Http/Resources/v1/Waypoint.php +101 -0
- package/server/src/Models/Entity.php +1 -1
- package/server/src/Models/Payload.php +39 -0
- package/server/src/Models/Place.php +5 -2
- package/server/src/Models/Proof.php +1 -1
- package/server/src/Models/Waypoint.php +15 -3
- package/translations/en-us.yaml +1343 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<ContentPanel @title=
|
|
2
|
-
<InputGroup @name=
|
|
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>
|
|
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=
|
|
2
|
-
<p class="mb-4 dark:text-white text-gray-800">
|
|
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="
|
|
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=
|
|
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>
|
|
@@ -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="
|
|
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
|
|
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 "
|
|
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>
|
|
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="
|
|
77
|
-
<Input @value={{this.contact.name}} @type="text" class="w-full form-input" placeholder="
|
|
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="
|
|
80
|
-
<Input @value={{this.contact.title}} @type="text" class="w-full form-input" placeholder="
|
|
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=
|
|
83
|
-
<Input @value={{this.contact.internal_id}} @type="text" class="w-full form-input" placeholder=
|
|
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="
|
|
86
|
-
<Input @value={{this.contact.email}} @type="text" class="w-full form-input" placeholder="
|
|
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="
|
|
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="
|
|
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(
|
|
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) => {
|
|
@@ -133,8 +137,8 @@ export default class ContactFormPanelComponent extends Component {
|
|
|
133
137
|
{
|
|
134
138
|
path: `uploads/${this.currentUser.companyId}/drivers/${this.contact.id}`,
|
|
135
139
|
subject_uuid: this.contact.id,
|
|
136
|
-
subject_type:
|
|
137
|
-
type:
|
|
140
|
+
subject_type: 'fleet-ops:contact',
|
|
141
|
+
type: 'contact_photo',
|
|
138
142
|
},
|
|
139
143
|
(uploadedFile) => {
|
|
140
144
|
this.contact.setProperties({
|
|
@@ -180,7 +184,7 @@ export default class ContactFormPanelComponent extends Component {
|
|
|
180
184
|
{
|
|
181
185
|
path: `uploads/${this.contact.company_uuid}/contacts/${this.contact.slug}`,
|
|
182
186
|
subject_uuid: this.contact.id,
|
|
183
|
-
subject_type: 'contact',
|
|
187
|
+
subject_type: 'fleet-ops:contact',
|
|
184
188
|
type: 'contact_photo',
|
|
185
189
|
},
|
|
186
190
|
(uploadedFile) => {
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
<div class="p-4">
|
|
2
|
-
<ContentPanel @title="
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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="
|
|
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 "
|
|
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
|
-
|
|
7
|
+
{{t "fleet-ops.component.display-panel.no-address" htmlSafe=true type=@type}}
|
|
8
8
|
{{else}}
|
|
9
|
-
|
|
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">
|
|
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="
|
|
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
|
|
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 "
|
|
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="
|
|
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>
|
|
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">
|
|
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="
|
|
66
|
-
<Input @value={{this.driver.name}} @type="text" class="w-full form-input" placeholder="
|
|
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=
|
|
70
|
-
<Input @value={{this.driver.internal_id}} @type="text" class="w-full form-input" placeholder=
|
|
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=
|
|
74
|
-
<Input @value={{this.driver.drivers_license_number}} @type="text" class="w-full form-input" placeholder=
|
|
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="
|
|
78
|
-
<Input @value={{this.driver.email}} @type="text" class="w-full form-input" placeholder="
|
|
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="
|
|
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="
|
|
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="
|
|
92
|
-
<ModelSelect @modelName="vehicle" @selectedModel={{this.driver.vehicle}} @placeholder=
|
|
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="
|
|
98
|
-
<Input @value={{this.driver.city}} @type="text" class="w-full form-input" placeholder="
|
|
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="
|
|
102
|
-
<CountrySelect class="w-full form-input form-select form-datalist" @value={{this.driver.country}} @onChange={{fn (mut this.driver.country)}} placeholder="
|
|
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="
|
|
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="
|
|
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
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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(
|
|
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) => {
|
|
@@ -127,7 +131,7 @@ export default class DriverFormPanelComponent extends Component {
|
|
|
127
131
|
{
|
|
128
132
|
path: `uploads/${this.currentUser.companyId}/drivers/${this.driver.id}`,
|
|
129
133
|
subject_uuid: this.driver.id,
|
|
130
|
-
subject_type: 'driver',
|
|
134
|
+
subject_type: 'fleet-ops:driver',
|
|
131
135
|
type: 'driver_photo',
|
|
132
136
|
},
|
|
133
137
|
(uploadedFile) => {
|
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
<div class="p-4">
|
|
2
|
-
<ContentPanel @title="
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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="
|
|
16
|
-
<Button @type="default" @icon="pen" @helpText="
|
|
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="
|
|
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">
|
|
54
|
-
{{
|
|
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="
|
|
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="
|
|
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">
|
|
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>
|
|
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>
|
|
65
|
+
<span>{{t "fleet-ops.common.remove"}}</span>
|
|
66
66
|
</a>
|
|
67
67
|
{{/if}}
|
|
68
68
|
</div>
|