@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.
- package/addon/components/contact-form-panel.hbs +28 -6
- package/addon/components/driver-form-panel.hbs +10 -0
- package/addon/components/driver-form-panel.js +51 -0
- package/addon/components/driver-panel/details.hbs +1 -5
- package/addon/components/driver-panel.hbs +21 -3
- package/addon/components/fleet-form-panel.hbs +60 -6
- package/addon/components/fleet-listing-panel.hbs +2 -2
- package/addon/components/fleet-panel/details.hbs +1 -1
- package/addon/components/fuel-report-form-panel.hbs +84 -8
- package/addon/components/fuel-report-form-panel.js +6 -0
- package/addon/components/fuel-report-panel/details.hbs +4 -0
- package/addon/components/issue-form-panel.hbs +99 -11
- package/addon/components/issue-form-panel.js +5 -13
- package/addon/components/layout/fleet-ops-sidebar/fleet-listing.hbs +1 -0
- package/addon/components/layout/fleet-ops-sidebar/fleet-listing.js +3 -0
- package/addon/components/layout/fleet-ops-sidebar.hbs +4 -4
- package/addon/components/layout/fleet-ops-sidebar.js +10 -0
- package/addon/components/live-map-drawer.hbs +1 -1
- package/addon/components/live-map.hbs +1 -1
- package/addon/components/modals/driver-assign-vehicle.hbs +2 -11
- package/addon/components/modals/driver-assign-vendor.hbs +1 -9
- package/addon/components/modals/fuel-report-details.hbs +4 -0
- package/addon/components/order/schedule-card.hbs +32 -4
- package/addon/components/order/schedule-card.js +155 -5
- package/addon/components/place-form-panel.hbs +14 -7
- package/addon/components/place-form-panel.js +71 -0
- package/addon/components/place-panel/details.hbs +9 -19
- package/addon/components/vehicle-form-panel.hbs +67 -7
- package/addon/components/vehicle-form-panel.js +37 -0
- package/addon/components/vehicle-panel/details.hbs +9 -5
- package/addon/components/vehicle-panel.hbs +18 -4
- package/addon/components/vendor-form-panel/create-form.hbs +72 -11
- package/addon/components/vendor-form-panel/edit-form.hbs +1 -1
- package/addon/components/vendor-form-panel.hbs +70 -30
- package/addon/components/vendor-form-panel.js +4 -40
- package/addon/components/vendor-panel/details.hbs +2 -2
- package/addon/components/vendor-panel.hbs +16 -2
- package/addon/controllers/management/contacts/index.js +49 -3
- package/addon/controllers/management/drivers/index.js +7 -0
- package/addon/controllers/management/fleets/index.js +19 -23
- package/addon/controllers/management/fuel-reports/index/new.js +1 -1
- package/addon/controllers/management/fuel-reports/index.js +80 -20
- package/addon/controllers/management/issues/index/new.js +2 -2
- package/addon/controllers/management/issues/index.js +72 -45
- package/addon/controllers/management/places/index.js +65 -18
- package/addon/controllers/management/vehicles/index.js +56 -4
- package/addon/controllers/management/vendors/index.js +70 -8
- package/addon/controllers/operations/orders/index.js +42 -1
- package/addon/controllers/operations/service-rates/index.js +7 -0
- package/addon/routes/management/contacts/index.js +8 -0
- package/addon/routes/management/fleets/index.js +8 -2
- package/addon/routes/management/fuel-reports/index.js +6 -0
- package/addon/routes/management/issues/index.js +9 -1
- package/addon/routes/management/places/index.js +11 -1
- package/addon/routes/management/vehicles/index.js +1 -1
- package/addon/routes/management/vendors/index.js +8 -0
- package/addon/routes/operations/scheduler/index.js +1 -1
- package/addon/templates/management/contacts/index.hbs +1 -0
- package/addon/templates/management/drivers/index.hbs +2 -1
- package/addon/templates/management/fleets/index.hbs +23 -3
- package/addon/templates/management/fuel-reports/index.hbs +1 -0
- package/addon/templates/management/issues/index.hbs +22 -2
- package/addon/templates/management/places/index.hbs +9 -1
- package/addon/templates/management/vehicles/index.hbs +22 -2
- package/addon/templates/management/vendors/index.hbs +22 -2
- package/addon/templates/operations/orders/index.hbs +1 -1
- package/addon/templates/operations/service-rates/index.hbs +11 -3
- package/addon/utils/get-issue-categories.js +30 -0
- package/addon/utils/get-issue-types.js +3 -0
- package/addon/utils/get-vendor-status-options.js +3 -0
- package/addon/utils/get-vendor-type-options.js +41 -0
- package/app/components/layout/fleet-ops-sidebar/fleet-listing.js +1 -0
- package/app/utils/get-issue-categories.js +1 -0
- package/app/utils/get-issue-types.js +1 -0
- package/app/utils/get-vendor-categories.js +1 -0
- package/app/utils/get-vendor-status-options.js +1 -0
- package/app/utils/get-vendor-type-options.js +1 -0
- package/app/utils/get-vendor-types.js +1 -0
- package/composer.json +1 -1
- package/extension.json +1 -1
- package/package.json +4 -4
- package/server/migrations/2023_04_27_053456_create_contacts_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_drivers_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_entities_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_fleet_drivers_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_fleets_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_fuel_reports_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_issues_table.php +4 -4
- package/server/migrations/2023_04_27_053456_create_orders_table.php +8 -8
- package/server/migrations/2023_04_27_053456_create_payloads_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_places_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_purchase_rates_table.php +4 -4
- package/server/migrations/2023_04_27_053456_create_service_areas_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_service_quote_items_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_service_quotes_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_service_rate_fees_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_service_rate_parcel_fees_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_service_rates_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_tracking_numbers_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_tracking_statuses_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_vehicles_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_vendors_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_waypoints_table.php +4 -4
- package/server/migrations/2023_04_27_053456_create_zones_table.php +2 -2
- package/server/migrations/2023_11_09_041807_add_status_column_to_fuel_reports_table.php +32 -0
- package/server/migrations/2023_11_15_062814_add_comments_column_and_resolved_at_column_to_vehicle_device_events_table.php +33 -0
- package/server/migrations/2023_11_17_053001_add_category_uuid_to_entities_table.php +33 -0
- package/server/src/Http/Controllers/Api/v1/DriverController.php +2 -2
- package/server/src/Http/Controllers/Api/v1/EntityController.php +2 -0
- package/server/src/Http/Controllers/Api/v1/VehicleController.php +2 -2
- package/server/src/Http/Controllers/Internal/v1/DriverController.php +5 -14
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +1 -3
- package/server/src/Http/Filter/ContactFilter.php +10 -0
- package/server/src/Http/Filter/FleetFilter.php +8 -6
- package/server/src/Http/Filter/FuelReportFilter.php +51 -0
- package/server/src/Http/Filter/IssueFilter.php +61 -5
- package/server/src/Http/Filter/PlaceFilter.php +48 -6
- package/server/src/Http/Filter/VehicleFilter.php +21 -6
- package/server/src/Http/Filter/VendorFilter.php +11 -8
- package/server/src/Http/Middleware/TransformLocationMiddleware.php +1 -1
- package/server/src/Http/Resources/Internal/v1/IntegratedVendorFacilitator.php +17 -18
- package/server/src/Http/Resources/v1/Contact.php +16 -19
- package/server/src/Http/Resources/v1/CurrentJob.php +13 -16
- package/server/src/Http/Resources/v1/Driver.php +59 -57
- package/server/src/Http/Resources/v1/Entity.php +30 -33
- package/server/src/Http/Resources/v1/Fleet.php +19 -17
- package/server/src/Http/Resources/v1/FuelReport.php +16 -14
- package/server/src/Http/Resources/v1/Order.php +1 -1
- package/server/src/Http/Resources/v1/Payload.php +21 -24
- package/server/src/Http/Resources/v1/Place.php +27 -30
- package/server/src/Http/Resources/v1/Proof.php +13 -16
- package/server/src/Http/Resources/v1/PurchaseRate.php +14 -17
- package/server/src/Http/Resources/v1/ServiceArea.php +13 -16
- package/server/src/Http/Resources/v1/ServiceQuote.php +15 -18
- package/server/src/Http/Resources/v1/ServiceRate.php +33 -36
- package/server/src/Http/Resources/v1/ServiceRateFee.php +14 -17
- package/server/src/Http/Resources/v1/ServiceRateParcelFee.php +9 -12
- package/server/src/Http/Resources/v1/TrackingNumber.php +18 -21
- package/server/src/Http/Resources/v1/TrackingStatus.php +18 -21
- package/server/src/Http/Resources/v1/Vehicle.php +31 -34
- package/server/src/Http/Resources/v1/VehicleDevice.php +23 -25
- package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +38 -32
- package/server/src/Http/Resources/v1/Vendor.php +31 -26
- package/server/src/Http/Resources/v1/Zone.php +14 -17
- package/server/src/Models/Driver.php +23 -1
- package/server/src/Models/Entity.php +18 -23
- package/server/src/Models/FuelReport.php +1 -0
- package/server/src/Models/IntegratedVendor.php +6 -1
- package/server/src/Models/Order.php +2 -2
- package/server/src/Models/Place.php +2 -2
- package/server/src/Models/Vehicle.php +4 -2
- package/server/src/Models/VehicleDeviceEvent.php +1 -0
- package/server/src/Models/Vendor.php +1 -1
- 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', '
|
|
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 `
|
|
94
|
+
* The filterable param `public_id`
|
|
95
95
|
*
|
|
96
96
|
* @var {String}
|
|
97
97
|
*/
|
|
98
|
-
@tracked
|
|
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 `
|
|
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
|
|
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: '
|
|
152
|
-
valuePath: '
|
|
153
|
-
|
|
154
|
-
|
|
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: '
|
|
162
|
-
valuePath: '
|
|
163
|
-
cellComponent: '
|
|
164
|
-
|
|
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
|
-
|
|
186
|
+
filterParam: 'city',
|
|
169
187
|
filterComponent: 'filter/string',
|
|
170
188
|
},
|
|
171
189
|
{
|
|
172
|
-
label: '
|
|
173
|
-
valuePath: '
|
|
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 = [
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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/
|
|
198
|
-
|
|
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: '
|
|
264
|
+
width: '120px',
|
|
210
265
|
resizable: true,
|
|
211
266
|
sortable: true,
|
|
212
|
-
hidden: true,
|
|
213
267
|
filterable: true,
|
|
214
|
-
filterComponent: 'filter/
|
|
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:
|
|
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
|
-
|
|
18
|
+
public_id: { refreshModel: true },
|
|
19
19
|
zone: { refreshModel: true },
|
|
20
20
|
service_area: { refreshModel: true },
|
|
21
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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="
|
|
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
|
-
<
|
|
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
|
-
|
|
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
|
|
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}}
|