@fleetbase/fleetops-engine 0.3.4 → 0.3.6
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/README.md +4 -4
- package/addon/components/admin/navigator-app.hbs +5 -0
- package/addon/components/admin/navigator-app.js +27 -0
- package/addon/components/driver-form-panel.js +13 -19
- package/addon/components/fleet-listing-panel.hbs +2 -2
- package/addon/components/layout/fleet-ops-sidebar/fleet-listing.hbs +1 -0
- package/addon/components/layout/fleet-ops-sidebar/fleet-listing.js +3 -0
- package/addon/components/layout/fleet-ops-sidebar.hbs +4 -4
- package/addon/components/layout/fleet-ops-sidebar.js +2 -0
- package/addon/components/leaflet-draw-control.js +2 -3
- package/addon/components/live-map.js +7 -4
- package/addon/components/modals/driver-assign-order.hbs +2 -2
- package/addon/components/modals/order-import.hbs +5 -5
- package/addon/components/modals/order-new-activity.hbs +1 -1
- package/addon/components/order-config/entities-editor.js +3 -5
- package/addon/components/route-list.hbs +2 -2
- package/addon/components/vendor-form-panel.js +1 -1
- package/addon/controllers/application.js +2 -2
- package/addon/controllers/base-controller.js +31 -0
- package/addon/controllers/management/contacts/index/details.js +2 -2
- package/addon/controllers/management/contacts/index/edit.js +2 -2
- package/addon/controllers/management/contacts/index/new.js +2 -2
- package/addon/controllers/management/contacts/index.js +9 -2
- package/addon/controllers/management/drivers/index/details.js +2 -2
- package/addon/controllers/management/drivers/index/edit.js +28 -2
- package/addon/controllers/management/drivers/index/new.js +2 -2
- package/addon/controllers/management/drivers/index.js +18 -24
- package/addon/controllers/management/fleets/index/details.js +2 -2
- package/addon/controllers/management/fleets/index/edit.js +2 -2
- package/addon/controllers/management/fleets/index/new.js +2 -2
- package/addon/controllers/management/fleets/index.js +16 -9
- package/addon/controllers/management/fuel-reports/index/details.js +2 -2
- package/addon/controllers/management/fuel-reports/index/edit.js +2 -2
- package/addon/controllers/management/fuel-reports/index/new.js +2 -2
- package/addon/controllers/management/fuel-reports/index.js +9 -2
- package/addon/controllers/management/issues/index/details.js +2 -2
- package/addon/controllers/management/issues/index/edit.js +2 -2
- package/addon/controllers/management/issues/index/new.js +2 -2
- package/addon/controllers/management/issues/index.js +9 -9
- package/addon/controllers/management/places/index/details.js +2 -2
- package/addon/controllers/management/places/index/edit.js +2 -2
- package/addon/controllers/management/places/index/new.js +2 -2
- package/addon/controllers/management/places/index.js +8 -2
- package/addon/controllers/management/vehicles/index/details.js +2 -2
- package/addon/controllers/management/vehicles/index/edit.js +2 -2
- package/addon/controllers/management/vehicles/index/new.js +2 -2
- package/addon/controllers/management/vehicles/index.js +24 -32
- package/addon/controllers/management/vendors/index/details.js +2 -2
- package/addon/controllers/management/vendors/index/edit.js +2 -2
- package/addon/controllers/management/vendors/index/new.js +2 -2
- package/addon/controllers/management/vendors/index.js +9 -8
- package/addon/controllers/management.js +2 -2
- package/addon/controllers/operations/orders/index/config/types.js +2 -2
- package/addon/controllers/operations/orders/index/config.js +2 -2
- package/addon/controllers/operations/orders/index/new.js +64 -44
- package/addon/controllers/operations/orders/index/view.js +11 -4
- package/addon/controllers/operations/orders/index.js +2 -2
- package/addon/controllers/operations/scheduler/index.js +2 -2
- package/addon/controllers/operations/service-rates/index/edit.js +12 -18
- package/addon/controllers/operations/service-rates/index/new.js +16 -22
- package/addon/controllers/operations/service-rates/index.js +9 -2
- package/addon/engine.js +6 -0
- package/addon/helpers/waypoint-label.js +6 -1
- package/addon/routes/application.js +4 -15
- package/addon/routes/management/contacts/index.js +9 -5
- package/addon/routes/management/drivers/index.js +7 -3
- package/addon/routes/management/fleets/index.js +9 -5
- package/addon/routes/management/fuel-reports/index.js +9 -5
- package/addon/routes/management/issues/index.js +9 -5
- package/addon/routes/management/places/index.js +9 -5
- package/addon/routes/management/vehicles/index/details.js +2 -2
- package/addon/routes/management/vehicles/index.js +11 -2
- package/addon/routes/management/vendors/index.js +9 -6
- package/addon/routes/operations/orders/index/view.js +6 -2
- package/addon/routes/operations/orders/index.js +7 -1
- package/addon/routes/operations/orders.js +0 -1
- package/addon/routes/operations/service-rates/index.js +9 -27
- package/addon/routes/operations/service-rates.js +1 -8
- package/addon/styles/fleetops-engine.css +14 -7
- package/addon/templates/management/contacts/index.hbs +1 -0
- package/addon/templates/management/drivers/index.hbs +2 -1
- package/addon/templates/management/fleets/index.hbs +23 -3
- package/addon/templates/management/fuel-reports/index.hbs +1 -0
- package/addon/templates/management/issues/index.hbs +22 -2
- package/addon/templates/management/places/index.hbs +9 -1
- package/addon/templates/management/vehicles/index.hbs +22 -2
- package/addon/templates/management/vendors/index.hbs +22 -2
- package/addon/templates/operations/orders/index/new.hbs +7 -7
- package/addon/templates/operations/orders/index/view.hbs +17 -16
- package/addon/templates/operations/service-rates/index.hbs +11 -3
- package/addon/utils/waypoint-label.js +3 -0
- package/app/components/layout/fleet-ops-sidebar/fleet-listing.js +1 -0
- package/app/controllers/{operations/zones/index.js → base-controller.js} +1 -1
- package/app/utils/waypoint-label.js +1 -0
- package/composer.json +1 -1
- package/config/environment.js +11 -1
- package/extension.json +1 -1
- package/index.js +1 -0
- package/package.json +47 -41
- package/server/migrations/2023_04_27_053456_create_contacts_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_drivers_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_entities_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_fleet_drivers_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_fleets_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_fuel_reports_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_issues_table.php +4 -4
- package/server/migrations/2023_04_27_053456_create_orders_table.php +8 -8
- package/server/migrations/2023_04_27_053456_create_payloads_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_places_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_purchase_rates_table.php +4 -4
- package/server/migrations/2023_04_27_053456_create_service_areas_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_service_quote_items_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_service_quotes_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_service_rate_fees_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_service_rate_parcel_fees_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_service_rates_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_tracking_numbers_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_tracking_statuses_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_vehicles_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_vendors_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_waypoints_table.php +4 -4
- package/server/migrations/2023_04_27_053456_create_zones_table.php +2 -2
- package/server/migrations/2023_11_17_053001_add_category_uuid_to_entities_table.php +33 -0
- package/server/migrations/2023_11_28_074244_add_supplier_uuid_column_to_entities_table.php +33 -0
- package/server/migrations/2023_12_14_100209_add_meta_column_on_driver_table.php +30 -0
- package/server/src/Http/Controllers/Api/v1/DriverController.php +7 -4
- package/server/src/Http/Controllers/Api/v1/EntityController.php +2 -0
- package/server/src/Http/Controllers/Api/v1/OrderController.php +118 -42
- package/server/src/Http/Controllers/Api/v1/PayloadController.php +41 -43
- package/server/src/Http/Controllers/Api/v1/TrackingStatusController.php +43 -2
- package/server/src/Http/Controllers/Internal/v1/DriverController.php +0 -1
- package/server/src/Http/Controllers/Internal/v1/MorphController.php +48 -16
- package/server/src/Http/Controllers/Internal/v1/NavigatorController.php +41 -0
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +3 -2
- package/server/src/Http/Controllers/Internal/v1/PlaceController.php +2 -2
- package/server/src/Http/Requests/CreateDriverRequest.php +2 -0
- package/server/src/Http/Requests/CreateOrderRequest.php +18 -4
- package/server/src/Http/Requests/CreatePayloadRequest.php +23 -7
- package/server/src/Http/Requests/CreatePlaceRequest.php +9 -5
- package/server/src/Http/Requests/CreateTrackingStatusRequest.php +69 -12
- package/server/src/Http/Requests/CreateVehicleRequest.php +5 -3
- package/server/src/Http/Resources/v1/Entity.php +3 -0
- package/server/src/Http/Resources/v1/Fleet.php +19 -17
- package/server/src/Http/Resources/v1/Order.php +3 -2
- package/server/src/Models/Driver.php +21 -2
- package/server/src/Models/Entity.php +18 -23
- package/server/src/Models/Order.php +2 -2
- package/server/src/Models/Payload.php +27 -9
- package/server/src/Models/Place.php +28 -5
- package/server/src/Models/TrackingStatus.php +9 -3
- package/server/src/Models/Vehicle.php +4 -2
- package/server/src/Models/VehicleDevice.php +28 -0
- package/server/src/Models/VehicleDeviceEvent.php +1 -1
- package/server/src/Models/Vendor.php +16 -0
- package/server/src/Observers/DriverObserver.php +1 -1
- package/server/src/routes.php +8 -0
- package/tsconfig.declarations.json +10 -0
- package/addon/components/file-icon.js +0 -1
- package/addon/controllers/operations/zones/index.js +0 -475
- package/addon/routes/operations/dispatch.js +0 -3
- package/addon/routes/operations/zones/index.js +0 -25
- package/addon/routes/operations/zones.js +0 -7
- package/addon/templates/operations/dispatch.hbs +0 -1
- package/addon/templates/operations/zones/index.hbs +0 -72
- package/addon/templates/operations/zones.hbs +0 -1
- package/app/components/file-icon.js +0 -1
package/README.md
CHANGED
|
@@ -13,10 +13,10 @@ This monorepo contains both the frontend and backend components of the FleetOps
|
|
|
13
13
|
|
|
14
14
|
### Requirements
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
* PHP 7.3.0 or above
|
|
17
|
+
* Ember.js v4.8 or above
|
|
18
|
+
* Ember CLI v4.8 or above
|
|
19
|
+
* Node.js v18 or above
|
|
20
20
|
|
|
21
21
|
## Structure
|
|
22
22
|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import Component from '@glimmer/component';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
|
|
5
|
+
export default class NavigatorAppControlsComponent extends Component {
|
|
6
|
+
@service fetch;
|
|
7
|
+
@tracked isLoading = false;
|
|
8
|
+
@tracked url;
|
|
9
|
+
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.getAppLinkUrl();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
getAppLinkUrl() {
|
|
16
|
+
this.isLoading = true;
|
|
17
|
+
|
|
18
|
+
return this.fetch
|
|
19
|
+
.get('fleet-ops/navigator/get-link-app')
|
|
20
|
+
.then(({ linkUrl }) => {
|
|
21
|
+
this.url = linkUrl;
|
|
22
|
+
})
|
|
23
|
+
.finally(() => {
|
|
24
|
+
this.isLoading = false;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -100,25 +100,19 @@ export default class DriverFormPanelComponent extends Component {
|
|
|
100
100
|
|
|
101
101
|
contextComponentCallback(this, 'onBeforeSave', driver);
|
|
102
102
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
.
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
});
|
|
117
|
-
} catch (error) {
|
|
118
|
-
this.notifications.error(error.message);
|
|
119
|
-
this.loader.removeLoader('.next-content-overlay-panel-container ');
|
|
120
|
-
this.isLoading = false;
|
|
121
|
-
}
|
|
103
|
+
return driver
|
|
104
|
+
.save()
|
|
105
|
+
.then((driver) => {
|
|
106
|
+
this.notifications.success(`Driver (${driver.name}) saved successfully.`);
|
|
107
|
+
contextComponentCallback(this, 'onAfterSave', driver);
|
|
108
|
+
})
|
|
109
|
+
.catch((error) => {
|
|
110
|
+
this.notifications.serverError(error);
|
|
111
|
+
})
|
|
112
|
+
.finally(() => {
|
|
113
|
+
this.loader.removeLoader('.next-content-overlay-panel-container ');
|
|
114
|
+
this.isLoading = false;
|
|
115
|
+
});
|
|
122
116
|
}
|
|
123
117
|
|
|
124
118
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<Layout::Sidebar::Panel @open={{or @open true}} @title={{this.fleet.name}} @wrapperClass="next-fleet-summary-fleet fleet-depth-{{@depth}}">
|
|
1
|
+
<Layout::Sidebar::Panel @open={{or @open true}} @title={{this.fleet.name}} @titleStatusRightText={{concat this.fleet.vehicles_online_count "/" this.fleet.vehicles_count}} @titleStatusRight="info" @hideRightTitleStatusDot={{true}} @titleStatusRightContainerClass="-mr-2" @wrapperClass="next-fleet-summary-fleet fleet-depth-{{@depth}}">
|
|
2
2
|
{{#each this.fleet.subfleets as |subFleet|}}
|
|
3
3
|
<FleetListingPanel @fleet={{subFleet}} @onVehicleClicked={{this.onVehicleClicked}} @depth={{add @depth 1}} />
|
|
4
4
|
{{/each}}
|
|
5
5
|
{{#each this.fleet.vehicles as |vehicle|}}
|
|
6
|
-
<Layout::Sidebar::Item @icon="circle" @iconSize="2xs" @iconClass={{if vehicle.online "text-green-500" "text-yellow-200"}} @onClick={{fn this.onVehicleClicked vehicle}}>{{vehicle.displayName}}</Layout::Sidebar::Item>
|
|
6
|
+
<Layout::Sidebar::Item @icon="circle" @iconSize="2xs" @iconClass={{if vehicle.online "text-green-500" "text-yellow-200"}} @onClick={{fn this.onVehicleClicked vehicle}} @rightSideComponent={{@itemRightSideComponent}} @rightSideComponentContext={{@itemRightSideComponentContext}} @rightSideStatus={{@itemRightSideStatus}} @rightSideStatusText={{@itemRightSideStatusText}} @hideRightSideStatusDot={{@itemHideRightSideStatusDot}} @rightSideStatusClass={{@itemRightSideStatusClass}} @disableRightSideStatusHumanize={{@itemDisableRightSideStatusHumanize}} @dropdownButton={{@itemDropdownButton}} @dropdownButtonActions={{@itemDropdownButtonActions}} @dropdownButtonIcon={{@itemDropdownButtonIcon}} @dropdownButtonIconPrefix={{@itemDropdownButtonIconPrefix}} @dropdownButtonText={{@itemDropdownButtonText}} @dropdownButtonCalculatePosition={{@itemDropdownButtonCalculatePosition}} @dropdownButtonRenderInPlace={{@itemDropdownButtonRenderInPlace}} @dropdownButtonMenuLabel={{@itemDropdownButtonMenuLabel}} @dropdownButtonWrapperClass={{@itemDropdownButtonWrapperClass}} @dropdownButtonTriggerClass={{@itemDropdownButtonTriggerClass}} @registerDropdownButtonAPI={{@itemRegisterDropdownButtonAPI}}>{{vehicle.displayName}}</Layout::Sidebar::Item>
|
|
7
7
|
{{/each}}
|
|
8
8
|
</Layout::Sidebar::Panel>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<FleetListingPanel ...attributes />
|
|
@@ -5,20 +5,20 @@
|
|
|
5
5
|
{{#if menuItem.renderComponentInPlace}}
|
|
6
6
|
{{component menuItem.component}}
|
|
7
7
|
{{else}}
|
|
8
|
-
<Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem (concat this.routePrefix "virtual") menuItem}} @
|
|
8
|
+
<Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem (concat this.routePrefix "virtual") menuItem}} @menuItem={{menuItem}} @icon={{menuItem.icon}} @rightSideComponent={{menuItem.rightSideComponent}} @rightSideComponentContext={{menuItem.rightSideComponentContext}} @rightSideStatus={{menuItem.rightSideStatus}} @rightSideStatusText={{menuItem.rightSideStatusText}} @hideRightSideStatusDot={{menuItem.hideRightSideStatusDot}} @rightSideStatusClass={{menuItem.rightSideStatusClass}} @disableRightSideStatusHumanize={{menuItem.disableRightSideStatusHumanize}} @dropdownButton={{menuItem.dropdownButton}} @dropdownButtonActions={{menuItem.dropdownButtonActions}} @dropdownButtonIcon={{menuItem.dropdownButtonIcon}} @dropdownButtonIconPrefix={{menuItem.dropdownButtonIconPrefix}} @dropdownButtonText={{menuItem.dropdownButtonText}} @dropdownButtonCalculatePosition={{menuItem.dropdownButtonCalculatePosition}} @dropdownButtonRenderInPlace={{menuItem.dropdownButtonRenderInPlace}} @dropdownButtonMenuLabel={{menuItem.dropdownButtonMenuLabel}} @dropdownButtonWrapperClass={{menuItem.dropdownButtonWrapperClass}} @dropdownButtonTriggerClass={{menuItem.dropdownButtonTriggerClass}} @registerDropdownButtonAPI={{menuItem.registerDropdownButtonAPI}}>{{menuItem.title}}</Layout::Sidebar::Item>
|
|
9
9
|
{{/if}}
|
|
10
10
|
{{/each}}
|
|
11
11
|
{{#each this.menuPanels as |menuPanel|}}
|
|
12
12
|
<Layout::Sidebar::Panel @open={{menuPanel.open}} @title={{menuPanel.title}}>
|
|
13
|
-
{{#each menuPanel.items as |
|
|
14
|
-
<Layout::Sidebar::Item @route={{concat this.routePrefix
|
|
13
|
+
{{#each menuPanel.items as |menuItem|}}
|
|
14
|
+
<Layout::Sidebar::Item @route={{concat this.routePrefix menuItem.route}} @icon={{menuItem.icon}} @rightSideComponent={{menuItem.rightSideComponent}} @rightSideComponentContext={{menuItem.rightSideComponentContext}} @rightSideStatus={{menuItem.rightSideStatus}} @rightSideStatusText={{menuItem.rightSideStatusText}} @hideRightSideStatusDot={{menuItem.hideRightSideStatusDot}} @rightSideStatusClass={{menuItem.rightSideStatusClass}} @disableRightSideStatusHumanize={{menuItem.disableRightSideStatusHumanize}} @dropdownButton={{menuItem.dropdownButton}} @dropdownButtonActions={{menuItem.dropdownButtonActions}} @dropdownButtonIcon={{menuItem.dropdownButtonIcon}} @dropdownButtonIconPrefix={{menuItem.dropdownButtonIconPrefix}} @dropdownButtonText={{menuItem.dropdownButtonText}} @dropdownButtonCalculatePosition={{menuItem.dropdownButtonCalculatePosition}} @dropdownButtonRenderInPlace={{menuItem.dropdownButtonRenderInPlace}} @dropdownButtonMenuLabel={{menuItem.dropdownButtonMenuLabel}} @dropdownButtonWrapperClass={{menuItem.dropdownButtonWrapperClass}} @dropdownButtonTriggerClass={{menuItem.dropdownButtonTriggerClass}} @registerDropdownButtonAPI={{menuItem.registerDropdownButtonAPI}}>{{menuItem.title}}</Layout::Sidebar::Item>
|
|
15
15
|
{{/each}}
|
|
16
16
|
</Layout::Sidebar::Panel>
|
|
17
17
|
{{/each}}
|
|
18
18
|
{{#each this.universeMenuPanels as |menuPanel|}}
|
|
19
19
|
<Layout::Sidebar::Panel @open={{menuPanel.open}} @title={{menuPanel.title}}>
|
|
20
20
|
{{#each menuPanel.items as |menuItem|}}
|
|
21
|
-
<Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem (concat this.routePrefix "virtual") menuItem}} @
|
|
21
|
+
<Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem (concat this.routePrefix "virtual") menuItem}} @menuItem={{menuItem}} @icon={{menuItem.icon}} @rightSideComponent={{menuItem.rightSideComponent}} @rightSideComponentContext={{menuItem.rightSideComponentContext}} @rightSideStatus={{menuItem.rightSideStatus}} @rightSideStatusText={{menuItem.rightSideStatusText}} @hideRightSideStatusDot={{menuItem.hideRightSideStatusDot}} @rightSideStatusClass={{menuItem.rightSideStatusClass}} @disableRightSideStatusHumanize={{menuItem.disableRightSideStatusHumanize}} @dropdownButton={{menuItem.dropdownButton}} @dropdownButtonActions={{menuItem.dropdownButtonActions}} @dropdownButtonIcon={{menuItem.dropdownButtonIcon}} @dropdownButtonIconPrefix={{menuItem.dropdownButtonIconPrefix}} @dropdownButtonText={{menuItem.dropdownButtonText}} @dropdownButtonCalculatePosition={{menuItem.dropdownButtonCalculatePosition}} @dropdownButtonRenderInPlace={{menuItem.dropdownButtonRenderInPlace}} @dropdownButtonMenuLabel={{menuItem.dropdownButtonMenuLabel}} @dropdownButtonWrapperClass={{menuItem.dropdownButtonWrapperClass}} @dropdownButtonTriggerClass={{menuItem.dropdownButtonTriggerClass}} @registerDropdownButtonAPI={{menuItem.registerDropdownButtonAPI}}>{{menuItem.title}}</Layout::Sidebar::Item>
|
|
22
22
|
{{/each}}
|
|
23
23
|
</Layout::Sidebar::Panel>
|
|
24
24
|
{{/each}}
|
|
@@ -11,6 +11,8 @@ import { isArray } from '@ember/array';
|
|
|
11
11
|
*/
|
|
12
12
|
export default class LayoutFleetOpsSidebarComponent extends Component {
|
|
13
13
|
@service universe;
|
|
14
|
+
@service contextPanel;
|
|
15
|
+
@service store;
|
|
14
16
|
@tracked routePrefix = 'console.fleet-ops.';
|
|
15
17
|
@tracked menuPanels = [];
|
|
16
18
|
@tracked universeMenuItems = [];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import BaseLayer from 'ember-leaflet/components/base-layer';
|
|
2
2
|
import { computed } from '@ember/object';
|
|
3
|
-
import { assign } from '@ember/polyfills';
|
|
4
3
|
import { scheduleOnce } from '@ember/runloop';
|
|
5
4
|
import { classify, camelize } from '@ember/string';
|
|
6
5
|
import getWithDefault from '@fleetbase/ember-core/utils/get-with-default';
|
|
@@ -75,8 +74,8 @@ export default class LeafletDrawControl extends BaseLayer {
|
|
|
75
74
|
const showDrawingLayer = getWithDefault(this.args, 'showDrawingLayer', true);
|
|
76
75
|
|
|
77
76
|
if (this.map && this._layer && this.L.drawLocal) {
|
|
78
|
-
this.options.edit = assign({ featureGroup: this._layer }, this.options.edit);
|
|
79
|
-
this.options.draw = assign({}, this.L.drawLocal.draw, this.options.draw);
|
|
77
|
+
this.options.edit = Object.assign({ featureGroup: this._layer }, this.options.edit);
|
|
78
|
+
this.options.draw = Object.assign({}, this.L.drawLocal.draw, this.options.draw);
|
|
80
79
|
|
|
81
80
|
// create draw control
|
|
82
81
|
const drawControl = new this.L.Control.Draw(this.options);
|
|
@@ -1911,7 +1911,8 @@ export default class LiveMapComponent extends Component {
|
|
|
1911
1911
|
|
|
1912
1912
|
// from the `get-active-order-coordinates` the responded coordinates will always be [longitude, latitude]
|
|
1913
1913
|
// const [latitude, longitude] = extractCoordinates(coordinates.firstObject.coordinates);
|
|
1914
|
-
const
|
|
1914
|
+
const validCoordinates = coordinates.filter((point) => point.cordinates[0] !== 0);
|
|
1915
|
+
const [longitude, latitude] = getWithDefault(validCoordinates, '0.coordiantes', [0, 0]);
|
|
1915
1916
|
|
|
1916
1917
|
initialCoordinates.latitude = latitude;
|
|
1917
1918
|
initialCoordinates.longitude = longitude;
|
|
@@ -1934,10 +1935,12 @@ export default class LiveMapComponent extends Component {
|
|
|
1934
1935
|
this.isLoading = true;
|
|
1935
1936
|
|
|
1936
1937
|
return new Promise((resolve) => {
|
|
1937
|
-
|
|
1938
|
+
if (this.serviceAreas && typeof this.serviceAreas.getFromCache === 'function') {
|
|
1939
|
+
const cachedRecords = this.serviceAreas.getFromCache('serviceAreas', 'service-area');
|
|
1938
1940
|
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
+
if (cachedRecords) {
|
|
1942
|
+
resolve(cachedRecords);
|
|
1943
|
+
}
|
|
1941
1944
|
}
|
|
1942
1945
|
|
|
1943
1946
|
return this.store
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
</div>
|
|
18
18
|
</div>
|
|
19
19
|
<div class="order-route-location dark:text-gray-100">
|
|
20
|
-
<div>{{or order.payload.waypoints.
|
|
21
|
-
<div>{{or order.payload.waypoints.
|
|
20
|
+
<div>{{or (get order.payload.waypoints "0.name") (get order.payload.waypoints "0.street1")}}</div>
|
|
21
|
+
<div>{{or (get order.payload.waypoints "0.city") (get order.payload.waypoints "0.postal_code")}}</div>
|
|
22
22
|
</div>
|
|
23
23
|
</div>
|
|
24
24
|
<div class="order-route-stop">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
{{#if @options.isProcessing}}
|
|
4
4
|
<div class="min-h-56 dropzone w-full rounded px-4 py-8 min-h text-gray-900 dark:text-white text-center flex flex-col items-center justify-center border-2 border-dashed border-gray-200 dark:border-indigo-500">
|
|
5
5
|
<div class="flex items-center justify-center py-5">
|
|
6
|
-
<
|
|
6
|
+
<Spinner class="text-sm dark:text-gray-100" @loadingMessage="Processing import..." />
|
|
7
7
|
</div>
|
|
8
8
|
</div>
|
|
9
9
|
{{else}}
|
|
@@ -17,20 +17,20 @@
|
|
|
17
17
|
{{/if}}
|
|
18
18
|
{{else if queue.files.length}}
|
|
19
19
|
<div class="my-2">
|
|
20
|
-
<FaIcon @icon="file-
|
|
20
|
+
<FaIcon @icon="file-import" class="text-indigo-500 mr-2" />
|
|
21
21
|
{{pluralize queue.files.length "spreadsheet"}} ready for upload.
|
|
22
22
|
</div>
|
|
23
23
|
<div class="my-2">({{queue.progress}}%)</div>
|
|
24
24
|
{{else}}
|
|
25
25
|
<h4 class="font-semibold mb-8">
|
|
26
|
-
<FaIcon @icon="file-
|
|
26
|
+
<FaIcon @icon="file-import" class="text-indigo-500 mr-2" /> Upload Spreadsheets
|
|
27
27
|
</h4>
|
|
28
28
|
<div>
|
|
29
29
|
{{#if dropzone.supported}}
|
|
30
30
|
<p class="text-base font-semibold my-5">Drag and drop spreadsheet files onto this dropzone</p>
|
|
31
31
|
{{/if}}
|
|
32
32
|
|
|
33
|
-
<UploadButton @buttonText="or select spreadsheets to upload" @type="magic" @name="spreadsheets" @for="spreadsheets" @accept={{join "," @options.acceptedFileTypes}} @multiple={{true}} @onFileAdded={{@options.queueFile}} class="w-72" />
|
|
33
|
+
<UploadButton @buttonText="or select spreadsheets to upload" @type="magic" @icon="file-import" @name="spreadsheets" @for="spreadsheets" @accept={{join "," @options.acceptedFileTypes}} @multiple={{true}} @onFileAdded={{@options.queueFile}} class="w-72 justify-center" />
|
|
34
34
|
</div>
|
|
35
35
|
{{/if}}
|
|
36
36
|
</FileDropzone>
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
{{else if (eq column.key "uploadDate")}}
|
|
68
68
|
{{format-date (get file column.valuePath) "d MMM yyyy"}}
|
|
69
69
|
{{else}}
|
|
70
|
-
<div class="w-
|
|
70
|
+
<div class="min-w-225px max-w-225px truncate">{{get file column.valuePath}}</div>
|
|
71
71
|
{{/if}}
|
|
72
72
|
</td>
|
|
73
73
|
{{/each}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { inject as service } from '@ember/service';
|
|
4
|
-
import { action, computed, set
|
|
4
|
+
import { action, computed, set } from '@ember/object';
|
|
5
5
|
import { isArray } from '@ember/array';
|
|
6
6
|
import { underscore } from '@ember/string';
|
|
7
7
|
import generateUuid from '@fleetbase/ember-core/utils/generate-uuid';
|
|
@@ -96,13 +96,11 @@ export default class OrderConfigEntitiesEditorComponent extends Component {
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
@action setMetaKeyValue(index, key, { target }) {
|
|
99
|
-
console.log('setMetaKeyValue()', ...arguments);
|
|
100
99
|
const { orderConfig } = this;
|
|
101
100
|
const { value } = target;
|
|
102
101
|
|
|
103
|
-
console.log(value, get(orderConfig, `meta.entities.${index}.meta.${key}`));
|
|
104
|
-
|
|
105
|
-
// set(orderConfig, `meta.entities.${index}.meta.${key}`, value);
|
|
102
|
+
// console.log(value, get(orderConfig, `meta.entities.${index}.meta.${key}`));
|
|
103
|
+
set(orderConfig, `meta.entities.${index}.meta.${key}`, value);
|
|
106
104
|
|
|
107
105
|
if (typeof this.args.onEntitiesChanged === 'function') {
|
|
108
106
|
this.args.onEntitiesChanged(orderConfig.meta.entities);
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
{{/if}}
|
|
12
12
|
|
|
13
13
|
{{#if (gt @order.payload.waypoints.length 2)}}
|
|
14
|
-
<Button class="
|
|
15
|
-
<div class="px-3 py-2 w-full bg-yellow-200 text-yellow-900 rounded shadow-sm flex flex-col justify-center items-start">
|
|
14
|
+
<Button class="btn-reset w-full" @wrapperClass="w-full" @onClick={{this.toggleWaypointsCollapse}}>
|
|
15
|
+
<div class="px-3 py-2 w-full bg-yellow-200 text-yellow-900 rounded shadow-sm flex flex-col justify-center items-start mb-3">
|
|
16
16
|
<div class="flex flex-row items-center">
|
|
17
17
|
<FaIcon @icon="eye" class="mr-2 text-yellow-900" />
|
|
18
18
|
<span class="font-bold">{{if this.isWaypointsCollapsed "Tap to expand" "Tap to collapse"}}</span>
|
|
@@ -81,8 +81,8 @@ export default class VendorFormPanelComponent extends Component {
|
|
|
81
81
|
constructor() {
|
|
82
82
|
super(...arguments);
|
|
83
83
|
this.vendor = this.args.vendor;
|
|
84
|
-
this.isEditing = typeof this.vendor.id === 'string';
|
|
85
84
|
applyContextComponentArguments(this);
|
|
85
|
+
this.isEditing = this.vendor && typeof this.vendor.id === 'string';
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { inject as service } from '@ember/service';
|
|
4
4
|
import { computed, action } from '@ember/object';
|
|
5
5
|
|
|
6
|
-
export default class ApplicationController extends
|
|
6
|
+
export default class ApplicationController extends BaseController {
|
|
7
7
|
@service hostRouter;
|
|
8
8
|
|
|
9
9
|
@tracked routes = ['console.fleet-ops.operations', 'console.fleet-ops.management', 'console.fleet-ops.comms'];
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import Controller from '@ember/controller';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action } from '@ember/object';
|
|
4
|
+
|
|
5
|
+
export default class BaseController extends Controller {
|
|
6
|
+
/**
|
|
7
|
+
* Inject the `universe` service
|
|
8
|
+
*
|
|
9
|
+
* @var {Service}
|
|
10
|
+
*/
|
|
11
|
+
@service universe;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Transitions to a specified route within the '@fleetbase/fleetops-engine' engine.
|
|
15
|
+
*
|
|
16
|
+
* This action is a wrapper around the `transitionToEngineRoute` method of the `universe` service (or object),
|
|
17
|
+
* specifically targeting the '@fleetbase/fleetops-engine'. It allows for easy transitioning to routes
|
|
18
|
+
* within this engine, abstracting away the need to repeatedly specify the engine name.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} route - The route within the '@fleetbase/fleetops-engine' to transition to.
|
|
21
|
+
* @param {...any} args - Additional arguments to pass to the transitionToEngineRoute method.
|
|
22
|
+
* @returns {Promise} A Promise that resolves with the result of the transitionToEngineRoute method.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* // To transition to the 'management.fleets.index.new' route within the '@fleetbase/fleetops-engine'
|
|
26
|
+
* this.transitionToRoute('management.fleets.index.new');
|
|
27
|
+
*/
|
|
28
|
+
@action transitionToRoute(route, ...args) {
|
|
29
|
+
return this.universe.transitionToEngineRoute('@fleetbase/fleetops-engine', route, ...args);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { action } from '@ember/object';
|
|
4
4
|
|
|
5
|
-
export default class ManagementContactsIndexDetailsController extends
|
|
5
|
+
export default class ManagementContactsIndexDetailsController extends BaseController {
|
|
6
6
|
/**
|
|
7
7
|
* The currently active view tab ('details' by default).
|
|
8
8
|
*
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { action } from '@ember/object';
|
|
5
5
|
|
|
6
|
-
export default class ManagementContactsIndexEditController extends
|
|
6
|
+
export default class ManagementContactsIndexEditController extends BaseController {
|
|
7
7
|
/**
|
|
8
8
|
* Inject the `hostRouter` service
|
|
9
9
|
*
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { inject as service } from '@ember/service';
|
|
4
4
|
import { action } from '@ember/object';
|
|
5
5
|
|
|
6
|
-
export default class ManagementContactsIndexNewController extends
|
|
6
|
+
export default class ManagementContactsIndexNewController extends BaseController {
|
|
7
7
|
/**
|
|
8
8
|
* Inject the `store` service
|
|
9
9
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { action } from '@ember/object';
|
|
@@ -6,7 +6,7 @@ import { isBlank } from '@ember/utils';
|
|
|
6
6
|
import { timeout } from 'ember-concurrency';
|
|
7
7
|
import { task } from 'ember-concurrency-decorators';
|
|
8
8
|
|
|
9
|
-
export default class ManagementContactsIndexController extends
|
|
9
|
+
export default class ManagementContactsIndexController extends BaseController {
|
|
10
10
|
/**
|
|
11
11
|
* Inject the `currentUser` service
|
|
12
12
|
*
|
|
@@ -297,6 +297,13 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
297
297
|
this.query = value;
|
|
298
298
|
}
|
|
299
299
|
|
|
300
|
+
/**
|
|
301
|
+
* Reload layout view.
|
|
302
|
+
*/
|
|
303
|
+
@action reload() {
|
|
304
|
+
return this.hostRouter.refresh();
|
|
305
|
+
}
|
|
306
|
+
|
|
300
307
|
/**
|
|
301
308
|
* Toggles dialog to export `contact`
|
|
302
309
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { action } from '@ember/object';
|
|
4
4
|
|
|
@@ -8,7 +8,7 @@ import { action } from '@ember/object';
|
|
|
8
8
|
* @class ManagementDriversIndexDetailsController
|
|
9
9
|
* @extends Controller
|
|
10
10
|
*/
|
|
11
|
-
export default class ManagementDriverIndexDetailsController extends
|
|
11
|
+
export default class ManagementDriverIndexDetailsController extends BaseController {
|
|
12
12
|
/**
|
|
13
13
|
* The currently active view tab ('details' by default).
|
|
14
14
|
*
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { action } from '@ember/object';
|
|
5
5
|
|
|
6
|
-
export default class ManagementDriversIndexEditController extends
|
|
6
|
+
export default class ManagementDriversIndexEditController extends BaseController {
|
|
7
7
|
/**
|
|
8
8
|
* Inject the `hostRouter` service
|
|
9
9
|
*
|
|
@@ -25,6 +25,13 @@ export default class ManagementDriversIndexEditController extends Controller {
|
|
|
25
25
|
*/
|
|
26
26
|
@tracked overlay;
|
|
27
27
|
|
|
28
|
+
/**
|
|
29
|
+
* The universe service.
|
|
30
|
+
*
|
|
31
|
+
* @memberof ManagementDriversIndexEditController
|
|
32
|
+
*/
|
|
33
|
+
@tracked universe;
|
|
34
|
+
|
|
28
35
|
/**
|
|
29
36
|
* When exiting the overlay.
|
|
30
37
|
*
|
|
@@ -108,4 +115,23 @@ export default class ManagementDriversIndexEditController extends Controller {
|
|
|
108
115
|
...options,
|
|
109
116
|
});
|
|
110
117
|
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Transitions to a specified route within the '@fleetbase/fleetops-engine' engine.
|
|
121
|
+
*
|
|
122
|
+
* This action is a wrapper around the `transitionToEngineRoute` method of the `universe` service (or object),
|
|
123
|
+
* specifically targeting the '@fleetbase/fleetops-engine'. It allows for easy transitioning to routes
|
|
124
|
+
* within this engine, abstracting away the need to repeatedly specify the engine name.
|
|
125
|
+
*
|
|
126
|
+
* @param {string} route - The route within the '@fleetbase/fleetops-engine' to transition to.
|
|
127
|
+
* @param {...any} args - Additional arguments to pass to the transitionToEngineRoute method.
|
|
128
|
+
* @returns {Promise} A Promise that resolves with the result of the transitionToEngineRoute method.
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* // To transition to the 'management.fleets.index.new' route within the '@fleetbase/fleetops-engine'
|
|
132
|
+
* this.transitionToRoute('management.fleets.index.new');
|
|
133
|
+
*/
|
|
134
|
+
@action _transitionToRoute(route, ...args) {
|
|
135
|
+
return this.universe.transitionToEngineRoute('@fleetbase/fleetops-engine', route, ...args);
|
|
136
|
+
}
|
|
111
137
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { inject as service } from '@ember/service';
|
|
4
4
|
import { action } from '@ember/object';
|
|
5
5
|
|
|
6
|
-
export default class ManagementDriversIndexNewController extends
|
|
6
|
+
export default class ManagementDriversIndexNewController extends BaseController {
|
|
7
7
|
/**
|
|
8
8
|
* Inject the `store` service
|
|
9
9
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { action } from '@ember/object';
|
|
@@ -9,7 +9,7 @@ import { task } from 'ember-concurrency-decorators';
|
|
|
9
9
|
import extractCoordinates from '@fleetbase/ember-core/utils/extract-coordinates';
|
|
10
10
|
import leafletIcon from '@fleetbase/ember-core/utils/leaflet-icon';
|
|
11
11
|
|
|
12
|
-
export default class ManagementDriversIndexController extends
|
|
12
|
+
export default class ManagementDriversIndexController extends BaseController {
|
|
13
13
|
/**
|
|
14
14
|
* Inject the `notifications` service
|
|
15
15
|
*
|
|
@@ -132,13 +132,6 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
132
132
|
*/
|
|
133
133
|
@tracked internal_id;
|
|
134
134
|
|
|
135
|
-
/**
|
|
136
|
-
* The filterable param `drivers_license_number`
|
|
137
|
-
*
|
|
138
|
-
* @var {String}
|
|
139
|
-
*/
|
|
140
|
-
@tracked drivers_license_number;
|
|
141
|
-
|
|
142
135
|
/**
|
|
143
136
|
* The filterable param `name`
|
|
144
137
|
*
|
|
@@ -257,7 +250,13 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
257
250
|
{
|
|
258
251
|
label: 'Vendor',
|
|
259
252
|
cellComponent: 'table/cell/anchor',
|
|
260
|
-
|
|
253
|
+
onClick: async (driver) => {
|
|
254
|
+
const vendor = await driver.loadVendor();
|
|
255
|
+
|
|
256
|
+
if (vendor) {
|
|
257
|
+
this.contextPanel.focus(vendor);
|
|
258
|
+
}
|
|
259
|
+
},
|
|
261
260
|
valuePath: 'vendor.name',
|
|
262
261
|
modelNamePath: 'name',
|
|
263
262
|
width: '180px',
|
|
@@ -464,6 +463,13 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
464
463
|
this.layout = layout;
|
|
465
464
|
}
|
|
466
465
|
|
|
466
|
+
/**
|
|
467
|
+
* Reload layout view.
|
|
468
|
+
*/
|
|
469
|
+
@action reload() {
|
|
470
|
+
return this.hostRouter.refresh();
|
|
471
|
+
}
|
|
472
|
+
|
|
467
473
|
/**
|
|
468
474
|
* Bulk deletes selected `driver` via confirm prompt
|
|
469
475
|
*
|
|
@@ -503,6 +509,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
503
509
|
@action viewDriver(driver) {
|
|
504
510
|
return this.transitionToRoute('management.drivers.index.details', driver);
|
|
505
511
|
}
|
|
512
|
+
|
|
506
513
|
/**
|
|
507
514
|
* Create a new `driver` in modal
|
|
508
515
|
*
|
|
@@ -523,6 +530,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
523
530
|
@action editDriver(driver) {
|
|
524
531
|
return this.transitionToRoute('management.drivers.index.edit', driver);
|
|
525
532
|
}
|
|
533
|
+
|
|
526
534
|
/**
|
|
527
535
|
* Delete a `driver` via confirm prompt
|
|
528
536
|
*
|
|
@@ -648,18 +656,4 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
648
656
|
...options,
|
|
649
657
|
});
|
|
650
658
|
}
|
|
651
|
-
|
|
652
|
-
/**
|
|
653
|
-
* View information about the driver vendor
|
|
654
|
-
*
|
|
655
|
-
* @param {DriverModel} driver
|
|
656
|
-
* @void
|
|
657
|
-
*/
|
|
658
|
-
@action async viewDriverVendor(driver) {
|
|
659
|
-
const vendor = await driver.loadVendor();
|
|
660
|
-
|
|
661
|
-
if (vendor) {
|
|
662
|
-
this.contextPanel.focus(vendor);
|
|
663
|
-
}
|
|
664
|
-
}
|
|
665
659
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { action } from '@ember/object';
|
|
4
4
|
|
|
@@ -8,7 +8,7 @@ import { action } from '@ember/object';
|
|
|
8
8
|
* @class ManagementFleetsIndexDetailsController
|
|
9
9
|
* @extends Controller
|
|
10
10
|
*/
|
|
11
|
-
export default class ManagementFleetsIndexDetailsController extends
|
|
11
|
+
export default class ManagementFleetsIndexDetailsController extends BaseController {
|
|
12
12
|
/**
|
|
13
13
|
* The currently active view tab ('details' by default).
|
|
14
14
|
*
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { action } from '@ember/object';
|
|
5
5
|
|
|
6
|
-
export default class ManagementFleetsIndexEditController extends
|
|
6
|
+
export default class ManagementFleetsIndexEditController extends BaseController {
|
|
7
7
|
/**
|
|
8
8
|
* Inject the `hostRouter` service
|
|
9
9
|
*
|