@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
|
@@ -61,7 +61,7 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
61
61
|
*
|
|
62
62
|
* @var {Array}
|
|
63
63
|
*/
|
|
64
|
-
queryParams = ['page', 'limit', 'sort', 'query', 'public_id', 'internal_id', 'created_by', 'updated_by', 'status'];
|
|
64
|
+
queryParams = ['page', 'limit', 'sort', 'query', 'public_id', 'internal_id', 'created_by', 'updated_by', 'status', 'title', 'email', 'phone', 'type'];
|
|
65
65
|
|
|
66
66
|
/**
|
|
67
67
|
* The current page of data being viewed
|
|
@@ -98,6 +98,34 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
98
98
|
*/
|
|
99
99
|
@tracked internal_id;
|
|
100
100
|
|
|
101
|
+
/**
|
|
102
|
+
* The filterable param `title`
|
|
103
|
+
*
|
|
104
|
+
* @var {String}
|
|
105
|
+
*/
|
|
106
|
+
@tracked title;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* The filterable param `email`
|
|
110
|
+
*
|
|
111
|
+
* @var {String}
|
|
112
|
+
*/
|
|
113
|
+
@tracked email;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* The filterable param `phone`
|
|
117
|
+
*
|
|
118
|
+
* @var {String}
|
|
119
|
+
*/
|
|
120
|
+
@tracked phone;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* The filterable param `email`
|
|
124
|
+
*
|
|
125
|
+
* @var {Array|String}
|
|
126
|
+
*/
|
|
127
|
+
@tracked type;
|
|
128
|
+
|
|
101
129
|
/**
|
|
102
130
|
* The filterable param `status`
|
|
103
131
|
*
|
|
@@ -149,6 +177,16 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
149
177
|
filterable: true,
|
|
150
178
|
filterComponent: 'filter/string',
|
|
151
179
|
},
|
|
180
|
+
{
|
|
181
|
+
label: 'Title',
|
|
182
|
+
valuePath: 'title',
|
|
183
|
+
cellComponent: 'click-to-copy',
|
|
184
|
+
width: '160px',
|
|
185
|
+
resizable: true,
|
|
186
|
+
sortable: true,
|
|
187
|
+
filterable: true,
|
|
188
|
+
filterComponent: 'filter/string',
|
|
189
|
+
},
|
|
152
190
|
{
|
|
153
191
|
label: 'Email',
|
|
154
192
|
valuePath: 'email',
|
|
@@ -173,11 +211,12 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
173
211
|
label: 'Type',
|
|
174
212
|
valuePath: 'type',
|
|
175
213
|
cellComponent: 'table/cell/status',
|
|
176
|
-
width: '
|
|
214
|
+
width: '100px',
|
|
177
215
|
resizable: true,
|
|
178
216
|
sortable: true,
|
|
179
217
|
filterable: true,
|
|
180
|
-
filterComponent: 'filter/
|
|
218
|
+
filterComponent: 'filter/multi-option',
|
|
219
|
+
filterOptions: ['contact', 'customer'],
|
|
181
220
|
},
|
|
182
221
|
{
|
|
183
222
|
label: 'Created At',
|
|
@@ -258,6 +297,13 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
258
297
|
this.query = value;
|
|
259
298
|
}
|
|
260
299
|
|
|
300
|
+
/**
|
|
301
|
+
* Reload layout view.
|
|
302
|
+
*/
|
|
303
|
+
@action reload() {
|
|
304
|
+
return this.hostRouter.refresh();
|
|
305
|
+
}
|
|
306
|
+
|
|
261
307
|
/**
|
|
262
308
|
* Toggles dialog to export `contact`
|
|
263
309
|
*
|
|
@@ -464,6 +464,13 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
464
464
|
this.layout = layout;
|
|
465
465
|
}
|
|
466
466
|
|
|
467
|
+
/**
|
|
468
|
+
* Reload layout view.
|
|
469
|
+
*/
|
|
470
|
+
@action reload() {
|
|
471
|
+
return this.hostRouter.refresh();
|
|
472
|
+
}
|
|
473
|
+
|
|
467
474
|
/**
|
|
468
475
|
* Bulk deletes selected `driver` via confirm prompt
|
|
469
476
|
*
|
|
@@ -75,7 +75,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
75
75
|
*
|
|
76
76
|
* @var {Array}
|
|
77
77
|
*/
|
|
78
|
-
queryParams = ['page', 'limit', 'sort', 'query', 'public_id', '
|
|
78
|
+
queryParams = ['page', 'limit', 'sort', 'query', 'public_id', 'zone', 'service_area', 'parent_fleet', 'vendor', 'created_by', 'updated_by', 'status', 'task', 'name'];
|
|
79
79
|
|
|
80
80
|
/**
|
|
81
81
|
* The current page of data being viewed
|
|
@@ -105,13 +105,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
105
105
|
*/
|
|
106
106
|
@tracked public_id;
|
|
107
107
|
|
|
108
|
-
/**
|
|
109
|
-
* The filterable param `internal_id`
|
|
110
|
-
*
|
|
111
|
-
* @var {String}
|
|
112
|
-
*/
|
|
113
|
-
@tracked internal_id;
|
|
114
|
-
|
|
115
108
|
/**
|
|
116
109
|
* The filterable param `service_area`
|
|
117
110
|
*
|
|
@@ -145,6 +138,13 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
145
138
|
*/
|
|
146
139
|
@tracked task;
|
|
147
140
|
|
|
141
|
+
/**
|
|
142
|
+
* The filterable param `task`
|
|
143
|
+
*
|
|
144
|
+
* @var {String}
|
|
145
|
+
*/
|
|
146
|
+
@tracked name;
|
|
147
|
+
|
|
148
148
|
/**
|
|
149
149
|
* The filterable param `status`
|
|
150
150
|
*
|
|
@@ -181,6 +181,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
181
181
|
resizable: true,
|
|
182
182
|
sortable: true,
|
|
183
183
|
filterable: true,
|
|
184
|
+
filterParam: 'name',
|
|
184
185
|
filterComponent: 'filter/string',
|
|
185
186
|
},
|
|
186
187
|
{
|
|
@@ -206,7 +207,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
206
207
|
filterable: true,
|
|
207
208
|
filterComponent: 'filter/model',
|
|
208
209
|
filterComponentPlaceholder: 'Select fleet',
|
|
209
|
-
filterParam: '
|
|
210
|
+
filterParam: 'parent_fleet_uuid',
|
|
210
211
|
model: 'fleet',
|
|
211
212
|
},
|
|
212
213
|
{
|
|
@@ -246,18 +247,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
246
247
|
filterable: true,
|
|
247
248
|
filterComponent: 'filter/string',
|
|
248
249
|
},
|
|
249
|
-
{
|
|
250
|
-
label: 'Internal ID',
|
|
251
|
-
valuePath: 'internal_id',
|
|
252
|
-
cellComponent: 'table/cell/anchor',
|
|
253
|
-
action: this.viewFleet,
|
|
254
|
-
width: '120px',
|
|
255
|
-
resizable: true,
|
|
256
|
-
sortable: true,
|
|
257
|
-
filterable: true,
|
|
258
|
-
hidden: true,
|
|
259
|
-
filterComponent: 'filter/string',
|
|
260
|
-
},
|
|
261
250
|
{
|
|
262
251
|
label: 'Manpower',
|
|
263
252
|
valuePath: 'drivers_count',
|
|
@@ -297,7 +286,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
297
286
|
},
|
|
298
287
|
{
|
|
299
288
|
label: 'Created At',
|
|
300
|
-
valuePath: '
|
|
289
|
+
valuePath: 'createdAt',
|
|
301
290
|
sortParam: 'created_at',
|
|
302
291
|
width: '120px',
|
|
303
292
|
resizable: true,
|
|
@@ -307,7 +296,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
307
296
|
},
|
|
308
297
|
{
|
|
309
298
|
label: 'Updated At',
|
|
310
|
-
valuePath: '
|
|
299
|
+
valuePath: 'updatedAt',
|
|
311
300
|
sortParam: 'updated_at',
|
|
312
301
|
width: '120px',
|
|
313
302
|
resizable: true,
|
|
@@ -396,6 +385,13 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
396
385
|
});
|
|
397
386
|
}
|
|
398
387
|
|
|
388
|
+
/**
|
|
389
|
+
* Reload layout view.
|
|
390
|
+
*/
|
|
391
|
+
@action reload() {
|
|
392
|
+
return this.hostRouter.refresh();
|
|
393
|
+
}
|
|
394
|
+
|
|
399
395
|
/**
|
|
400
396
|
* Toggles dialog to export `fleet`
|
|
401
397
|
*
|
|
@@ -79,7 +79,7 @@ export default class ManagementFuelReportsIndexNewController extends Controller
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
this.hostRouter.refresh();
|
|
82
|
-
return this.hostRouter.transitionTo('console.fleet-ops.management.fuel-reports.index.details', fuelReport).then(() => {
|
|
82
|
+
return this.hostRouter.transitionTo('console.fleet-ops.management.fuel-reports.index.details', fuelReport.public_id).then(() => {
|
|
83
83
|
this.resetForm();
|
|
84
84
|
});
|
|
85
85
|
}
|
|
@@ -68,7 +68,7 @@ export default class ManagementFuelReportsIndexController extends Controller {
|
|
|
68
68
|
*
|
|
69
69
|
* @var {Array}
|
|
70
70
|
*/
|
|
71
|
-
queryParams = ['page', 'limit', 'sort', 'query', 'public_id', 'internal_id', 'vehicle', 'driver', 'created_by', 'updated_by', 'status'];
|
|
71
|
+
queryParams = ['page', 'limit', 'sort', 'query', 'public_id', 'internal_id', 'vehicle', 'driver', 'created_by', 'updated_by', 'status', 'country', 'volume', 'odometer'];
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
74
|
* The current page of data being viewed
|
|
@@ -119,6 +119,27 @@ export default class ManagementFuelReportsIndexController extends Controller {
|
|
|
119
119
|
*/
|
|
120
120
|
@tracked vehicle;
|
|
121
121
|
|
|
122
|
+
/**
|
|
123
|
+
* The filterable param `vehicle`
|
|
124
|
+
*
|
|
125
|
+
* @var {String}
|
|
126
|
+
*/
|
|
127
|
+
@tracked reporter;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* The filterable param `vehicle`
|
|
131
|
+
*
|
|
132
|
+
* @var {String}
|
|
133
|
+
*/
|
|
134
|
+
@tracked volume;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* The filterable param `vehicle`
|
|
138
|
+
*
|
|
139
|
+
* @var {String}
|
|
140
|
+
*/
|
|
141
|
+
@tracked odometer;
|
|
142
|
+
|
|
122
143
|
/**
|
|
123
144
|
* The filterable param `status`
|
|
124
145
|
*
|
|
@@ -135,14 +156,34 @@ export default class ManagementFuelReportsIndexController extends Controller {
|
|
|
135
156
|
{
|
|
136
157
|
label: 'ID',
|
|
137
158
|
valuePath: 'public_id',
|
|
138
|
-
width: '
|
|
139
|
-
cellComponent: '
|
|
140
|
-
action: this.viewFuelReport,
|
|
159
|
+
width: '130px',
|
|
160
|
+
cellComponent: 'click-to-copy',
|
|
141
161
|
resizable: true,
|
|
142
162
|
sortable: true,
|
|
143
163
|
filterable: true,
|
|
164
|
+
hidden: false,
|
|
144
165
|
filterComponent: 'filter/string',
|
|
145
166
|
},
|
|
167
|
+
{
|
|
168
|
+
label: 'Reporter',
|
|
169
|
+
valuePath: 'reporter_name',
|
|
170
|
+
width: '100px',
|
|
171
|
+
cellComponent: 'table/cell/anchor',
|
|
172
|
+
onClick: async (issue) => {
|
|
173
|
+
let reporter = await issue.loadDReporter();
|
|
174
|
+
|
|
175
|
+
if (reporter) {
|
|
176
|
+
this.contextPanel.focus(reporter);
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
resizable: true,
|
|
180
|
+
sortable: true,
|
|
181
|
+
filterable: true,
|
|
182
|
+
filterComponent: 'filter/model',
|
|
183
|
+
filterComponentPlaceholder: 'Select reporter',
|
|
184
|
+
filterParam: 'reporter',
|
|
185
|
+
model: 'user',
|
|
186
|
+
},
|
|
146
187
|
{
|
|
147
188
|
label: 'Driver',
|
|
148
189
|
valuePath: 'driver_name',
|
|
@@ -166,10 +207,10 @@ export default class ManagementFuelReportsIndexController extends Controller {
|
|
|
166
207
|
{
|
|
167
208
|
label: 'Vehicle',
|
|
168
209
|
valuePath: 'vehicle_name',
|
|
169
|
-
width: '
|
|
210
|
+
width: '100px',
|
|
170
211
|
cellComponent: 'table/cell/anchor',
|
|
171
|
-
onClick: async (
|
|
172
|
-
let vehicle = await
|
|
212
|
+
onClick: async (issue) => {
|
|
213
|
+
let vehicle = await issue.loadVehicle();
|
|
173
214
|
|
|
174
215
|
if (vehicle) {
|
|
175
216
|
this.contextPanel.focus(vehicle);
|
|
@@ -182,34 +223,46 @@ export default class ManagementFuelReportsIndexController extends Controller {
|
|
|
182
223
|
filterComponentPlaceholder: 'Select vehicle',
|
|
183
224
|
filterParam: 'vehicle',
|
|
184
225
|
model: 'vehicle',
|
|
226
|
+
modelNamePath: 'displayName',
|
|
185
227
|
},
|
|
186
228
|
{
|
|
187
|
-
label: '
|
|
188
|
-
valuePath: '
|
|
189
|
-
cellComponent: 'table/cell/
|
|
229
|
+
label: 'Status',
|
|
230
|
+
valuePath: 'status',
|
|
231
|
+
cellComponent: 'table/cell/status',
|
|
190
232
|
width: '100px',
|
|
191
233
|
resizable: true,
|
|
192
234
|
sortable: true,
|
|
193
|
-
hidden: true,
|
|
194
235
|
filterable: true,
|
|
236
|
+
filterComponent: 'filter/multi-option',
|
|
237
|
+
filterOptions: ['draft', 'pending-approval', 'approved', 'rejected', 'revised', 'submitted', 'in-review', 'confirmed', 'processed', 'archived', 'cancelled'],
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
label: 'volume',
|
|
241
|
+
valuePath: 'volume',
|
|
242
|
+
width: '130px',
|
|
243
|
+
cellComponent: 'click-to-copy',
|
|
244
|
+
resizable: true,
|
|
245
|
+
sortable: true,
|
|
246
|
+
filterable: true,
|
|
247
|
+
hidden: false,
|
|
195
248
|
filterComponent: 'filter/string',
|
|
196
249
|
},
|
|
197
250
|
{
|
|
198
|
-
label: '
|
|
199
|
-
valuePath: '
|
|
200
|
-
|
|
201
|
-
|
|
251
|
+
label: 'odometer',
|
|
252
|
+
valuePath: 'odometer',
|
|
253
|
+
width: '130px',
|
|
254
|
+
cellComponent: 'click-to-copy',
|
|
202
255
|
resizable: true,
|
|
203
256
|
sortable: true,
|
|
204
257
|
filterable: true,
|
|
205
|
-
|
|
206
|
-
|
|
258
|
+
hidden: false,
|
|
259
|
+
filterComponent: 'filter/string',
|
|
207
260
|
},
|
|
208
261
|
{
|
|
209
262
|
label: 'Created At',
|
|
210
263
|
valuePath: 'createdAt',
|
|
211
264
|
sortParam: 'created_at',
|
|
212
|
-
width: '
|
|
265
|
+
width: '120px',
|
|
213
266
|
resizable: true,
|
|
214
267
|
sortable: true,
|
|
215
268
|
filterable: true,
|
|
@@ -219,7 +272,7 @@ export default class ManagementFuelReportsIndexController extends Controller {
|
|
|
219
272
|
label: 'Updated At',
|
|
220
273
|
valuePath: 'updatedAt',
|
|
221
274
|
sortParam: 'updated_at',
|
|
222
|
-
width: '
|
|
275
|
+
width: '120px',
|
|
223
276
|
resizable: true,
|
|
224
277
|
sortable: true,
|
|
225
278
|
hidden: true,
|
|
@@ -304,6 +357,13 @@ export default class ManagementFuelReportsIndexController extends Controller {
|
|
|
304
357
|
this.transitionToRoute('management.fuel-reports.index.details', fuelReport);
|
|
305
358
|
}
|
|
306
359
|
|
|
360
|
+
/**
|
|
361
|
+
* Reload layout view.
|
|
362
|
+
*/
|
|
363
|
+
@action reload() {
|
|
364
|
+
return this.hostRouter.refresh();
|
|
365
|
+
}
|
|
366
|
+
|
|
307
367
|
/**
|
|
308
368
|
* Create a new fuel report
|
|
309
369
|
*
|
|
@@ -348,7 +408,7 @@ export default class ManagementFuelReportsIndexController extends Controller {
|
|
|
348
408
|
@action bulkDeleteFuelReports() {
|
|
349
409
|
const selected = this.table.selectedRows;
|
|
350
410
|
|
|
351
|
-
this.crud.
|
|
411
|
+
this.crud.bulkDelete(selected, {
|
|
352
412
|
modelNamePath: `name`,
|
|
353
413
|
acceptButtonText: 'Delete Fuel Reports',
|
|
354
414
|
onSuccess: () => {
|
|
@@ -43,7 +43,7 @@ export default class ManagementIssuesIndexNewController extends Controller {
|
|
|
43
43
|
*
|
|
44
44
|
* @var {issueModel}
|
|
45
45
|
*/
|
|
46
|
-
@tracked issue = this.store.createRecord('issue', { reporter: this.currentUser.user, status: 'pending', priority: 'low' });
|
|
46
|
+
@tracked issue = this.store.createRecord('issue', { reporter: this.currentUser.user, status: 'pending', priority: 'low', type: 'operational' });
|
|
47
47
|
|
|
48
48
|
/**
|
|
49
49
|
* Set the overlay component context object.
|
|
@@ -89,6 +89,6 @@ export default class ManagementIssuesIndexNewController extends Controller {
|
|
|
89
89
|
* @memberof ManagementissuesIndexNewController
|
|
90
90
|
*/
|
|
91
91
|
resetForm() {
|
|
92
|
-
this.issue = this.store.createRecord('issue', { reporter: this.currentUser.user, status: 'pending', priority: 'low' });
|
|
92
|
+
this.issue = this.store.createRecord('issue', { reporter: this.currentUser.user, status: 'pending', priority: 'low', type: 'operational' });
|
|
93
93
|
}
|
|
94
94
|
}
|
|
@@ -5,6 +5,8 @@ import { action } from '@ember/object';
|
|
|
5
5
|
import { isBlank } from '@ember/object';
|
|
6
6
|
import { timeout } from 'ember-concurrency';
|
|
7
7
|
import { task } from 'ember-concurrency-decorators';
|
|
8
|
+
import getIssueTypes from '../../../utils/get-issue-types';
|
|
9
|
+
import getIssueCategories from '../../../utils/get-issue-categories';
|
|
8
10
|
|
|
9
11
|
export default class ManagementIssuesIndexController extends Controller {
|
|
10
12
|
/**
|
|
@@ -59,19 +61,18 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
59
61
|
'limit',
|
|
60
62
|
'sort',
|
|
61
63
|
'query',
|
|
62
|
-
'status',
|
|
63
64
|
'public_id',
|
|
64
|
-
'
|
|
65
|
-
'payload',
|
|
66
|
-
'tracking_number',
|
|
67
|
-
'facilitator',
|
|
68
|
-
'customer',
|
|
65
|
+
'issue_id',
|
|
69
66
|
'driver',
|
|
70
|
-
'
|
|
71
|
-
'
|
|
67
|
+
'vehicle',
|
|
68
|
+
'assignee',
|
|
69
|
+
'reporter',
|
|
72
70
|
'created_by',
|
|
73
71
|
'updated_by',
|
|
74
72
|
'status',
|
|
73
|
+
'priority',
|
|
74
|
+
'cateogry',
|
|
75
|
+
'type',
|
|
75
76
|
];
|
|
76
77
|
|
|
77
78
|
/**
|
|
@@ -103,81 +104,67 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
103
104
|
@tracked public_id;
|
|
104
105
|
|
|
105
106
|
/**
|
|
106
|
-
* The filterable param `
|
|
107
|
-
*
|
|
108
|
-
* @var {String}
|
|
109
|
-
*/
|
|
110
|
-
@tracked internal_id;
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* The filterable param `tracking` for `tracking_number`
|
|
107
|
+
* The filterable param `status`
|
|
114
108
|
*
|
|
115
109
|
* @var {String}
|
|
116
110
|
*/
|
|
117
|
-
@tracked
|
|
111
|
+
@tracked status;
|
|
118
112
|
|
|
119
113
|
/**
|
|
120
|
-
* The filterable param `
|
|
114
|
+
* The filterable param `priority`
|
|
121
115
|
*
|
|
122
|
-
* @var {String}
|
|
116
|
+
* @var {Array|String}
|
|
123
117
|
*/
|
|
124
|
-
@tracked
|
|
118
|
+
@tracked priority;
|
|
125
119
|
|
|
126
120
|
/**
|
|
127
|
-
* The filterable param `
|
|
121
|
+
* The filterable param `priority`
|
|
128
122
|
*
|
|
129
|
-
* @var {String}
|
|
123
|
+
* @var {Array|String}
|
|
130
124
|
*/
|
|
131
|
-
@tracked
|
|
125
|
+
@tracked status;
|
|
132
126
|
|
|
133
127
|
/**
|
|
134
|
-
* The filterable param `
|
|
128
|
+
* The filterable param `type`
|
|
135
129
|
*
|
|
136
130
|
* @var {String}
|
|
137
131
|
*/
|
|
138
|
-
@tracked
|
|
132
|
+
@tracked type;
|
|
139
133
|
|
|
140
134
|
/**
|
|
141
|
-
* The filterable param `
|
|
135
|
+
* The filterable param `category`
|
|
142
136
|
*
|
|
143
137
|
* @var {String}
|
|
144
138
|
*/
|
|
145
|
-
@tracked
|
|
139
|
+
@tracked category;
|
|
146
140
|
|
|
147
141
|
/**
|
|
148
|
-
* The filterable param `
|
|
142
|
+
* The filterable param `vehicle`
|
|
149
143
|
*
|
|
150
144
|
* @var {String}
|
|
151
145
|
*/
|
|
152
|
-
@tracked
|
|
146
|
+
@tracked vehicle;
|
|
153
147
|
|
|
154
148
|
/**
|
|
155
|
-
* The filterable param `
|
|
149
|
+
* The filterable param `driver`
|
|
156
150
|
*
|
|
157
151
|
* @var {String}
|
|
158
152
|
*/
|
|
159
|
-
@tracked
|
|
153
|
+
@tracked driver;
|
|
160
154
|
|
|
161
155
|
/**
|
|
162
|
-
* The filterable param `
|
|
156
|
+
* The filterable param `assignee`
|
|
163
157
|
*
|
|
164
158
|
* @var {String}
|
|
165
159
|
*/
|
|
166
|
-
@tracked
|
|
160
|
+
@tracked assignee;
|
|
167
161
|
|
|
168
162
|
/**
|
|
169
|
-
* The filterable param `
|
|
163
|
+
* The filterable param `reporter`
|
|
170
164
|
*
|
|
171
165
|
* @var {String}
|
|
172
166
|
*/
|
|
173
|
-
@tracked
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* The filterable param `status`
|
|
177
|
-
*
|
|
178
|
-
* @var {Array}
|
|
179
|
-
*/
|
|
180
|
-
@tracked status;
|
|
167
|
+
@tracked reporter;
|
|
181
168
|
|
|
182
169
|
/**
|
|
183
170
|
* All columns applicable for orders
|
|
@@ -212,7 +199,9 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
212
199
|
resizable: true,
|
|
213
200
|
sortable: true,
|
|
214
201
|
filterable: true,
|
|
215
|
-
filterComponent: 'filter/
|
|
202
|
+
filterComponent: 'filter/select',
|
|
203
|
+
filterOptions: getIssueTypes(),
|
|
204
|
+
placeholder: 'Select issue type',
|
|
216
205
|
},
|
|
217
206
|
{
|
|
218
207
|
label: 'Category',
|
|
@@ -221,21 +210,49 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
221
210
|
resizable: true,
|
|
222
211
|
sortable: true,
|
|
223
212
|
filterable: true,
|
|
224
|
-
filterComponent: 'filter/
|
|
213
|
+
filterComponent: 'filter/select',
|
|
214
|
+
filterOptions: getIssueCategories(),
|
|
215
|
+
placeholder: 'Select issue category',
|
|
225
216
|
},
|
|
226
217
|
{
|
|
227
218
|
label: 'Reporter',
|
|
228
219
|
valuePath: 'reporter_name',
|
|
229
|
-
width: '
|
|
220
|
+
width: '100px',
|
|
221
|
+
cellComponent: 'table/cell/anchor',
|
|
222
|
+
onClick: async (issue) => {
|
|
223
|
+
let reporter = await issue.loadDReporter();
|
|
224
|
+
|
|
225
|
+
if (reporter) {
|
|
226
|
+
this.contextPanel.focus(reporter);
|
|
227
|
+
}
|
|
228
|
+
},
|
|
230
229
|
resizable: true,
|
|
231
230
|
sortable: true,
|
|
231
|
+
filterable: true,
|
|
232
|
+
filterComponent: 'filter/model',
|
|
233
|
+
filterComponentPlaceholder: 'Select reporter',
|
|
234
|
+
filterParam: 'reporter',
|
|
235
|
+
model: 'user',
|
|
232
236
|
},
|
|
233
237
|
{
|
|
234
238
|
label: 'Assignee',
|
|
235
239
|
valuePath: 'assignee_name',
|
|
236
240
|
width: '100px',
|
|
241
|
+
cellComponent: 'table/cell/anchor',
|
|
242
|
+
onClick: async (issue) => {
|
|
243
|
+
let assignee = await issue.loadDAssignee();
|
|
244
|
+
|
|
245
|
+
if (assignee) {
|
|
246
|
+
this.contextPanel.focus(assignee);
|
|
247
|
+
}
|
|
248
|
+
},
|
|
237
249
|
resizable: true,
|
|
238
250
|
sortable: true,
|
|
251
|
+
filterable: true,
|
|
252
|
+
filterComponent: 'filter/model',
|
|
253
|
+
filterComponentPlaceholder: 'Select assignee',
|
|
254
|
+
filterParam: 'assignee',
|
|
255
|
+
model: 'user',
|
|
239
256
|
},
|
|
240
257
|
{
|
|
241
258
|
label: 'Driver',
|
|
@@ -276,6 +293,7 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
276
293
|
filterComponentPlaceholder: 'Select vehicle',
|
|
277
294
|
filterParam: 'vehicle',
|
|
278
295
|
model: 'vehicle',
|
|
296
|
+
modelNamePath: 'displayName',
|
|
279
297
|
},
|
|
280
298
|
{
|
|
281
299
|
label: 'Status',
|
|
@@ -285,6 +303,8 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
285
303
|
resizable: true,
|
|
286
304
|
sortable: true,
|
|
287
305
|
filterable: true,
|
|
306
|
+
filterComponent: 'filter/multi-option',
|
|
307
|
+
filterOptions: ['pending', 'in-progress', 'backlogged', 'requires-update', 'in-review', 're-opened', 'duplicate', 'pending-review', 'escalated', 'completed', 'canceled'],
|
|
288
308
|
},
|
|
289
309
|
{
|
|
290
310
|
label: 'Created At',
|
|
@@ -374,6 +394,13 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
374
394
|
this.crud.export('issue');
|
|
375
395
|
}
|
|
376
396
|
|
|
397
|
+
/**
|
|
398
|
+
* Reload layout view.
|
|
399
|
+
*/
|
|
400
|
+
@action reload() {
|
|
401
|
+
return this.hostRouter.refresh();
|
|
402
|
+
}
|
|
403
|
+
|
|
377
404
|
/**
|
|
378
405
|
* View the selected issue
|
|
379
406
|
*
|