@fleetbase/fleetops-engine 0.3.5 → 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/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 +2 -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 +11 -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 +9 -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 +2 -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 +2 -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 +2 -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 +11 -12
- 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 +2 -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 +2 -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 +9 -0
- 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/operations/orders/index/new.hbs +7 -7
- package/addon/templates/operations/orders/index/view.hbs +17 -16
- package/addon/utils/waypoint-label.js +3 -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_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/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/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/Order.php +3 -2
- package/server/src/Models/Driver.php +5 -2
- package/server/src/Models/Entity.php +1 -1
- 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/VehicleDevice.php +28 -0
- 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
|
@@ -36,24 +36,18 @@ export default class OperationsServiceRatesIndexEditController extends Operation
|
|
|
36
36
|
this.isUpdatingServiceRate = true;
|
|
37
37
|
this.loader.showLoader('.overlay-inner-content', { loadingMessage: 'Updating service rate...' });
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
.then((
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
this.resetForm();
|
|
46
|
-
this.hostRouter.refresh();
|
|
47
|
-
});
|
|
48
|
-
})
|
|
49
|
-
.catch(this.notifications.serverError)
|
|
50
|
-
.finally(() => {
|
|
51
|
-
this.isUpdatingServiceRate = false;
|
|
52
|
-
this.loader.removeLoader();
|
|
39
|
+
return serviceRate
|
|
40
|
+
.save()
|
|
41
|
+
.then((serviceRate) => {
|
|
42
|
+
return this.transitionToRoute('operations.service-rates.index').then(() => {
|
|
43
|
+
this.notifications.success(`Service rate '${serviceRate.service_name}' updated`);
|
|
44
|
+
this.resetForm();
|
|
53
45
|
});
|
|
54
|
-
|
|
55
|
-
this.
|
|
56
|
-
|
|
57
|
-
|
|
46
|
+
})
|
|
47
|
+
.catch(this.notifications.serverError)
|
|
48
|
+
.finally(() => {
|
|
49
|
+
this.isUpdatingServiceRate = false;
|
|
50
|
+
this.loader.removeLoader();
|
|
51
|
+
});
|
|
58
52
|
}
|
|
59
53
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
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, computed } from '@ember/object';
|
|
5
5
|
import { isBlank } from '@ember/utils';
|
|
6
6
|
|
|
7
|
-
export default class OperationsServiceRatesIndexNewController extends
|
|
7
|
+
export default class OperationsServiceRatesIndexNewController extends BaseController {
|
|
8
8
|
/**
|
|
9
9
|
* Inject the `currentUser` service
|
|
10
10
|
*
|
|
@@ -296,27 +296,21 @@ export default class OperationsServiceRatesIndexNewController extends Controller
|
|
|
296
296
|
this.isCreatingServiceRate = true;
|
|
297
297
|
this.loader.showLoader('.overlay-inner-content', { loadingMessage: 'Creating service rate...' });
|
|
298
298
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
.then((
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
this.resetForm();
|
|
306
|
-
this.hostRouter.refresh();
|
|
307
|
-
});
|
|
308
|
-
})
|
|
309
|
-
.catch((error) => {
|
|
310
|
-
this.notifications.serverError(error);
|
|
311
|
-
})
|
|
312
|
-
.finally(() => {
|
|
313
|
-
this.isCreatingServiceRate = false;
|
|
314
|
-
this.loader.removeLoader();
|
|
299
|
+
return serviceRate
|
|
300
|
+
.save()
|
|
301
|
+
.then((serviceRate) => {
|
|
302
|
+
return this.transitionToRoute('operations.service-rates.index').then(() => {
|
|
303
|
+
this.notifications.success(`New Service Rate ${serviceRate.service_name} Created`);
|
|
304
|
+
this.resetForm();
|
|
315
305
|
});
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
306
|
+
})
|
|
307
|
+
.catch((error) => {
|
|
308
|
+
this.notifications.serverError(error);
|
|
309
|
+
})
|
|
310
|
+
.finally(() => {
|
|
311
|
+
this.isCreatingServiceRate = false;
|
|
312
|
+
this.loader.removeLoader();
|
|
313
|
+
});
|
|
320
314
|
}
|
|
321
315
|
|
|
322
316
|
/**
|
|
@@ -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 OperationsServiceRatesIndexController extends
|
|
9
|
+
export default class OperationsServiceRatesIndexController extends BaseController {
|
|
10
10
|
/**
|
|
11
11
|
* Inject the `currentUser` service
|
|
12
12
|
*
|
package/addon/engine.js
CHANGED
|
@@ -4,6 +4,7 @@ import Resolver from 'ember-resolver';
|
|
|
4
4
|
import config from './config/environment';
|
|
5
5
|
import services from '@fleetbase/ember-core/exports/services';
|
|
6
6
|
import AdminVisibilityControlsComponent from './components/admin/visibility-controls';
|
|
7
|
+
import NavigatorAppControlsComponent from './components/admin/navigator-app';
|
|
7
8
|
|
|
8
9
|
const { modulePrefix } = config;
|
|
9
10
|
const externalRoutes = ['console', 'extensions'];
|
|
@@ -28,6 +29,11 @@ export default class FleetOpsEngine extends Engine {
|
|
|
28
29
|
icon: 'eye',
|
|
29
30
|
component: AdminVisibilityControlsComponent,
|
|
30
31
|
},
|
|
32
|
+
{
|
|
33
|
+
title: 'Navigator Apps',
|
|
34
|
+
icon: 'key',
|
|
35
|
+
component: NavigatorAppControlsComponent,
|
|
36
|
+
},
|
|
31
37
|
],
|
|
32
38
|
{
|
|
33
39
|
slug: 'fleet-ops',
|
|
@@ -1 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { helper } from '@ember/component/helper';
|
|
2
|
+
import waypointLabelUtil from '../utils/waypoint-label';
|
|
3
|
+
|
|
4
|
+
export default helper(function waypointLabel([index]) {
|
|
5
|
+
return waypointLabelUtil(index);
|
|
6
|
+
});
|
|
@@ -1,29 +1,18 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action } from '@ember/object';
|
|
4
|
+
import getResourceNameFromTransition from '@fleetbase/ember-core/utils/get-resource-name-from-transition';
|
|
3
5
|
|
|
4
6
|
export default class ApplicationRoute extends Route {
|
|
5
7
|
@service loader;
|
|
6
8
|
@service fetch;
|
|
7
9
|
|
|
8
|
-
loading(transition) {
|
|
9
|
-
const resourceName =
|
|
10
|
+
@action loading(transition) {
|
|
11
|
+
const resourceName = getResourceNameFromTransition(transition);
|
|
10
12
|
this.loader.showOnInitialTransition(transition, 'section.next-view-section', { loadingMessage: resourceName ? `Loading ${resourceName}...` : `Loading...` });
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
model() {
|
|
14
16
|
return this.fetch.get('fleet-ops/settings/visibility');
|
|
15
17
|
}
|
|
16
|
-
|
|
17
|
-
getResouceName(transition) {
|
|
18
|
-
const { to } = transition;
|
|
19
|
-
|
|
20
|
-
if (typeof to.name === 'string') {
|
|
21
|
-
let routePathSegments = to.name.split('.');
|
|
22
|
-
let resourceName = routePathSegments[3];
|
|
23
|
-
|
|
24
|
-
return resourceName;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
18
|
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action, set } from '@ember/object';
|
|
4
|
+
import isNestedRouteTransition from '@fleetbase/ember-core/utils/is-nested-route-transition';
|
|
3
5
|
|
|
4
6
|
export default class ManagementContactsIndexRoute extends Route {
|
|
5
7
|
@service store;
|
|
6
8
|
|
|
7
|
-
/**
|
|
8
|
-
* Queryable parameters
|
|
9
|
-
*
|
|
10
|
-
* @var {Object}
|
|
11
|
-
*/
|
|
12
9
|
queryParams = {
|
|
13
10
|
page: { refreshModel: true },
|
|
14
11
|
limit: { refreshModel: true },
|
|
@@ -25,6 +22,13 @@ export default class ManagementContactsIndexRoute extends Route {
|
|
|
25
22
|
updatedAt: { refreshModel: true },
|
|
26
23
|
};
|
|
27
24
|
|
|
25
|
+
@action willTransition(transition) {
|
|
26
|
+
if (isNestedRouteTransition(transition)) {
|
|
27
|
+
set(this.queryParams, 'page.refreshModel', false);
|
|
28
|
+
set(this.queryParams, 'sort.refreshModel', false);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
28
32
|
model(params) {
|
|
29
33
|
return this.store.query('contact', params);
|
|
30
34
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action, set } from '@ember/object';
|
|
4
|
+
import isNestedRouteTransition from '@fleetbase/ember-core/utils/is-nested-route-transition';
|
|
3
5
|
|
|
4
6
|
export default class ManagementDriversIndexRoute extends Route {
|
|
5
7
|
@service store;
|
|
6
|
-
@service intl;
|
|
7
8
|
|
|
8
9
|
queryParams = {
|
|
9
10
|
page: { refreshModel: true },
|
|
@@ -28,8 +29,11 @@ export default class ManagementDriversIndexRoute extends Route {
|
|
|
28
29
|
'within[where]': { refreshModel: true, replace: true },
|
|
29
30
|
};
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
@action willTransition(transition) {
|
|
33
|
+
if (isNestedRouteTransition(transition)) {
|
|
34
|
+
set(this.queryParams, 'page.refreshModel', false);
|
|
35
|
+
set(this.queryParams, 'sort.refreshModel', false);
|
|
36
|
+
}
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
model(params) {
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action, set } from '@ember/object';
|
|
4
|
+
import isNestedRouteTransition from '@fleetbase/ember-core/utils/is-nested-route-transition';
|
|
3
5
|
|
|
4
6
|
export default class ManagementFleetsIndexRoute extends Route {
|
|
5
7
|
@service store;
|
|
6
8
|
|
|
7
|
-
/**
|
|
8
|
-
* Queryable parameters
|
|
9
|
-
*
|
|
10
|
-
* @var {Object}
|
|
11
|
-
*/
|
|
12
9
|
queryParams = {
|
|
13
10
|
page: { refreshModel: true },
|
|
14
11
|
limit: { refreshModel: true },
|
|
@@ -28,6 +25,13 @@ export default class ManagementFleetsIndexRoute extends Route {
|
|
|
28
25
|
updatedAt: { refreshModel: true },
|
|
29
26
|
};
|
|
30
27
|
|
|
28
|
+
@action willTransition(transition) {
|
|
29
|
+
if (isNestedRouteTransition(transition)) {
|
|
30
|
+
set(this.queryParams, 'page.refreshModel', false);
|
|
31
|
+
set(this.queryParams, 'sort.refreshModel', false);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
31
35
|
model(params) {
|
|
32
36
|
return this.store.query('fleet', { ...params, with: ['parent_fleet', 'service_area', 'zone'] });
|
|
33
37
|
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action, set } from '@ember/object';
|
|
4
|
+
import isNestedRouteTransition from '@fleetbase/ember-core/utils/is-nested-route-transition';
|
|
3
5
|
|
|
4
6
|
export default class ManagementFuelReportsIndexRoute extends Route {
|
|
5
7
|
@service store;
|
|
6
8
|
|
|
7
|
-
/**
|
|
8
|
-
* Queryable parameters
|
|
9
|
-
*
|
|
10
|
-
* @var {Object}
|
|
11
|
-
*/
|
|
12
9
|
queryParams = {
|
|
13
10
|
page: { refreshModel: true },
|
|
14
11
|
limit: { refreshModel: true },
|
|
@@ -25,6 +22,13 @@ export default class ManagementFuelReportsIndexRoute extends Route {
|
|
|
25
22
|
odometer: { refreshModel: true },
|
|
26
23
|
};
|
|
27
24
|
|
|
25
|
+
@action willTransition(transition) {
|
|
26
|
+
if (isNestedRouteTransition(transition)) {
|
|
27
|
+
set(this.queryParams, 'page.refreshModel', false);
|
|
28
|
+
set(this.queryParams, 'sort.refreshModel', false);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
28
32
|
model(params) {
|
|
29
33
|
return this.store.query('fuel-report', { ...params, with: ['driver', 'vehicle', 'reporter'] });
|
|
30
34
|
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action, set } from '@ember/object';
|
|
4
|
+
import isNestedRouteTransition from '@fleetbase/ember-core/utils/is-nested-route-transition';
|
|
3
5
|
|
|
4
6
|
export default class ManagementIssuesIndexRoute extends Route {
|
|
5
7
|
@service store;
|
|
6
8
|
|
|
7
|
-
/**
|
|
8
|
-
* Queryable parameters
|
|
9
|
-
*
|
|
10
|
-
* @var {Object}
|
|
11
|
-
*/
|
|
12
9
|
queryParams = {
|
|
13
10
|
page: { refreshModel: true },
|
|
14
11
|
limit: { refreshModel: true },
|
|
@@ -26,6 +23,13 @@ export default class ManagementIssuesIndexRoute extends Route {
|
|
|
26
23
|
createdAt: { refreshModel: true },
|
|
27
24
|
};
|
|
28
25
|
|
|
26
|
+
@action willTransition(transition) {
|
|
27
|
+
if (isNestedRouteTransition(transition)) {
|
|
28
|
+
set(this.queryParams, 'page.refreshModel', false);
|
|
29
|
+
set(this.queryParams, 'sort.refreshModel', false);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
29
33
|
model(params) {
|
|
30
34
|
return this.store.query('issue', { ...params, with: ['driver', 'vehicle', 'assignee', 'reporter'] });
|
|
31
35
|
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action, set } from '@ember/object';
|
|
4
|
+
import isNestedRouteTransition from '@fleetbase/ember-core/utils/is-nested-route-transition';
|
|
3
5
|
|
|
4
6
|
export default class ManagementPlacesIndexRoute extends Route {
|
|
5
7
|
@service store;
|
|
6
8
|
|
|
7
|
-
/**
|
|
8
|
-
* Queryable parameters
|
|
9
|
-
*
|
|
10
|
-
* @var {Object}
|
|
11
|
-
*/
|
|
12
9
|
queryParams = {
|
|
13
10
|
page: { refreshModel: true },
|
|
14
11
|
limit: { refreshModel: true },
|
|
@@ -27,6 +24,13 @@ export default class ManagementPlacesIndexRoute extends Route {
|
|
|
27
24
|
updatedAt: { refreshModel: true },
|
|
28
25
|
};
|
|
29
26
|
|
|
27
|
+
@action willTransition(transition) {
|
|
28
|
+
if (isNestedRouteTransition(transition)) {
|
|
29
|
+
set(this.queryParams, 'page.refreshModel', false);
|
|
30
|
+
set(this.queryParams, 'sort.refreshModel', false);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
30
34
|
model(params) {
|
|
31
35
|
return this.store.query('place', { ...params });
|
|
32
36
|
}
|
|
@@ -8,8 +8,8 @@ export default class ManagementVehiclesIndexDetailsRoute extends Route {
|
|
|
8
8
|
view: { refreshModel: false },
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
model(
|
|
12
|
-
return this.store.findRecord('vehicle', public_id);
|
|
11
|
+
model(params) {
|
|
12
|
+
return this.store.findRecord('vehicle', params.public_id);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
afterModel(model) {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action, set } from '@ember/object';
|
|
4
|
+
import isNestedRouteTransition from '@fleetbase/ember-core/utils/is-nested-route-transition';
|
|
3
5
|
|
|
4
6
|
export default class ManagementVehiclesIndexRoute extends Route {
|
|
5
7
|
@service store;
|
|
@@ -29,6 +31,13 @@ export default class ManagementVehiclesIndexRoute extends Route {
|
|
|
29
31
|
'within[where]': { refreshModel: true, replace: true },
|
|
30
32
|
};
|
|
31
33
|
|
|
34
|
+
@action willTransition(transition) {
|
|
35
|
+
if (isNestedRouteTransition(transition)) {
|
|
36
|
+
set(this.queryParams, 'page.refreshModel', false);
|
|
37
|
+
set(this.queryParams, 'sort.refreshModel', false);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
32
41
|
model(params) {
|
|
33
42
|
return this.store.query('vehicle', { ...params });
|
|
34
43
|
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action, set } from '@ember/object';
|
|
4
|
+
import isNestedRouteTransition from '@fleetbase/ember-core/utils/is-nested-route-transition';
|
|
3
5
|
|
|
4
6
|
export default class ManagementVendorsIndexRoute extends Route {
|
|
5
7
|
@service store;
|
|
6
8
|
|
|
7
|
-
/**
|
|
8
|
-
* Queryable parameters
|
|
9
|
-
*
|
|
10
|
-
* @var {Object}
|
|
11
|
-
*/
|
|
12
9
|
queryParams = {
|
|
13
10
|
page: { refreshModel: true },
|
|
14
11
|
limit: { refreshModel: true },
|
|
@@ -26,12 +23,18 @@ export default class ManagementVendorsIndexRoute extends Route {
|
|
|
26
23
|
website_url: { refreshModel: true },
|
|
27
24
|
};
|
|
28
25
|
|
|
26
|
+
@action willTransition(transition) {
|
|
27
|
+
if (isNestedRouteTransition(transition)) {
|
|
28
|
+
set(this.queryParams, 'page.refreshModel', false);
|
|
29
|
+
set(this.queryParams, 'sort.refreshModel', false);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
29
33
|
model(params) {
|
|
30
34
|
return this.store.query('vendor', { ...params });
|
|
31
35
|
}
|
|
32
36
|
|
|
33
37
|
async setupController(controller, model) {
|
|
34
|
-
console.log('setupController action called');
|
|
35
38
|
super.setupController(...arguments);
|
|
36
39
|
|
|
37
40
|
// load integrated vendors
|
|
@@ -11,8 +11,12 @@ export default class OperationsOrdersIndexViewRoute extends Route {
|
|
|
11
11
|
@action willTransition(transition) {
|
|
12
12
|
const shouldReset = typeof transition.to.name === 'string' && !transition.to.name.includes('operations.orders');
|
|
13
13
|
|
|
14
|
-
if (this.controller
|
|
15
|
-
this.controller.
|
|
14
|
+
if (this.controller) {
|
|
15
|
+
this.controller.removeRoutingControlPreview();
|
|
16
|
+
|
|
17
|
+
if (shouldReset) {
|
|
18
|
+
this.controller.resetView();
|
|
19
|
+
}
|
|
16
20
|
}
|
|
17
21
|
}
|
|
18
22
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { inject as service } from '@ember/service';
|
|
4
|
-
import { action } from '@ember/object';
|
|
4
|
+
import { action, set } from '@ember/object';
|
|
5
|
+
import isNestedRouteTransition from '@fleetbase/ember-core/utils/is-nested-route-transition';
|
|
5
6
|
|
|
6
7
|
export default class OperationsOrdersIndexRoute extends Route {
|
|
7
8
|
@service store;
|
|
@@ -33,6 +34,11 @@ export default class OperationsOrdersIndexRoute extends Route {
|
|
|
33
34
|
if (this.controller && shouldReset) {
|
|
34
35
|
this.controller.resetView(transition);
|
|
35
36
|
}
|
|
37
|
+
|
|
38
|
+
if (isNestedRouteTransition(transition)) {
|
|
39
|
+
set(this.queryParams, 'page.refreshModel', false);
|
|
40
|
+
set(this.queryParams, 'sort.refreshModel', false);
|
|
41
|
+
}
|
|
36
42
|
}
|
|
37
43
|
|
|
38
44
|
@action model(params) {
|
|
@@ -1,36 +1,11 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
|
-
import { action } from '@ember/object';
|
|
3
|
+
import { action, set } from '@ember/object';
|
|
4
|
+
import isNestedRouteTransition from '@fleetbase/ember-core/utils/is-nested-route-transition';
|
|
4
5
|
|
|
5
6
|
export default class OperationsServiceRatesIndexRoute extends Route {
|
|
6
|
-
/**
|
|
7
|
-
* Inject the `store` service.
|
|
8
|
-
*
|
|
9
|
-
* @var {Store}
|
|
10
|
-
*/
|
|
11
7
|
@service store;
|
|
12
8
|
|
|
13
|
-
/**
|
|
14
|
-
* Inject the `loader` service.
|
|
15
|
-
*
|
|
16
|
-
* @var {Service}
|
|
17
|
-
*/
|
|
18
|
-
@service loader;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Loading event handler for route.
|
|
22
|
-
*
|
|
23
|
-
* @param {Transition} transition
|
|
24
|
-
*/
|
|
25
|
-
@action loading(transition) {
|
|
26
|
-
this.loader.showOnInitialTransition(transition, 'section.next-view-section', { loadingMessage: 'Loading service rates...' });
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Queryable parameters
|
|
31
|
-
*
|
|
32
|
-
* @var {Object}
|
|
33
|
-
*/
|
|
34
9
|
queryParams = {
|
|
35
10
|
page: { refreshModel: true },
|
|
36
11
|
limit: { refreshModel: true },
|
|
@@ -40,6 +15,13 @@ export default class OperationsServiceRatesIndexRoute extends Route {
|
|
|
40
15
|
zone: { refreshModel: true },
|
|
41
16
|
};
|
|
42
17
|
|
|
18
|
+
@action willTransition(transition) {
|
|
19
|
+
if (isNestedRouteTransition(transition)) {
|
|
20
|
+
set(this.queryParams, 'page.refreshModel', false);
|
|
21
|
+
set(this.queryParams, 'sort.refreshModel', false);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
43
25
|
model(params) {
|
|
44
26
|
return this.store.query('service-rate', {
|
|
45
27
|
...params,
|
|
@@ -1,10 +1,3 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
|
-
import { inject as service } from '@ember/service';
|
|
3
2
|
|
|
4
|
-
export default class OperationsServiceRatesRoute extends Route {
|
|
5
|
-
@service store;
|
|
6
|
-
|
|
7
|
-
model() {
|
|
8
|
-
return this.store.findAll('service-rate');
|
|
9
|
-
}
|
|
10
|
-
}
|
|
3
|
+
export default class OperationsServiceRatesRoute extends Route {}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
.scheduler-left-sidebar {
|
|
2
|
-
border-right: 1px
|
|
2
|
+
border-right: 1px rgb(229 231 235 / 100%) solid;
|
|
3
3
|
height: 100vh;
|
|
4
4
|
overflow-y: scroll;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
body[data-theme=
|
|
8
|
-
border-right: 1px
|
|
7
|
+
body[data-theme='dark'] .scheduler-left-sidebar {
|
|
8
|
+
border-right: 1px rgb(55 65 81 / 100%) solid;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
.scheduler-left-sidebar > .next-content-panel-wrapper
|
|
11
|
+
.scheduler-left-sidebar > .next-content-panel-wrapper > .next-content-panel-container > .next-content-panel > .next-content-panel-header.next-content-panel-is-closed {
|
|
12
12
|
border-bottom-left-radius: 0;
|
|
13
13
|
border-bottom-right-radius: 0;
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
.scheduler-left-sidebar > .next-content-panel-wrapper > .next-content-panel-container > .next-content-panel > .next-content-panel-header {
|
|
16
17
|
border-top-left-radius: 0;
|
|
17
18
|
border-top-right-radius: 0;
|
|
18
19
|
border-top: 0;
|
|
@@ -20,9 +21,15 @@ body[data-theme="dark"] .scheduler-left-sidebar {
|
|
|
20
21
|
border-right: 0;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
.scheduler-left-sidebar > .next-content-panel-wrapper
|
|
24
|
+
.scheduler-left-sidebar > .next-content-panel-wrapper > .next-content-panel-container > .next-content-panel > .next-content-panel-body {
|
|
24
25
|
border-left: 0;
|
|
25
26
|
border-right: 0;
|
|
26
27
|
border-bottom-left-radius: 0;
|
|
27
28
|
border-bottom-right-radius: 0;
|
|
28
|
-
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.fleetbase-console.console-fleet-ops-operations-orders-index-new,
|
|
32
|
+
.fleetbase-console.console-fleet-ops-operations-orders-index-view,
|
|
33
|
+
.fleetbase-console .dragSortList {
|
|
34
|
+
overflow: visible !important;
|
|
35
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
<Overlay @position="right" @noBackdrop={{true}} @isResizable={{true}} @
|
|
1
|
+
<Overlay @position="right" @noBackdrop={{true}} @isResizable={{true}} @width="570px" @fullHeight={{true}} @onLoad={{this.setupInterface}} as |overlay|>
|
|
2
2
|
<Overlay::Header @overlay={{overlay}} @title="New Order" @onPressCancel={{this.transitionBack}}>
|
|
3
3
|
<DropdownButton @icon="ellipsis-h" @size="sm" @iconPrefix="fas" @triggerClass="mr-2 hidden md:flex" as |dd|>
|
|
4
|
-
<div class="next-dd-menu mt-1 mx-0" aria-
|
|
4
|
+
<div class="next-dd-menu mt-1 mx-0" aria-labelledby="user-menu">
|
|
5
5
|
<div class="p-1">
|
|
6
6
|
<a href="javascript:;" class="next-dd-item" {{on "click" (dropdown-fn dd this.newCustomer)}}>
|
|
7
7
|
<div class="w-6">
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
</div>
|
|
16
16
|
<span>Create new facilitator</span>
|
|
17
17
|
</a>
|
|
18
|
-
<a href="javascript:;" class="next-dd-item" {{on "click" (dropdown-fn dd this.
|
|
18
|
+
<a href="javascript:;" class="next-dd-item" {{on "click" (dropdown-fn dd this.createPlace)}}>
|
|
19
19
|
<div class="w-6">
|
|
20
20
|
<FaIcon @icon="map-pin" />
|
|
21
21
|
</div>
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
{{#each group.items as |metaField|}}
|
|
163
163
|
<div class="input-group {{if (eq metaField.type "boolean") "col-span-2 items-center" ""}}">
|
|
164
164
|
<div class="flex items-center justify-between">
|
|
165
|
-
{{#if (not
|
|
165
|
+
{{#if (not-eq metaField.type "boolean")}}
|
|
166
166
|
<InputLabel @labelText={{metaField.label}} @required={{metaField.required}} />
|
|
167
167
|
{{/if}}
|
|
168
168
|
|
|
@@ -223,8 +223,8 @@
|
|
|
223
223
|
</label>
|
|
224
224
|
</div>
|
|
225
225
|
|
|
226
|
-
<div class="flex-1 px-
|
|
227
|
-
<ModelSelect @modelName="place" @selectedModel={{waypoint.place}} @placeholder={{concat "Select Waypoint " (add index 1)}} @triggerClass="form-select form-input truncate
|
|
226
|
+
<div class="flex-1 px-3">
|
|
227
|
+
<ModelSelect @modelName="place" @selectedModel={{waypoint.place}} @placeholder={{concat "Select Waypoint " (add index 1)}} @triggerClass="form-select form-input truncate max-w-300px" @infiniteScroll={{false}} @customSearchEndpoint="places/search" @query={{hash geo=true latitude=this.userLatitude longitude=this.userLongitude}} @renderInPlace={{true}} @onChange={{fn this.setWaypointPlace index}} as |model|>
|
|
228
228
|
{{model.address}}
|
|
229
229
|
</ModelSelect>
|
|
230
230
|
|
|
@@ -241,7 +241,7 @@
|
|
|
241
241
|
|
|
242
242
|
<div class="flex items-center">
|
|
243
243
|
{{#if waypoint.place}}
|
|
244
|
-
<Button class="mr-2" @icon="edit" @size="sm" @onClick={{fn this.
|
|
244
|
+
<Button class="mr-2" @icon="edit" @size="sm" @onClick={{fn this.editPlace waypoint.place}} />
|
|
245
245
|
{{/if}}
|
|
246
246
|
<Button @type="danger" @icon="trash" @size="sm" @onClick={{fn this.removeWaypoint waypoint}} />
|
|
247
247
|
</div>
|