@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.
Files changed (122) hide show
  1. package/README.md +4 -4
  2. package/addon/components/admin/navigator-app.hbs +5 -0
  3. package/addon/components/admin/navigator-app.js +27 -0
  4. package/addon/components/driver-form-panel.js +13 -19
  5. package/addon/components/leaflet-draw-control.js +2 -3
  6. package/addon/components/live-map.js +7 -4
  7. package/addon/components/modals/driver-assign-order.hbs +2 -2
  8. package/addon/components/modals/order-import.hbs +5 -5
  9. package/addon/components/modals/order-new-activity.hbs +1 -1
  10. package/addon/components/order-config/entities-editor.js +3 -5
  11. package/addon/components/route-list.hbs +2 -2
  12. package/addon/components/vendor-form-panel.js +1 -1
  13. package/addon/controllers/application.js +2 -2
  14. package/addon/controllers/base-controller.js +31 -0
  15. package/addon/controllers/management/contacts/index/details.js +2 -2
  16. package/addon/controllers/management/contacts/index/edit.js +2 -2
  17. package/addon/controllers/management/contacts/index/new.js +2 -2
  18. package/addon/controllers/management/contacts/index.js +2 -2
  19. package/addon/controllers/management/drivers/index/details.js +2 -2
  20. package/addon/controllers/management/drivers/index/edit.js +28 -2
  21. package/addon/controllers/management/drivers/index/new.js +2 -2
  22. package/addon/controllers/management/drivers/index.js +11 -24
  23. package/addon/controllers/management/fleets/index/details.js +2 -2
  24. package/addon/controllers/management/fleets/index/edit.js +2 -2
  25. package/addon/controllers/management/fleets/index/new.js +2 -2
  26. package/addon/controllers/management/fleets/index.js +9 -9
  27. package/addon/controllers/management/fuel-reports/index/details.js +2 -2
  28. package/addon/controllers/management/fuel-reports/index/edit.js +2 -2
  29. package/addon/controllers/management/fuel-reports/index/new.js +2 -2
  30. package/addon/controllers/management/fuel-reports/index.js +2 -2
  31. package/addon/controllers/management/issues/index/details.js +2 -2
  32. package/addon/controllers/management/issues/index/edit.js +2 -2
  33. package/addon/controllers/management/issues/index/new.js +2 -2
  34. package/addon/controllers/management/issues/index.js +2 -9
  35. package/addon/controllers/management/places/index/details.js +2 -2
  36. package/addon/controllers/management/places/index/edit.js +2 -2
  37. package/addon/controllers/management/places/index/new.js +2 -2
  38. package/addon/controllers/management/places/index.js +2 -2
  39. package/addon/controllers/management/vehicles/index/details.js +2 -2
  40. package/addon/controllers/management/vehicles/index/edit.js +2 -2
  41. package/addon/controllers/management/vehicles/index/new.js +2 -2
  42. package/addon/controllers/management/vehicles/index.js +11 -12
  43. package/addon/controllers/management/vendors/index/details.js +2 -2
  44. package/addon/controllers/management/vendors/index/edit.js +2 -2
  45. package/addon/controllers/management/vendors/index/new.js +2 -2
  46. package/addon/controllers/management/vendors/index.js +2 -8
  47. package/addon/controllers/management.js +2 -2
  48. package/addon/controllers/operations/orders/index/config/types.js +2 -2
  49. package/addon/controllers/operations/orders/index/config.js +2 -2
  50. package/addon/controllers/operations/orders/index/new.js +64 -44
  51. package/addon/controllers/operations/orders/index/view.js +11 -4
  52. package/addon/controllers/operations/orders/index.js +2 -2
  53. package/addon/controllers/operations/scheduler/index.js +2 -2
  54. package/addon/controllers/operations/service-rates/index/edit.js +12 -18
  55. package/addon/controllers/operations/service-rates/index/new.js +16 -22
  56. package/addon/controllers/operations/service-rates/index.js +2 -2
  57. package/addon/engine.js +6 -0
  58. package/addon/helpers/waypoint-label.js +6 -1
  59. package/addon/routes/application.js +4 -15
  60. package/addon/routes/management/contacts/index.js +9 -5
  61. package/addon/routes/management/drivers/index.js +7 -3
  62. package/addon/routes/management/fleets/index.js +9 -5
  63. package/addon/routes/management/fuel-reports/index.js +9 -5
  64. package/addon/routes/management/issues/index.js +9 -5
  65. package/addon/routes/management/places/index.js +9 -5
  66. package/addon/routes/management/vehicles/index/details.js +2 -2
  67. package/addon/routes/management/vehicles/index.js +9 -0
  68. package/addon/routes/management/vendors/index.js +9 -6
  69. package/addon/routes/operations/orders/index/view.js +6 -2
  70. package/addon/routes/operations/orders/index.js +7 -1
  71. package/addon/routes/operations/orders.js +0 -1
  72. package/addon/routes/operations/service-rates/index.js +9 -27
  73. package/addon/routes/operations/service-rates.js +1 -8
  74. package/addon/styles/fleetops-engine.css +14 -7
  75. package/addon/templates/operations/orders/index/new.hbs +7 -7
  76. package/addon/templates/operations/orders/index/view.hbs +17 -16
  77. package/addon/utils/waypoint-label.js +3 -0
  78. package/app/controllers/{operations/zones/index.js → base-controller.js} +1 -1
  79. package/app/utils/waypoint-label.js +1 -0
  80. package/composer.json +1 -1
  81. package/config/environment.js +11 -1
  82. package/extension.json +1 -1
  83. package/index.js +1 -0
  84. package/package.json +47 -41
  85. package/server/migrations/2023_11_28_074244_add_supplier_uuid_column_to_entities_table.php +33 -0
  86. package/server/migrations/2023_12_14_100209_add_meta_column_on_driver_table.php +30 -0
  87. package/server/src/Http/Controllers/Api/v1/DriverController.php +7 -4
  88. package/server/src/Http/Controllers/Api/v1/OrderController.php +118 -42
  89. package/server/src/Http/Controllers/Api/v1/PayloadController.php +41 -43
  90. package/server/src/Http/Controllers/Api/v1/TrackingStatusController.php +43 -2
  91. package/server/src/Http/Controllers/Internal/v1/MorphController.php +48 -16
  92. package/server/src/Http/Controllers/Internal/v1/NavigatorController.php +41 -0
  93. package/server/src/Http/Controllers/Internal/v1/OrderController.php +3 -2
  94. package/server/src/Http/Controllers/Internal/v1/PlaceController.php +2 -2
  95. package/server/src/Http/Requests/CreateDriverRequest.php +2 -0
  96. package/server/src/Http/Requests/CreateOrderRequest.php +18 -4
  97. package/server/src/Http/Requests/CreatePayloadRequest.php +23 -7
  98. package/server/src/Http/Requests/CreatePlaceRequest.php +9 -5
  99. package/server/src/Http/Requests/CreateTrackingStatusRequest.php +69 -12
  100. package/server/src/Http/Requests/CreateVehicleRequest.php +5 -3
  101. package/server/src/Http/Resources/v1/Entity.php +3 -0
  102. package/server/src/Http/Resources/v1/Order.php +3 -2
  103. package/server/src/Models/Driver.php +5 -2
  104. package/server/src/Models/Entity.php +1 -1
  105. package/server/src/Models/Order.php +2 -2
  106. package/server/src/Models/Payload.php +27 -9
  107. package/server/src/Models/Place.php +28 -5
  108. package/server/src/Models/TrackingStatus.php +9 -3
  109. package/server/src/Models/VehicleDevice.php +28 -0
  110. package/server/src/Models/Vendor.php +16 -0
  111. package/server/src/Observers/DriverObserver.php +1 -1
  112. package/server/src/routes.php +8 -0
  113. package/tsconfig.declarations.json +10 -0
  114. package/addon/components/file-icon.js +0 -1
  115. package/addon/controllers/operations/zones/index.js +0 -475
  116. package/addon/routes/operations/dispatch.js +0 -3
  117. package/addon/routes/operations/zones/index.js +0 -25
  118. package/addon/routes/operations/zones.js +0 -7
  119. package/addon/templates/operations/dispatch.hbs +0 -1
  120. package/addon/templates/operations/zones/index.hbs +0 -72
  121. package/addon/templates/operations/zones.hbs +0 -1
  122. package/app/components/file-icon.js +0 -1
@@ -1,4 +1,4 @@
1
- import Controller from '@ember/controller';
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 ManagementFuelReportsIndexController extends Controller {
9
+ export default class ManagementFuelReportsIndexController extends BaseController {
10
10
  /**
11
11
  * Inject the `notifications` service
12
12
  *
@@ -1,7 +1,7 @@
1
- import Controller from '@ember/controller';
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
- export default class ManagementIssuesIndexDetailsController extends Controller {
4
+ export default class ManagementIssuesIndexDetailsController extends BaseController {
5
5
  /**
6
6
  * The currently active view tab ('details' by default).
7
7
  *
@@ -1,9 +1,9 @@
1
- import Controller from '@ember/controller';
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 ManagementIssuesIndexEditController extends Controller {
6
+ export default class ManagementIssuesIndexEditController extends BaseController {
7
7
  /**
8
8
  * Inject the `hostRouter` service
9
9
  *
@@ -1,8 +1,8 @@
1
- import Controller from '@ember/controller';
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
- export default class ManagementIssuesIndexNewController extends Controller {
5
+ export default class ManagementIssuesIndexNewController extends BaseController {
6
6
  /**
7
7
  * Inject the `store` service
8
8
  *
@@ -1,4 +1,4 @@
1
- import Controller from '@ember/controller';
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';
@@ -8,7 +8,7 @@ import { task } from 'ember-concurrency-decorators';
8
8
  import getIssueTypes from '../../../utils/get-issue-types';
9
9
  import getIssueCategories from '../../../utils/get-issue-categories';
10
10
 
11
- export default class ManagementIssuesIndexController extends Controller {
11
+ export default class ManagementIssuesIndexController extends BaseController {
12
12
  /**
13
13
  * Inject the `notifications` service
14
14
  *
@@ -117,13 +117,6 @@ export default class ManagementIssuesIndexController extends Controller {
117
117
  */
118
118
  @tracked priority;
119
119
 
120
- /**
121
- * The filterable param `priority`
122
- *
123
- * @var {Array|String}
124
- */
125
- @tracked status;
126
-
127
120
  /**
128
121
  * The filterable param `type`
129
122
  *
@@ -1,8 +1,8 @@
1
- import Controller from '@ember/controller';
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 ManagementPlacesIndexDetailsController extends Controller {
5
+ export default class ManagementPlacesIndexDetailsController extends BaseController {
6
6
  /**
7
7
  * The currently active view tab ('details' by default).
8
8
  *
@@ -1,9 +1,9 @@
1
- import Controller from '@ember/controller';
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 ManagementPlacesIndexEditController extends Controller {
6
+ export default class ManagementPlacesIndexEditController extends BaseController {
7
7
  /**
8
8
  * Inject the `hostRouter` service
9
9
  *
@@ -1,9 +1,9 @@
1
- import Controller from '@ember/controller';
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 ManagementPlacesIndexNewController extends Controller {
6
+ export default class ManagementPlacesIndexNewController extends BaseController {
7
7
  /**
8
8
  * Inject the `store` service
9
9
  *
@@ -1,11 +1,11 @@
1
- import Controller from '@ember/controller';
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
  import { isBlank } from '@ember/utils';
6
6
  import { task, timeout } from 'ember-concurrency';
7
7
 
8
- export default class ManagementPlacesIndexController extends Controller {
8
+ export default class ManagementPlacesIndexController extends BaseController {
9
9
  /**
10
10
  * Inject the `notifications` service
11
11
  *
@@ -1,4 +1,4 @@
1
- import Controller from '@ember/controller';
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 ManagementVehiclesIndexDetailsController
9
9
  * @extends Controller
10
10
  */
11
- export default class ManagementVehiclesIndexDetailsController extends Controller {
11
+ export default class ManagementVehiclesIndexDetailsController extends BaseController {
12
12
  /**
13
13
  * The currently active view tab ('details' by default).
14
14
  *
@@ -1,9 +1,9 @@
1
- import Controller from '@ember/controller';
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 ManagementVehiclesIndexEditController extends Controller {
6
+ export default class ManagementVehiclesIndexEditController extends BaseController {
7
7
  /**
8
8
  * Inject the `hostRouter` service
9
9
  *
@@ -1,9 +1,9 @@
1
- import Controller from '@ember/controller';
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 ManagementVehiclesIndexNewController extends Controller {
6
+ export default class ManagementVehiclesIndexNewController extends BaseController {
7
7
  /**
8
8
  * Inject the `store` service
9
9
  *
@@ -1,5 +1,4 @@
1
- import ManagementController from '../../management';
2
- import { inject as controller } from '@ember/controller';
1
+ import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
3
2
  import { inject as service } from '@ember/service';
4
3
  import { tracked } from '@glimmer/tracking';
5
4
  import { action } from '@ember/object';
@@ -7,7 +6,14 @@ import { isBlank } from '@ember/utils';
7
6
  import { timeout } from 'ember-concurrency';
8
7
  import { task } from 'ember-concurrency-decorators';
9
8
 
10
- export default class ManagementVehiclesIndexController extends ManagementController {
9
+ export default class ManagementVehiclesIndexController extends BaseController {
10
+ /**
11
+ * Inject the `contextPanel` service
12
+ *
13
+ * @var {Service}
14
+ */
15
+ @service contextPanel;
16
+
11
17
  /**
12
18
  * Inject the `notifications` service
13
19
  *
@@ -207,13 +213,6 @@ export default class ManagementVehiclesIndexController extends ManagementControl
207
213
  */
208
214
  @tracked table;
209
215
 
210
- /**
211
- * Inject the `management.drivers.index` controller
212
- *
213
- * @var {Controller}
214
- */
215
- @controller('management.drivers.index') drivers;
216
-
217
216
  /**
218
217
  * All possible order status options.
219
218
  *
@@ -258,7 +257,7 @@ export default class ManagementVehiclesIndexController extends ManagementControl
258
257
  action: async (vehicle) => {
259
258
  const driver = await vehicle.loadDriver();
260
259
 
261
- return this.drivers.viewDriver(driver);
260
+ return this.contextPanel.focus(driver);
262
261
  },
263
262
  valuePath: 'driver_name',
264
263
  width: '120px',
@@ -472,7 +471,7 @@ export default class ManagementVehiclesIndexController extends ManagementControl
472
471
  * @void
473
472
  */
474
473
  @action viewVehicle(vehicle) {
475
- return this.transitionToRoute('management.vehicles.index.details', vehicle);
474
+ return this.transitionToRoute('management.vehicles.index.details', vehicle, { queryParams: { view: 'details' } });
476
475
  }
477
476
 
478
477
  /**
@@ -1,8 +1,8 @@
1
- import Controller from '@ember/controller';
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 ManagementVendorsIndexDetailsController extends Controller {
5
+ export default class ManagementVendorsIndexDetailsController extends BaseController {
6
6
  /**
7
7
  * The currently active view tab ('details' by default).
8
8
  *
@@ -1,9 +1,9 @@
1
- import Controller from '@ember/controller';
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 ManagementVendorsIndexEditController extends Controller {
6
+ export default class ManagementVendorsIndexEditController extends BaseController {
7
7
  /**
8
8
  * Inject the `hostRouter` service
9
9
  *
@@ -1,9 +1,9 @@
1
- import Controller from '@ember/controller';
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 ManagementVendorsIndexNewController extends Controller {
6
+ export default class ManagementVendorsIndexNewController extends BaseController {
7
7
  /**
8
8
  * Inject the `store` service
9
9
  *
@@ -1,4 +1,4 @@
1
- import Controller, { inject as controller } from '@ember/controller';
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,14 +6,8 @@ import { isBlank } from '@ember/utils';
6
6
  import { timeout } from 'ember-concurrency';
7
7
  import { task } from 'ember-concurrency-decorators';
8
8
  import getVendorStatusOptions from '../../../utils/get-vendor-status-options';
9
- export default class ManagementVendorsIndexController extends Controller {
10
- /**
11
- * Inject the `management.places.index` controller
12
- *
13
- * @var {Controller}
14
- */
15
- @controller('management.places.index') places;
16
9
 
10
+ export default class ManagementVendorsIndexController extends BaseController {
17
11
  /**
18
12
  * Inject the `notifications` service
19
13
  *
@@ -1,3 +1,3 @@
1
- import Controller from '@ember/controller';
1
+ import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
2
2
 
3
- export default class ManagementController extends Controller {}
3
+ export default class ManagementController extends BaseController {}
@@ -1,8 +1,8 @@
1
- import Controller from '@ember/controller';
1
+ import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
2
2
  import { tracked } from '@glimmer/tracking';
3
3
  import { action, computed } from '@ember/object';
4
4
 
5
- export default class OperationsOrdersIndexConfigTypesController extends Controller {
5
+ export default class OperationsOrdersIndexConfigTypesController extends BaseController {
6
6
  @tracked configurations = [];
7
7
  @tracked isLoaded = false;
8
8
 
@@ -1,7 +1,7 @@
1
- import Controller from '@ember/controller';
1
+ import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
2
2
  import { action } from '@ember/object';
3
3
 
4
- export default class OperationsOrdersIndexConfigController extends Controller {
4
+ export default class OperationsOrdersIndexConfigController extends BaseController {
5
5
  /**
6
6
  * Uses router service to transition back to `orders.index`
7
7
  *
@@ -1,4 +1,5 @@
1
- import Controller, { inject as controller } from '@ember/controller';
1
+ import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
2
+ import { inject as controller } from '@ember/controller';
2
3
  import { inject as service } from '@ember/service';
3
4
  import { tracked } from '@glimmer/tracking';
4
5
  import { action, computed, setProperties, set, get } from '@ember/object';
@@ -13,6 +14,7 @@ import isNotEmpty from '@fleetbase/ember-core/utils/is-not-empty';
13
14
  import getRoutingHost from '@fleetbase/ember-core/utils/get-routing-host';
14
15
  import groupBy from '@fleetbase/ember-core/utils/macros/group-by';
15
16
  import extractCoordinates from '@fleetbase/ember-core/utils/extract-coordinates';
17
+ import getWithDefault from '@fleetbase/ember-core/utils/get-with-default';
16
18
 
17
19
  L.Bounds.prototype.intersects = function (bounds) {
18
20
  var min = this.min,
@@ -25,10 +27,7 @@ L.Bounds.prototype.intersects = function (bounds) {
25
27
  return xIntersects && yIntersects;
26
28
  };
27
29
 
28
- export default class OperationsOrdersIndexNewController extends Controller {
29
- @controller('management.places.index') placesController;
30
- @controller('management.contacts.index') contactsController;
31
- @controller('management.vendors.index') vendorsController;
30
+ export default class OperationsOrdersIndexNewController extends BaseController {
32
31
  @controller('operations.orders.index') ordersController;
33
32
 
34
33
  /**
@@ -87,6 +86,13 @@ export default class OperationsOrdersIndexNewController extends Controller {
87
86
  */
88
87
  @service store;
89
88
 
89
+ /**
90
+ * Inject the `contextPanel` service
91
+ *
92
+ * @var {Service}
93
+ */
94
+ @service contextPanel;
95
+
90
96
  /**
91
97
  * Inject the `universe` service
92
98
  *
@@ -132,7 +138,6 @@ export default class OperationsOrdersIndexNewController extends Controller {
132
138
  @tracked routeProfile = 'driving';
133
139
  @tracked routeProfileOptions = ['driving', 'bycicle', 'walking'];
134
140
  @tracked podOptions = ['scan', 'signature'];
135
- @tracked isViewingRoutePreview = false;
136
141
  @tracked isCsvImportedOrder = false;
137
142
  @tracked routePreviewArray = [];
138
143
  @tracked previewRouteControl;
@@ -229,11 +234,6 @@ export default class OperationsOrdersIndexNewController extends Controller {
229
234
 
230
235
  if (importId) {
231
236
  const entities = this.entities.filter((entity) => entity._import_id === importId);
232
-
233
- // if (entities.length === 0) {
234
- // return;
235
- // }
236
-
237
237
  const group = {
238
238
  importId,
239
239
  waypoint,
@@ -289,8 +289,15 @@ export default class OperationsOrdersIndexNewController extends Controller {
289
289
  // trigger event that fleet-ops created an order
290
290
  this.universe.trigger('fleet-ops.order.created', order);
291
291
 
292
+ // get engine route prefix
293
+ let engineMountPoint = this.universe.getEngineMountPoint('@fleetbase/fleetops-engine');
294
+
295
+ if (!engineMountPoint.endsWith('.')) {
296
+ engineMountPoint = engineMountPoint + '.';
297
+ }
298
+
292
299
  // transition to order view
293
- return this.transitionToRoute('operations.orders.index.view', order).then(() => {
300
+ return this.hostRouter.transitionTo(`${engineMountPoint}operations.orders.index.view`, order).then(() => {
294
301
  this.notifications.success(`New Order ${order.public_id} Created`);
295
302
  this.loader.removeLoader();
296
303
  this.resetForm();
@@ -337,11 +344,7 @@ export default class OperationsOrdersIndexNewController extends Controller {
337
344
  { name: 'Type', valuePath: 'extension', key: 'type' },
338
345
  { name: 'File Name', valuePath: 'name', key: 'fileName' },
339
346
  { name: 'File Size', valuePath: 'size', key: 'fileSize' },
340
- {
341
- name: 'Upload Date',
342
- valuePath: 'blob.lastModifiedDate',
343
- key: 'uploadDate',
344
- },
347
+ { name: 'Upload Date', valuePath: 'file.lastModifiedDate', key: 'uploadDate' },
345
348
  { name: '', valuePath: '', key: 'delete' },
346
349
  ],
347
350
  acceptedFileTypes: ['application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'text/csv'],
@@ -367,7 +370,7 @@ export default class OperationsOrdersIndexNewController extends Controller {
367
370
  this.fetch.uploadFile.perform(
368
371
  file,
369
372
  {
370
- path: `uploads/order-imports/${this.currentUser.companyId}`,
373
+ path: `uploads/fleet-ops/order-imports/${this.currentUser.companyId}`,
371
374
  type: `order_import`,
372
375
  },
373
376
  (uploadedFile) => {
@@ -396,7 +399,6 @@ export default class OperationsOrdersIndexNewController extends Controller {
396
399
  this.modalsManager.setOption('isProcessing', true);
397
400
 
398
401
  const files = uploadedFiles.map((file) => file.id);
399
-
400
402
  let results;
401
403
 
402
404
  try {
@@ -405,28 +407,21 @@ export default class OperationsOrdersIndexNewController extends Controller {
405
407
  return this.notifications.serverError(error);
406
408
  }
407
409
 
408
- // import places
409
- if (isArray(results?.places)) {
410
- this.isMultipleDropoffOrder = true;
410
+ const places = get(results, 'places');
411
+ const entities = get(results, 'entities');
411
412
 
412
- // map into place models
413
- const waypoints = results.places.map((_place) => {
413
+ if (isArray(places)) {
414
+ this.isMultipleDropoffOrder = true;
415
+ this.waypoints = places.map((_place) => {
414
416
  const place = this.store.createRecord('place', _place);
415
-
416
417
  return this.store.createRecord('waypoint', { place });
417
418
  });
418
-
419
- this.waypoints = waypoints;
420
419
  }
421
420
 
422
- // import entities
423
- if (isArray(results?.entities)) {
424
- // map into entity models
425
- const entities = results.entities.map((entity) => {
421
+ if (isArray(entities)) {
422
+ this.entities = entities.map((entity) => {
426
423
  return this.store.createRecord('entity', entity);
427
424
  });
428
-
429
- this.entities = entities;
430
425
  }
431
426
 
432
427
  this.notifications.success('Import completed.');
@@ -436,8 +431,6 @@ export default class OperationsOrdersIndexNewController extends Controller {
436
431
  },
437
432
  decline: (modal) => {
438
433
  this.modalsManager.setOption('uploadQueue', []);
439
- this.fileQueue.flush();
440
-
441
434
  modal.done();
442
435
  },
443
436
  });
@@ -448,7 +441,7 @@ export default class OperationsOrdersIndexNewController extends Controller {
448
441
 
449
442
  if (on) {
450
443
  const company = this.store.peekRecord('company', this.currentUser.companyId);
451
- this.order.adhoc_distance = company?.options?.fleetops?.adhoc_distance ?? defaultDistanceInMeters;
444
+ this.order.adhoc_distance = getWithDefault(company, 'options.fleetops.adhoc_distance', defaultDistanceInMeters);
452
445
  } else {
453
446
  this.order.adhoc_distance = defaultDistanceInMeters;
454
447
  }
@@ -493,10 +486,13 @@ export default class OperationsOrdersIndexNewController extends Controller {
493
486
  }
494
487
  }
495
488
 
496
- @action newPlace() {
497
- if (this.placesController) {
498
- return this.placesController.createPlace();
499
- }
489
+ @action createPlace() {
490
+ const place = this.store.createRecord('place');
491
+ this.contextPanel.focus(place, 'editing');
492
+ }
493
+
494
+ @action editPlace(place) {
495
+ this.contextPanel.focus(place, 'editing');
500
496
  }
501
497
 
502
498
  @action async getQuotes(service) {
@@ -1293,11 +1289,23 @@ export default class OperationsOrdersIndexNewController extends Controller {
1293
1289
  const type = await this.modalsManager.userSelectOption('Select facilitator type', ['contact', 'vendor']);
1294
1290
 
1295
1291
  if (type === 'vendor') {
1296
- return this.vendorsController.createVendor();
1292
+ const vendor = this.store.createRecord('vendor', { type: 'facilitator', status: 'active' });
1293
+ return this.contextPanel.focus(vendor, 'editing', {
1294
+ onAfterSave: (vendor) => {
1295
+ this.setOrderFacilitator(vendor);
1296
+ this.contextPanel.clear();
1297
+ },
1298
+ });
1297
1299
  }
1298
1300
 
1299
1301
  if (type === 'contact') {
1300
- return this.contactsController.createContact();
1302
+ const contact = this.store.createRecord('contact', { type: 'facilitator', status: 'active' });
1303
+ return this.contextPanel.focus(contact, 'editing', {
1304
+ onAfterSave: (contact) => {
1305
+ this.setOrderFacilitator(contact);
1306
+ this.contextPanel.clear();
1307
+ },
1308
+ });
1301
1309
  }
1302
1310
  }
1303
1311
 
@@ -1305,11 +1313,23 @@ export default class OperationsOrdersIndexNewController extends Controller {
1305
1313
  const type = await this.modalsManager.userSelectOption('Select customer type', ['contact', 'vendor']);
1306
1314
 
1307
1315
  if (type === 'vendor') {
1308
- return this.vendorsController.createVendor();
1316
+ const vendor = this.store.createRecord('vendor', { type: 'customer', status: 'active' });
1317
+ return this.contextPanel.focus(vendor, 'editing', {
1318
+ onAfterSave: (vendor) => {
1319
+ this.setOrderCustomer(vendor);
1320
+ this.contextPanel.clear();
1321
+ },
1322
+ });
1309
1323
  }
1310
1324
 
1311
1325
  if (type === 'contact') {
1312
- return this.contactsController.createContact();
1326
+ const contact = this.store.createRecord('contact', { type: 'customer', status: 'active' });
1327
+ return this.contextPanel.focus(contact, 'editing', {
1328
+ onAfterSave: (contact) => {
1329
+ this.setOrderCustomer(contact);
1330
+ this.contextPanel.clear();
1331
+ },
1332
+ });
1313
1333
  }
1314
1334
  }
1315
1335
 
@@ -1,4 +1,5 @@
1
- import Controller, { inject as controller } from '@ember/controller';
1
+ import BaseController from '@fleetbase/fleetops-engine/controllers/base-controller';
2
+ import { inject as controller } from '@ember/controller';
2
3
  import { inject as service } from '@ember/service';
3
4
  import { tracked } from '@glimmer/tracking';
4
5
  import { action, computed } from '@ember/object';
@@ -10,7 +11,7 @@ import groupBy from '@fleetbase/ember-core/utils/macros/group-by';
10
11
  import findClosestWaypoint from '@fleetbase/ember-core/utils/find-closest-waypoint';
11
12
  import getRoutingHost from '@fleetbase/ember-core/utils/get-routing-host';
12
13
 
13
- export default class OperationsOrdersIndexViewController extends Controller {
14
+ export default class OperationsOrdersIndexViewController extends BaseController {
14
15
  /**
15
16
  * Inject the `operations.orders.index` controller
16
17
  *
@@ -220,7 +221,7 @@ export default class OperationsOrdersIndexViewController extends Controller {
220
221
  this.ordersController.setLayoutMode('map');
221
222
 
222
223
  // create initial setup function which runs 600ms after invoked
223
- const setup = (ms = 500) => {
224
+ const setup = (ms = 600) => {
224
225
  return later(
225
226
  this,
226
227
  () => {
@@ -237,7 +238,13 @@ export default class OperationsOrdersIndexViewController extends Controller {
237
238
 
238
239
  // create a display order route only function
239
240
  const displayOrderRoute = () => {
240
- return this.displayOrderRoute();
241
+ return later(
242
+ this,
243
+ () => {
244
+ return this.displayOrderRoute();
245
+ },
246
+ 300
247
+ );
241
248
  };
242
249
 
243
250
  // re-display order routes when livemap has coordinates
@@ -1,4 +1,4 @@
1
- import Controller from '@ember/controller';
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';
@@ -8,7 +8,7 @@ import { isBlank } from '@ember/utils';
8
8
  import { timeout } from 'ember-concurrency';
9
9
  import { task } from 'ember-concurrency-decorators';
10
10
 
11
- export default class OperationsOrdersIndexController extends Controller {
11
+ export default class OperationsOrdersIndexController extends BaseController {
12
12
  /**
13
13
  * Inject the `currentUser` service
14
14
  *
@@ -1,11 +1,11 @@
1
- import Controller from '@ember/controller';
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
  import { format, isValid as isValidDate } from 'date-fns';
6
6
  import createFullCalendarEventFromOrder from '../../../utils/create-full-calendar-event-from-order';
7
7
 
8
- export default class OperationsSchedulerIndexController extends Controller {
8
+ export default class OperationsSchedulerIndexController extends BaseController {
9
9
  @service modalsManager;
10
10
  @service notifications;
11
11
  @service store;