@fleetbase/fleetops-engine 0.3.3 → 0.3.5

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 (154) hide show
  1. package/addon/components/contact-form-panel.hbs +28 -6
  2. package/addon/components/driver-form-panel.hbs +10 -0
  3. package/addon/components/driver-form-panel.js +51 -0
  4. package/addon/components/driver-panel/details.hbs +1 -5
  5. package/addon/components/driver-panel.hbs +21 -3
  6. package/addon/components/fleet-form-panel.hbs +60 -6
  7. package/addon/components/fleet-listing-panel.hbs +2 -2
  8. package/addon/components/fleet-panel/details.hbs +1 -1
  9. package/addon/components/fuel-report-form-panel.hbs +84 -8
  10. package/addon/components/fuel-report-form-panel.js +6 -0
  11. package/addon/components/fuel-report-panel/details.hbs +4 -0
  12. package/addon/components/issue-form-panel.hbs +99 -11
  13. package/addon/components/issue-form-panel.js +5 -13
  14. package/addon/components/layout/fleet-ops-sidebar/fleet-listing.hbs +1 -0
  15. package/addon/components/layout/fleet-ops-sidebar/fleet-listing.js +3 -0
  16. package/addon/components/layout/fleet-ops-sidebar.hbs +4 -4
  17. package/addon/components/layout/fleet-ops-sidebar.js +10 -0
  18. package/addon/components/live-map-drawer.hbs +1 -1
  19. package/addon/components/live-map.hbs +1 -1
  20. package/addon/components/modals/driver-assign-vehicle.hbs +2 -11
  21. package/addon/components/modals/driver-assign-vendor.hbs +1 -9
  22. package/addon/components/modals/fuel-report-details.hbs +4 -0
  23. package/addon/components/order/schedule-card.hbs +32 -4
  24. package/addon/components/order/schedule-card.js +155 -5
  25. package/addon/components/place-form-panel.hbs +14 -7
  26. package/addon/components/place-form-panel.js +71 -0
  27. package/addon/components/place-panel/details.hbs +9 -19
  28. package/addon/components/vehicle-form-panel.hbs +67 -7
  29. package/addon/components/vehicle-form-panel.js +37 -0
  30. package/addon/components/vehicle-panel/details.hbs +9 -5
  31. package/addon/components/vehicle-panel.hbs +18 -4
  32. package/addon/components/vendor-form-panel/create-form.hbs +72 -11
  33. package/addon/components/vendor-form-panel/edit-form.hbs +1 -1
  34. package/addon/components/vendor-form-panel.hbs +70 -30
  35. package/addon/components/vendor-form-panel.js +4 -40
  36. package/addon/components/vendor-panel/details.hbs +2 -2
  37. package/addon/components/vendor-panel.hbs +16 -2
  38. package/addon/controllers/management/contacts/index.js +49 -3
  39. package/addon/controllers/management/drivers/index.js +7 -0
  40. package/addon/controllers/management/fleets/index.js +19 -23
  41. package/addon/controllers/management/fuel-reports/index/new.js +1 -1
  42. package/addon/controllers/management/fuel-reports/index.js +80 -20
  43. package/addon/controllers/management/issues/index/new.js +2 -2
  44. package/addon/controllers/management/issues/index.js +72 -45
  45. package/addon/controllers/management/places/index.js +65 -18
  46. package/addon/controllers/management/vehicles/index.js +56 -4
  47. package/addon/controllers/management/vendors/index.js +70 -8
  48. package/addon/controllers/operations/orders/index.js +42 -1
  49. package/addon/controllers/operations/service-rates/index.js +7 -0
  50. package/addon/routes/management/contacts/index.js +8 -0
  51. package/addon/routes/management/fleets/index.js +8 -2
  52. package/addon/routes/management/fuel-reports/index.js +6 -0
  53. package/addon/routes/management/issues/index.js +9 -1
  54. package/addon/routes/management/places/index.js +11 -1
  55. package/addon/routes/management/vehicles/index.js +1 -1
  56. package/addon/routes/management/vendors/index.js +8 -0
  57. package/addon/routes/operations/scheduler/index.js +1 -1
  58. package/addon/templates/management/contacts/index.hbs +1 -0
  59. package/addon/templates/management/drivers/index.hbs +2 -1
  60. package/addon/templates/management/fleets/index.hbs +23 -3
  61. package/addon/templates/management/fuel-reports/index.hbs +1 -0
  62. package/addon/templates/management/issues/index.hbs +22 -2
  63. package/addon/templates/management/places/index.hbs +9 -1
  64. package/addon/templates/management/vehicles/index.hbs +22 -2
  65. package/addon/templates/management/vendors/index.hbs +22 -2
  66. package/addon/templates/operations/orders/index.hbs +1 -1
  67. package/addon/templates/operations/service-rates/index.hbs +11 -3
  68. package/addon/utils/get-issue-categories.js +30 -0
  69. package/addon/utils/get-issue-types.js +3 -0
  70. package/addon/utils/get-vendor-status-options.js +3 -0
  71. package/addon/utils/get-vendor-type-options.js +41 -0
  72. package/app/components/layout/fleet-ops-sidebar/fleet-listing.js +1 -0
  73. package/app/utils/get-issue-categories.js +1 -0
  74. package/app/utils/get-issue-types.js +1 -0
  75. package/app/utils/get-vendor-categories.js +1 -0
  76. package/app/utils/get-vendor-status-options.js +1 -0
  77. package/app/utils/get-vendor-type-options.js +1 -0
  78. package/app/utils/get-vendor-types.js +1 -0
  79. package/composer.json +1 -1
  80. package/extension.json +1 -1
  81. package/package.json +4 -4
  82. package/server/migrations/2023_04_27_053456_create_contacts_table.php +2 -2
  83. package/server/migrations/2023_04_27_053456_create_drivers_table.php +5 -5
  84. package/server/migrations/2023_04_27_053456_create_entities_table.php +5 -5
  85. package/server/migrations/2023_04_27_053456_create_fleet_drivers_table.php +2 -2
  86. package/server/migrations/2023_04_27_053456_create_fleets_table.php +3 -3
  87. package/server/migrations/2023_04_27_053456_create_fuel_reports_table.php +3 -3
  88. package/server/migrations/2023_04_27_053456_create_issues_table.php +4 -4
  89. package/server/migrations/2023_04_27_053456_create_orders_table.php +8 -8
  90. package/server/migrations/2023_04_27_053456_create_payloads_table.php +5 -5
  91. package/server/migrations/2023_04_27_053456_create_places_table.php +1 -1
  92. package/server/migrations/2023_04_27_053456_create_purchase_rates_table.php +4 -4
  93. package/server/migrations/2023_04_27_053456_create_service_areas_table.php +2 -2
  94. package/server/migrations/2023_04_27_053456_create_service_quote_items_table.php +1 -1
  95. package/server/migrations/2023_04_27_053456_create_service_quotes_table.php +3 -3
  96. package/server/migrations/2023_04_27_053456_create_service_rate_fees_table.php +1 -1
  97. package/server/migrations/2023_04_27_053456_create_service_rate_parcel_fees_table.php +1 -1
  98. package/server/migrations/2023_04_27_053456_create_service_rates_table.php +3 -3
  99. package/server/migrations/2023_04_27_053456_create_tracking_numbers_table.php +3 -3
  100. package/server/migrations/2023_04_27_053456_create_tracking_statuses_table.php +2 -2
  101. package/server/migrations/2023_04_27_053456_create_vehicles_table.php +3 -3
  102. package/server/migrations/2023_04_27_053456_create_vendors_table.php +5 -5
  103. package/server/migrations/2023_04_27_053456_create_waypoints_table.php +4 -4
  104. package/server/migrations/2023_04_27_053456_create_zones_table.php +2 -2
  105. package/server/migrations/2023_11_09_041807_add_status_column_to_fuel_reports_table.php +32 -0
  106. package/server/migrations/2023_11_15_062814_add_comments_column_and_resolved_at_column_to_vehicle_device_events_table.php +33 -0
  107. package/server/migrations/2023_11_17_053001_add_category_uuid_to_entities_table.php +33 -0
  108. package/server/src/Http/Controllers/Api/v1/DriverController.php +2 -2
  109. package/server/src/Http/Controllers/Api/v1/EntityController.php +2 -0
  110. package/server/src/Http/Controllers/Api/v1/VehicleController.php +2 -2
  111. package/server/src/Http/Controllers/Internal/v1/DriverController.php +5 -14
  112. package/server/src/Http/Controllers/Internal/v1/OrderController.php +1 -3
  113. package/server/src/Http/Filter/ContactFilter.php +10 -0
  114. package/server/src/Http/Filter/FleetFilter.php +8 -6
  115. package/server/src/Http/Filter/FuelReportFilter.php +51 -0
  116. package/server/src/Http/Filter/IssueFilter.php +61 -5
  117. package/server/src/Http/Filter/PlaceFilter.php +48 -6
  118. package/server/src/Http/Filter/VehicleFilter.php +21 -6
  119. package/server/src/Http/Filter/VendorFilter.php +11 -8
  120. package/server/src/Http/Middleware/TransformLocationMiddleware.php +1 -1
  121. package/server/src/Http/Resources/Internal/v1/IntegratedVendorFacilitator.php +17 -18
  122. package/server/src/Http/Resources/v1/Contact.php +16 -19
  123. package/server/src/Http/Resources/v1/CurrentJob.php +13 -16
  124. package/server/src/Http/Resources/v1/Driver.php +59 -57
  125. package/server/src/Http/Resources/v1/Entity.php +30 -33
  126. package/server/src/Http/Resources/v1/Fleet.php +19 -17
  127. package/server/src/Http/Resources/v1/FuelReport.php +16 -14
  128. package/server/src/Http/Resources/v1/Order.php +1 -1
  129. package/server/src/Http/Resources/v1/Payload.php +21 -24
  130. package/server/src/Http/Resources/v1/Place.php +27 -30
  131. package/server/src/Http/Resources/v1/Proof.php +13 -16
  132. package/server/src/Http/Resources/v1/PurchaseRate.php +14 -17
  133. package/server/src/Http/Resources/v1/ServiceArea.php +13 -16
  134. package/server/src/Http/Resources/v1/ServiceQuote.php +15 -18
  135. package/server/src/Http/Resources/v1/ServiceRate.php +33 -36
  136. package/server/src/Http/Resources/v1/ServiceRateFee.php +14 -17
  137. package/server/src/Http/Resources/v1/ServiceRateParcelFee.php +9 -12
  138. package/server/src/Http/Resources/v1/TrackingNumber.php +18 -21
  139. package/server/src/Http/Resources/v1/TrackingStatus.php +18 -21
  140. package/server/src/Http/Resources/v1/Vehicle.php +31 -34
  141. package/server/src/Http/Resources/v1/VehicleDevice.php +23 -25
  142. package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +38 -32
  143. package/server/src/Http/Resources/v1/Vendor.php +31 -26
  144. package/server/src/Http/Resources/v1/Zone.php +14 -17
  145. package/server/src/Models/Driver.php +23 -1
  146. package/server/src/Models/Entity.php +18 -23
  147. package/server/src/Models/FuelReport.php +1 -0
  148. package/server/src/Models/IntegratedVendor.php +6 -1
  149. package/server/src/Models/Order.php +2 -2
  150. package/server/src/Models/Place.php +2 -2
  151. package/server/src/Models/Vehicle.php +4 -2
  152. package/server/src/Models/VehicleDeviceEvent.php +1 -0
  153. package/server/src/Models/Vendor.php +1 -1
  154. package/server/src/Observers/DriverObserver.php +15 -0
@@ -60,7 +60,7 @@ export default class ManagementPlacesIndexController extends Controller {
60
60
  *
61
61
  * @var {Array}
62
62
  */
63
- queryParams = ['page', 'limit', 'sort', 'query', 'public_id', 'internal_id', 'country', 'phone', 'email', 'created_at', 'updated_at'];
63
+ queryParams = ['name', 'page', 'limit', 'sort', 'query', 'public_id', 'country', 'phone', 'created_at', 'updated_at', 'city', 'neighborhood', 'state'];
64
64
 
65
65
  /**
66
66
  * The current page of data being viewed
@@ -91,11 +91,11 @@ export default class ManagementPlacesIndexController extends Controller {
91
91
  @tracked public_id;
92
92
 
93
93
  /**
94
- * The filterable param `internal_id`
94
+ * The filterable param `public_id`
95
95
  *
96
96
  * @var {String}
97
97
  */
98
- @tracked internal_id;
98
+ @tracked postal_code;
99
99
 
100
100
  /**
101
101
  * The filterable param `phone`
@@ -105,11 +105,18 @@ export default class ManagementPlacesIndexController extends Controller {
105
105
  @tracked phone;
106
106
 
107
107
  /**
108
- * The filterable param `email`
108
+ * The filterable param `city`
109
+ *
110
+ * @var {String}
111
+ */
112
+ @tracked city;
113
+
114
+ /**
115
+ * The filterable param `name`
109
116
  *
110
117
  * @var {String}
111
118
  */
112
- @tracked email;
119
+ @tracked name;
113
120
 
114
121
  /**
115
122
  * The filterable param `country`
@@ -118,6 +125,13 @@ export default class ManagementPlacesIndexController extends Controller {
118
125
  */
119
126
  @tracked country;
120
127
 
128
+ /**
129
+ * The filterable param `country`
130
+ *
131
+ * @var {String}
132
+ */
133
+ @tracked neighborhood;
134
+
121
135
  /**
122
136
  * All columns applicable for orders
123
137
  *
@@ -133,6 +147,7 @@ export default class ManagementPlacesIndexController extends Controller {
133
147
  resizable: true,
134
148
  sortable: true,
135
149
  filterable: true,
150
+ filterParam: 'name',
136
151
  filterComponent: 'filter/string',
137
152
  },
138
153
  {
@@ -148,34 +163,36 @@ export default class ManagementPlacesIndexController extends Controller {
148
163
  filterComponent: 'filter/string',
149
164
  },
150
165
  {
151
- label: 'ID',
152
- valuePath: 'public_id',
153
- width: '120px',
154
- cellComponent: 'click-to-copy',
166
+ label: 'State',
167
+ valuePath: 'state',
168
+ cellComponent: 'table/cell/anchor',
169
+ action: this.viewPlace,
170
+ width: '100px',
155
171
  resizable: true,
156
172
  sortable: true,
157
173
  filterable: true,
174
+ filterParam: 'state',
158
175
  filterComponent: 'filter/string',
159
176
  },
160
177
  {
161
- label: 'Internal ID',
162
- valuePath: 'internal_id',
163
- cellComponent: 'click-to-copy',
164
- width: '120px',
178
+ label: 'City',
179
+ valuePath: 'city',
180
+ cellComponent: 'table/cell/anchor',
181
+ action: this.viewPlace,
182
+ width: '100px',
165
183
  resizable: true,
166
184
  sortable: true,
167
185
  filterable: true,
168
- hidden: true,
186
+ filterParam: 'city',
169
187
  filterComponent: 'filter/string',
170
188
  },
171
189
  {
172
- label: 'Email',
173
- valuePath: 'email',
174
- cellComponent: 'table/cell/base',
190
+ label: 'ID',
191
+ valuePath: 'public_id',
175
192
  width: '120px',
193
+ cellComponent: 'click-to-copy',
176
194
  resizable: true,
177
195
  sortable: true,
178
- hidden: true,
179
196
  filterable: true,
180
197
  filterComponent: 'filter/string',
181
198
  },
@@ -202,6 +219,29 @@ export default class ManagementPlacesIndexController extends Controller {
202
219
  filterComponent: 'filter/country',
203
220
  filterParam: 'country',
204
221
  },
222
+ {
223
+ label: 'Neighborhood',
224
+ valuePath: 'neighborhood',
225
+ cellComponent: 'table/cell/anchor',
226
+ action: this.viewPlace,
227
+ width: '100px',
228
+ resizable: true,
229
+ sortable: true,
230
+ filterable: true,
231
+ filterParam: 'neighborhood',
232
+ filterComponent: 'filter/string',
233
+ },
234
+ {
235
+ label: 'Postal Code',
236
+ valuePath: 'postal_code',
237
+ cellComponent: 'table/cell/anchor',
238
+ action: this.viewPlace,
239
+ width: '100px',
240
+ resizable: true,
241
+ sortable: true,
242
+ filterable: true,
243
+ filterComponent: 'filter/string',
244
+ },
205
245
  {
206
246
  label: 'Created At',
207
247
  valuePath: 'createdAt',
@@ -223,6 +263,7 @@ export default class ManagementPlacesIndexController extends Controller {
223
263
  filterable: true,
224
264
  filterComponent: 'filter/date',
225
265
  },
266
+
226
267
  {
227
268
  label: '',
228
269
  cellComponent: 'table/cell/dropdown',
@@ -308,6 +349,12 @@ export default class ManagementPlacesIndexController extends Controller {
308
349
  return this.transitionToRoute('management.places.index.details', place);
309
350
  }
310
351
 
352
+ /**
353
+ * Reload layout view.
354
+ */
355
+ @action reload() {
356
+ return this.hostRouter.refresh();
357
+ }
311
358
  /**
312
359
  * Create a new place
313
360
  *
@@ -69,7 +69,24 @@ export default class ManagementVehiclesIndexController extends ManagementControl
69
69
  *
70
70
  * @var {Array}
71
71
  */
72
- queryParams = ['page', 'limit', 'sort', 'query', 'public_id', 'status', 'created_at', 'updated_at', 'created_by', 'updated_by'];
72
+ queryParams = [
73
+ 'page',
74
+ 'limit',
75
+ 'sort',
76
+ 'query',
77
+ 'public_id',
78
+ 'status',
79
+ 'created_at',
80
+ 'updated_at',
81
+ 'created_by',
82
+ 'updated_by',
83
+ 'name',
84
+ 'plate_number',
85
+ 'year',
86
+ 'vehicle_make',
87
+ 'vehicle_model',
88
+ 'display_name',
89
+ ];
73
90
 
74
91
  /**
75
92
  * The search query.
@@ -176,6 +193,13 @@ export default class ManagementVehiclesIndexController extends ManagementControl
176
193
  */
177
194
  @tracked driver;
178
195
 
196
+ /**
197
+ * The filterable param `display_name`.
198
+ *
199
+ * @var {String}
200
+ */
201
+ @tracked display_name;
202
+
179
203
  /**
180
204
  * TableComponent instance.
181
205
  *
@@ -214,7 +238,7 @@ export default class ManagementVehiclesIndexController extends ManagementControl
214
238
  sortable: true,
215
239
  filterable: true,
216
240
  filterComponent: 'filter/string',
217
- filterParam: 'name',
241
+ filterParam: 'display_name',
218
242
  showOnlineIndicator: true,
219
243
  },
220
244
  {
@@ -264,7 +288,7 @@ export default class ManagementVehiclesIndexController extends ManagementControl
264
288
  sortable: true,
265
289
  hidden: true,
266
290
  filterable: true,
267
- filterParam: 'vehicle_make',
291
+ filterParam: 'make',
268
292
  filterComponent: 'filter/string',
269
293
  },
270
294
  {
@@ -276,7 +300,7 @@ export default class ManagementVehiclesIndexController extends ManagementControl
276
300
  sortable: true,
277
301
  hidden: true,
278
302
  filterable: true,
279
- filterParam: 'vehicle_model',
303
+ filterParam: 'model',
280
304
  filterComponent: 'filter/string',
281
305
  },
282
306
  {
@@ -382,6 +406,13 @@ export default class ManagementVehiclesIndexController extends ManagementControl
382
406
  },
383
407
  ];
384
408
 
409
+ /**
410
+ * Reload layout view.
411
+ */
412
+ @action reload() {
413
+ return this.hostRouter.refresh();
414
+ }
415
+
385
416
  /**
386
417
  * Bulk deletes selected `vehicle` via confirm prompt
387
418
  *
@@ -490,4 +521,25 @@ export default class ManagementVehiclesIndexController extends ManagementControl
490
521
  * @void
491
522
  */
492
523
  @action assignDriver() {}
524
+
525
+ /**
526
+ * View a place location on map
527
+ *
528
+ * @param {PlaceModel} place
529
+ * @param {Object} options
530
+ * @void
531
+ */
532
+ @action viewOnMap(place, options = {}) {
533
+ const { latitude, longitude } = place;
534
+
535
+ this.modalsManager.show('modals/point-map', {
536
+ title: `Location of ${place.name}`,
537
+ acceptButtonText: 'Done',
538
+ hideDeclineButton: true,
539
+ latitude,
540
+ longitude,
541
+ location: [latitude, longitude],
542
+ ...options,
543
+ });
544
+ }
493
545
  }
@@ -5,7 +5,7 @@ import { action } from '@ember/object';
5
5
  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
9
  export default class ManagementVendorsIndexController extends Controller {
10
10
  /**
11
11
  * Inject the `management.places.index` controller
@@ -68,7 +68,7 @@ export default class ManagementVendorsIndexController extends Controller {
68
68
  *
69
69
  * @var {Array}
70
70
  */
71
- queryParams = ['page', 'limit', 'sort', 'query', 'public_id', 'internal_id', 'created_by', 'updated_by', 'status'];
71
+ queryParams = ['page', 'limit', 'sort', 'query', 'public_id', 'internal_id', 'created_by', 'updated_by', 'status', 'name', 'email', 'phone', 'type', 'country', 'address', 'website_url'];
72
72
 
73
73
  /**
74
74
  * The current page of data being viewed
@@ -112,6 +112,48 @@ export default class ManagementVendorsIndexController extends Controller {
112
112
  */
113
113
  @tracked status;
114
114
 
115
+ /**
116
+ * The filterable param `type`
117
+ *
118
+ * @var {Array|String}
119
+ */
120
+ @tracked type;
121
+
122
+ /**
123
+ * The filterable param `name`
124
+ *
125
+ * @var {String}
126
+ */
127
+ @tracked name;
128
+
129
+ /**
130
+ * The filterable param `website_url`
131
+ *
132
+ * @var {String}
133
+ */
134
+ @tracked website_url;
135
+
136
+ /**
137
+ * The filterable param `phone`
138
+ *
139
+ * @var {String}
140
+ */
141
+ @tracked phone;
142
+
143
+ /**
144
+ * The filterable param `email`
145
+ *
146
+ * @var {String}
147
+ */
148
+ @tracked email;
149
+
150
+ /**
151
+ * The filterable param `country`
152
+ *
153
+ * @var {String}
154
+ */
155
+ @tracked country;
156
+
115
157
  /**
116
158
  * Rows for the table
117
159
  *
@@ -168,6 +210,17 @@ export default class ManagementVendorsIndexController extends Controller {
168
210
  filterable: true,
169
211
  filterComponent: 'filter/string',
170
212
  },
213
+ {
214
+ label: 'Website URL',
215
+ valuePath: 'website_url',
216
+ cellComponent: 'click-to-copy',
217
+ width: '80px',
218
+ resizable: true,
219
+ sortable: true,
220
+ hidden: true,
221
+ filterable: true,
222
+ filterComponent: 'filter/string',
223
+ },
171
224
  {
172
225
  label: 'Phone',
173
226
  valuePath: 'phone',
@@ -194,11 +247,13 @@ export default class ManagementVendorsIndexController extends Controller {
194
247
  {
195
248
  label: 'Type',
196
249
  valuePath: 'type',
197
- cellComponent: 'table/cell/status',
198
- width: '120px',
250
+ cellComponent: 'table/cell/anchor',
251
+ action: this.viewVendorPlace,
252
+ width: '150px',
199
253
  resizable: true,
200
254
  sortable: true,
201
255
  filterable: true,
256
+ filterParam: 'type',
202
257
  filterComponent: 'filter/string',
203
258
  },
204
259
  {
@@ -206,12 +261,12 @@ export default class ManagementVendorsIndexController extends Controller {
206
261
  valuePath: 'country',
207
262
  cellComponent: 'table/cell/base',
208
263
  cellClassNames: 'uppercase',
209
- width: '130px',
264
+ width: '120px',
210
265
  resizable: true,
211
266
  sortable: true,
212
- hidden: true,
213
267
  filterable: true,
214
- filterComponent: 'filter/string',
268
+ filterComponent: 'filter/country',
269
+ filterParam: 'country',
215
270
  },
216
271
  {
217
272
  label: 'Created At',
@@ -243,7 +298,7 @@ export default class ManagementVendorsIndexController extends Controller {
243
298
  sortable: true,
244
299
  filterable: true,
245
300
  filterComponent: 'filter/multi-option',
246
- filterOptions: this.statusOptions,
301
+ filterOptions: getVendorStatusOptions(),
247
302
  },
248
303
  {
249
304
  label: '',
@@ -322,6 +377,13 @@ export default class ManagementVendorsIndexController extends Controller {
322
377
  return this.transitionToRoute('management.vendors.index.details', vendor);
323
378
  }
324
379
 
380
+ /**
381
+ * Reload layout view.
382
+ */
383
+ @action reload() {
384
+ return this.hostRouter.refresh();
385
+ }
386
+
325
387
  /**
326
388
  * Create a new `vendor` in modal
327
389
  *
@@ -96,6 +96,8 @@ export default class OperationsOrdersIndexController extends Controller {
96
96
  'status',
97
97
  'type',
98
98
  'layout',
99
+ 'drawerOpen',
100
+ 'drawerTab',
99
101
  ];
100
102
 
101
103
  /**
@@ -266,6 +268,20 @@ export default class OperationsOrdersIndexController extends Controller {
266
268
  */
267
269
  @tracked layout = 'map';
268
270
 
271
+ /**
272
+ * Decides if scope drawer is open.
273
+ *
274
+ * @type {Boolean}
275
+ */
276
+ @tracked drawerOpen = 0;
277
+
278
+ /**
279
+ * The drawer tab that is active.
280
+ *
281
+ * @type {Boolean}
282
+ */
283
+ @tracked drawerTab;
284
+
269
285
  /**
270
286
  * Flag to determine if the layout is 'map'
271
287
  *
@@ -732,10 +748,35 @@ export default class OperationsOrdersIndexController extends Controller {
732
748
  */
733
749
  @action onPressLiveMapDrawerToggle() {
734
750
  if (this.drawer) {
735
- this.drawer.toggleMinimize();
751
+ this.drawer.toggleMinimize({
752
+ onToggle: (drawerApi) => {
753
+ this.drawerOpen = drawerApi.isMinimized ? 0 : 1;
754
+ },
755
+ });
736
756
  }
737
757
  }
738
758
 
759
+ /**
760
+ * Handles the resize end event for the `<LiveMapDrawer />` component.
761
+ *
762
+ * @params {Object} event
763
+ * @params {Object.drawerPanelNode|HTMLElement}
764
+ * @memberof OperationsOrdersIndexController
765
+ */
766
+ @action onDrawerResizeEnd({ drawerPanelNode }) {
767
+ const rect = drawerPanelNode.getBoundingClientRect();
768
+
769
+ if (rect.height === 0) {
770
+ this.drawerOpen = 0;
771
+ } else if (rect.height > 1) {
772
+ this.drawerOpen = 1;
773
+ }
774
+ }
775
+
776
+ @action onDrawerTabChanged(tabName) {
777
+ this.drawerTab = tabName;
778
+ }
779
+
739
780
  /**
740
781
  * Exports all orders.
741
782
  * @action
@@ -228,6 +228,13 @@ export default class OperationsServiceRatesIndexController extends Controller {
228
228
  this.query = value;
229
229
  }
230
230
 
231
+ /**
232
+ * Reload layout view.
233
+ */
234
+ @action reload() {
235
+ return this.hostRouter.refresh();
236
+ }
237
+
231
238
  /**
232
239
  * Toggles dialog to export `service-rate`
233
240
  *
@@ -15,6 +15,14 @@ export default class ManagementContactsIndexRoute extends Route {
15
15
  sort: { refreshModel: true },
16
16
  query: { refreshModel: true },
17
17
  status: { refreshModel: true },
18
+ name: { refreshModel: true },
19
+ title: { refreshModel: true },
20
+ phone: { refreshModel: true },
21
+ email: { refreshModel: true },
22
+ type: { refreshModel: true },
23
+ internal_id: { refreshModel: true },
24
+ createdAt: { refreshModel: true },
25
+ updatedAt: { refreshModel: true },
18
26
  };
19
27
 
20
28
  model(params) {
@@ -15,11 +15,17 @@ export default class ManagementFleetsIndexRoute extends Route {
15
15
  sort: { refreshModel: true },
16
16
  query: { refreshModel: true },
17
17
  status: { refreshModel: true },
18
- internal_id: { refreshModel: true },
18
+ public_id: { refreshModel: true },
19
19
  zone: { refreshModel: true },
20
20
  service_area: { refreshModel: true },
21
- parent_fleet: { refreshModel: true },
21
+ parent_fleet_uuid: { refreshModel: true },
22
22
  task: { refreshModel: true },
23
+ name: { refreshModel: true },
24
+ vendor: { refreshModel: true },
25
+ drivers_count: { refreshModel: true },
26
+ drivers_online_count: { refreshModel: true },
27
+ createdAt: { refreshModel: true },
28
+ updatedAt: { refreshModel: true },
23
29
  };
24
30
 
25
31
  model(params) {
@@ -15,8 +15,14 @@ export default class ManagementFuelReportsIndexRoute extends Route {
15
15
  sort: { refreshModel: true },
16
16
  query: { refreshModel: true },
17
17
  vehicle: { refreshModel: true },
18
+ reporter: { refreshModel: true },
18
19
  driver: { refreshModel: true },
19
20
  status: { refreshModel: true },
21
+ createdAt: { refreshModel: true },
22
+ updatedAt: { refreshModel: true },
23
+ public_id: { refreshModel: true },
24
+ volume: { refreshModel: true },
25
+ odometer: { refreshModel: true },
20
26
  };
21
27
 
22
28
  model(params) {
@@ -14,8 +14,16 @@ export default class ManagementIssuesIndexRoute extends Route {
14
14
  limit: { refreshModel: true },
15
15
  sort: { refreshModel: true },
16
16
  query: { refreshModel: true },
17
- country: { refreshModel: true },
17
+ priority: { refreshModel: true },
18
18
  status: { refreshModel: true },
19
+ vehicle: { refreshModel: true },
20
+ driver: { refreshModel: true },
21
+ assignee: { refreshModel: true },
22
+ reporter: { refreshModel: true },
23
+ type: { refreshModel: true },
24
+ category: { refreshModel: true },
25
+ updatedAt: { refreshModel: true },
26
+ createdAt: { refreshModel: true },
19
27
  };
20
28
 
21
29
  model(params) {
@@ -15,9 +15,19 @@ export default class ManagementPlacesIndexRoute extends Route {
15
15
  sort: { refreshModel: true },
16
16
  query: { refreshModel: true },
17
17
  country: { refreshModel: true },
18
+ name: { refreshModel: true },
19
+ address: { refreshModel: true },
20
+ public_id: { refreshModel: true },
21
+ city: { refreshModel: true },
22
+ phone: { refreshModel: true },
23
+ neighborhood: { refreshModel: true },
24
+ postal_code: { refreshModel: true },
25
+ state: { refreshModel: true },
26
+ createdAt: { refreshModel: true },
27
+ updatedAt: { refreshModel: true },
18
28
  };
19
29
 
20
30
  model(params) {
21
- return this.store.query('place', { params });
31
+ return this.store.query('place', { ...params });
22
32
  }
23
33
  }
@@ -10,7 +10,7 @@ export default class ManagementVehiclesIndexRoute extends Route {
10
10
  sort: { refreshModel: true },
11
11
  query: { refreshModel: true },
12
12
  status: { refreshModel: true },
13
- name: { refreshModel: true },
13
+ display_name: { refreshModel: true },
14
14
  public_id: { refreshModel: true },
15
15
  vin: { refreshModel: true },
16
16
  plate_number: { refreshModel: true },
@@ -16,6 +16,14 @@ export default class ManagementVendorsIndexRoute extends Route {
16
16
  query: { refreshModel: true },
17
17
  country: { refreshModel: true },
18
18
  status: { refreshModel: true },
19
+ name: { refreshModel: true },
20
+ email: { refreshModel: true },
21
+ address: { refreshModel: true },
22
+ phone: { refreshModel: true },
23
+ type: { refreshModel: true },
24
+ createdAt: { refreshModel: true },
25
+ updatedAt: { refreshModel: true },
26
+ website_url: { refreshModel: true },
19
27
  };
20
28
 
21
29
  model(params) {
@@ -16,7 +16,7 @@ export default class OperationsSchedulerIndexRoute extends Route {
16
16
  @service store;
17
17
 
18
18
  model() {
19
- return this.store.query('order', { status: 'created', with: ['payload'] });
19
+ return this.store.query('order', { status: 'created', with: ['payload', 'driverAssigned.vehicle'] });
20
20
  }
21
21
 
22
22
  setupController(controller, model) {
@@ -1,4 +1,5 @@
1
1
  <Layout::Section::Header @title="Contacts" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
2
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
2
3
  <FiltersPicker
3
4
  @columns={{this.columns}}
4
5
  @onApply={{fn this.filters.apply this}}
@@ -4,7 +4,8 @@
4
4
  @searchQuery={{this.query}}
5
5
  @onSearch={{perform this.search}}
6
6
  >
7
- <Button @icon="grip-horizontal" @prefix="fas" @onClick={{fn this.changeLayout "grid"}} @disabled={{this.isGridLayout}} class="mr-2" />
7
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
8
+ <Button @icon="grip-horizontal" @prefix="fas" @onClick={{this.reload}} @disabled={{this.isGridLayout}} class="mr-2" />
8
9
  <Button @icon="table" @prefix="fas" @onClick={{fn this.changeLayout "table"}} @disabled={{this.isTableLayout}} class="mr-2" />
9
10
  <FiltersPicker
10
11
  @columns={{this.columns}}
@@ -1,7 +1,15 @@
1
1
  <Layout::Section::Header @title="Fleets" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
2
- <FiltersPicker @columns={{this.columns}} @onApply={{fn this.filters.apply this}} @onClear={{fn this.filters.reset this}} @onFilterClear={{this.filters.clear}} @onChange={{this.filters.set}} @buttonWrapperClass="mr-2" />
2
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
3
+ <FiltersPicker
4
+ @columns={{this.columns}}
5
+ @onApply={{fn this.filters.apply this}}
6
+ @onClear={{fn this.filters.reset this}}
7
+ @onFilterClear={{this.filters.clear}}
8
+ @onChange={{this.filters.set}}
9
+ @buttonWrapperClass="mr-2"
10
+ />
3
11
  <VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
4
- {{#if (safe-has this.table "selectedRows")}}
12
+ {{#if (safe-has this.table "selectedRows")}}
5
13
  <DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
6
14
  <div class="next-dd-menu mt-2 mx-0">
7
15
  <div class="px-1">
@@ -17,6 +25,18 @@
17
25
  </Layout::Section::Header>
18
26
 
19
27
  <Layout::Section::Body>
20
- <Table @rows={{@model}} @columns={{this.columns}} @selectable={{true}} @canSelectAll={{true}} @onSetup={{fn (mut this.table)}} @pagination={{true}} @paginationMeta={{@model.meta}} @page={{this.page}} @onPageChange={{fn (mut this.page)}} @tfootVerticalOffset="53" @tfootVerticalOffsetElements=".next-view-section-subheader" />
28
+ <Table
29
+ @rows={{@model}}
30
+ @columns={{this.columns}}
31
+ @selectable={{true}}
32
+ @canSelectAll={{true}}
33
+ @onSetup={{fn (mut this.table)}}
34
+ @pagination={{true}}
35
+ @paginationMeta={{@model.meta}}
36
+ @page={{this.page}}
37
+ @onPageChange={{fn (mut this.page)}}
38
+ @tfootVerticalOffset="53"
39
+ @tfootVerticalOffsetElements=".next-view-section-subheader"
40
+ />
21
41
  </Layout::Section::Body>
22
42
  {{outlet}}
@@ -1,4 +1,5 @@
1
1
  <Layout::Section::Header @title="Fuel Reports" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
2
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
2
3
  <FiltersPicker
3
4
  @columns={{this.columns}}
4
5
  @onApply={{fn this.filters.apply this}}