@fleetbase/fleetops-engine 0.3.0 → 0.3.2
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 +82 -0
- package/addon/components/contact-form-panel.js +195 -0
- package/addon/components/contact-panel/details.hbs +36 -0
- package/addon/components/contact-panel/details.js +3 -0
- package/addon/components/contact-panel.hbs +52 -0
- package/addon/components/contact-panel.js +161 -0
- package/addon/components/driver-form-panel.hbs +39 -55
- package/addon/components/driver-form-panel.js +41 -0
- package/addon/components/driver-panel/details.hbs +2 -2
- package/addon/components/driver-panel.hbs +12 -10
- package/addon/components/driver-panel.js +13 -0
- package/addon/components/fleet-form-panel.hbs +28 -28
- package/addon/components/fleet-form-panel.js +150 -1
- package/addon/components/fleet-listing-panel.hbs +8 -0
- package/addon/components/fleet-listing-panel.js +34 -0
- package/addon/components/fleet-panel/details.hbs +30 -0
- package/addon/components/fleet-panel/driver-listing.hbs +72 -0
- package/addon/components/fleet-panel/driver-listing.js +149 -0
- package/addon/components/fleet-panel/vehicle-listing.hbs +72 -0
- package/addon/components/fleet-panel/vehicle-listing.js +149 -0
- package/addon/components/fleet-panel.hbs +12 -58
- package/addon/components/fleet-panel.js +148 -26
- package/addon/components/fleet-vehicle-listing.hbs +0 -1
- package/addon/components/fuel-report-form-panel.hbs +41 -0
- package/addon/components/fuel-report-form-panel.js +122 -0
- package/addon/components/fuel-report-panel/details.hbs +38 -0
- package/addon/components/fuel-report-panel.hbs +30 -0
- package/addon/components/fuel-report-panel.js +161 -0
- package/addon/components/issue-form-panel.hbs +85 -0
- package/addon/components/issue-form-panel.js +211 -0
- package/addon/components/issue-panel/details.hbs +48 -0
- package/addon/components/issue-panel.hbs +30 -0
- package/addon/components/issue-panel.js +160 -0
- package/addon/components/layout/fleet-ops-sidebar.hbs +2 -2
- package/addon/components/live-map.js +2 -0
- package/addon/components/map-container/toolbar.hbs +9 -9
- package/addon/components/map-container/topbar.hbs +1 -1
- package/addon/components/modals/issue-details.hbs +38 -0
- package/addon/components/modals/issue-from.hbs +138 -0
- package/addon/components/place-form-panel.hbs +50 -0
- package/addon/components/place-form-panel.js +134 -0
- package/addon/components/place-panel/details.hbs +95 -0
- package/addon/components/place-panel.hbs +30 -0
- package/addon/components/place-panel.js +161 -0
- package/addon/components/vehicle-form-panel.hbs +35 -44
- package/addon/components/vehicle-form-panel.js +41 -0
- package/addon/components/vehicle-panel/details.hbs +8 -2
- package/addon/components/vehicle-panel.hbs +8 -6
- package/addon/components/vendor-form-panel/create-form.hbs +114 -0
- package/addon/components/vendor-form-panel/create-form.js +158 -0
- package/addon/components/vendor-form-panel/edit-form.hbs +98 -0
- package/addon/components/vendor-form-panel/edit-form.js +51 -0
- package/addon/components/vendor-form-panel.hbs +48 -0
- package/addon/components/vendor-form-panel.js +226 -0
- package/addon/components/vendor-panel/details.hbs +77 -0
- package/addon/components/vendor-panel/details.js +12 -0
- package/addon/components/vendor-panel.hbs +58 -0
- package/addon/components/vendor-panel.js +161 -0
- package/addon/controllers/management/contacts/index/details.js +55 -0
- package/addon/controllers/management/contacts/index/edit.js +111 -0
- package/addon/controllers/management/contacts/index/new.js +88 -0
- package/addon/controllers/management/contacts/index.js +23 -128
- package/addon/controllers/management/drivers/index/new.js +2 -2
- package/addon/controllers/management/drivers/index.js +18 -32
- package/addon/controllers/management/fleets/index/details.js +53 -0
- package/addon/controllers/management/fleets/index/edit.js +75 -41
- package/addon/controllers/management/fleets/index/new.js +42 -57
- package/addon/controllers/management/fleets/index.js +0 -1
- package/addon/controllers/management/fuel-reports/index/details.js +63 -0
- package/addon/controllers/management/fuel-reports/index/edit.js +111 -0
- package/addon/controllers/management/fuel-reports/index/new.js +95 -0
- package/addon/controllers/management/fuel-reports/index.js +57 -127
- package/addon/controllers/management/issues/index/details.js +54 -0
- package/addon/controllers/management/issues/index/edit.js +111 -0
- package/addon/controllers/management/issues/index/new.js +94 -0
- package/addon/controllers/management/issues/index.js +131 -26
- package/addon/controllers/management/places/index/details.js +55 -0
- package/addon/controllers/management/places/index/edit.js +111 -0
- package/addon/controllers/management/places/index/new.js +88 -0
- package/addon/controllers/management/places/index.js +21 -182
- package/addon/controllers/management/vehicles/index/new.js +2 -6
- package/addon/controllers/management/vendors/index/details.js +55 -0
- package/addon/controllers/management/vendors/index/edit.js +111 -0
- package/addon/controllers/management/vendors/index/new.js +88 -0
- package/addon/controllers/management/vendors/index.js +43 -247
- package/addon/routes/management/contacts/index/details.js +14 -0
- package/addon/routes/management/contacts/index/edit.js +10 -0
- package/addon/routes/management/contacts/index/new.js +3 -0
- package/addon/routes/management/contacts/index.js +1 -1
- package/addon/routes/management/fleets/index/details.js +1 -1
- package/addon/routes/management/fleets/index/edit.js +1 -1
- package/addon/routes/management/fleets/index.js +1 -1
- package/addon/routes/management/fuel-reports/index/details.js +14 -0
- package/addon/routes/management/fuel-reports/index/edit.js +10 -0
- package/addon/routes/management/fuel-reports/index/new.js +3 -0
- package/addon/routes/management/fuel-reports/index.js +3 -1
- package/addon/routes/management/issues/index/details.js +14 -0
- package/addon/routes/management/issues/index/edit.js +10 -0
- package/addon/routes/management/issues/index/new.js +3 -0
- package/addon/routes/management/issues/index.js +1 -1
- package/addon/routes/management/places/index/details.js +14 -0
- package/addon/routes/management/places/index/edit.js +10 -0
- package/addon/routes/management/places/index/new.js +3 -0
- package/addon/routes/management/places/index.js +6 -1
- package/addon/routes/management/vendors/index/details.js +15 -0
- package/addon/routes/management/vendors/index/edit.js +11 -0
- package/addon/routes/management/vendors/index/new.js +3 -0
- package/addon/routes/management/vendors/index.js +1 -0
- package/addon/routes.js +27 -7
- package/addon/services/context-panel.js +60 -0
- package/addon/templates/management/contacts/index/details.hbs +1 -0
- package/addon/templates/management/contacts/index/edit.hbs +1 -0
- package/addon/templates/management/contacts/index/new.hbs +1 -0
- package/addon/templates/management/contacts/index.hbs +22 -3
- package/addon/templates/management/drivers/index.hbs +29 -5
- package/addon/templates/management/fleets/index/details.hbs +1 -1
- package/addon/templates/management/fleets/index/edit.hbs +1 -1
- package/addon/templates/management/fleets/index/new.hbs +1 -1
- package/addon/templates/management/fuel-reports/index/details.hbs +1 -0
- package/addon/templates/management/fuel-reports/index/edit.hbs +1 -0
- package/addon/templates/management/fuel-reports/index/new.hbs +1 -0
- package/addon/templates/management/fuel-reports/index.hbs +25 -4
- package/addon/templates/management/issues/index/details.hbs +1 -0
- package/addon/templates/management/issues/index/edit.hbs +1 -0
- package/addon/templates/management/issues/index/new.hbs +1 -0
- package/addon/templates/management/issues/index.hbs +5 -3
- package/addon/templates/management/places/index/details.hbs +1 -0
- package/addon/templates/management/places/index/edit.hbs +1 -0
- package/addon/templates/management/places/index/new.hbs +1 -0
- package/addon/templates/management/vendors/index/details.hbs +1 -0
- package/addon/templates/management/vendors/index/edit.hbs +1 -0
- package/addon/templates/management/vendors/index/new.hbs +1 -0
- package/addon/templates/operations/orders/index.hbs +3 -3
- package/app/components/contact-form-panel.js +1 -0
- package/app/components/contact-panel/details.js +1 -0
- package/app/components/contact-panel.js +1 -0
- package/app/components/fleet-listing-panel.js +1 -0
- package/app/components/fleet-panel/details.js +1 -0
- package/app/components/fleet-panel/driver-listing.js +1 -0
- package/app/components/fleet-panel/vehicle-listing.js +1 -0
- package/app/components/fuel-report-form-panel.js +1 -0
- package/app/components/fuel-report-panel.js +1 -0
- package/app/components/issue-form-panel.js +1 -0
- package/app/components/issue-panel.js +1 -0
- package/app/components/place-form-panel.js +1 -0
- package/app/components/place-panel.js +1 -0
- package/app/components/vendor-form-panel/create-form.js +1 -0
- package/app/components/vendor-form-panel/edit-form.js +1 -0
- package/app/components/vendor-form-panel.js +1 -0
- package/app/components/vendor-panel/details.js +1 -0
- package/app/components/vendor-panel.js +1 -0
- package/app/controllers/management/contacts/index/details.js +1 -0
- package/app/controllers/management/contacts/index/edit.js +1 -0
- package/app/controllers/management/contacts/index/new.js +1 -0
- package/app/controllers/management/fuel-reports/index/details.js +1 -0
- package/app/controllers/management/fuel-reports/index/edit.js +1 -0
- package/app/controllers/management/fuel-reports/index/new.js +1 -0
- package/app/controllers/management/issues/index/details.js +1 -0
- package/app/controllers/management/issues/index/edit.js +1 -0
- package/app/controllers/management/issues/index/new.js +1 -0
- package/app/controllers/management/places/index/details.js +1 -0
- package/app/controllers/management/places/index/edit.js +1 -0
- package/app/controllers/management/places/index/new.js +1 -0
- package/app/controllers/management/vendors/index/edit.js +1 -0
- package/app/controllers/management/vendors/index/new.js +1 -0
- package/app/routes/addon/routes/management/places/index/new.js +1 -0
- package/app/routes/management/contacts/index/details.js +1 -0
- package/app/routes/management/contacts/index/edit.js +1 -0
- package/app/routes/management/contacts/index/new.js +1 -0
- package/app/routes/management/fuel-reports/index/details.js +1 -0
- package/app/routes/management/fuel-reports/index/edit.js +1 -0
- package/app/routes/management/fuel-reports/index/new.js +1 -0
- package/app/routes/management/issues/index/details.js +1 -0
- package/app/routes/management/issues/index/edit.js +1 -0
- package/app/routes/management/issues/index/new.js +1 -0
- package/app/routes/management/places/index/details.js +1 -0
- package/app/routes/management/places/index/edit.js +1 -0
- package/app/routes/management/places/index/new.js +1 -0
- package/app/routes/management/vendors/index/details.js +1 -0
- package/app/routes/management/vendors/index/edit.js +1 -0
- package/app/routes/management/vendors/index/new.js +1 -0
- package/app/templates/addon/routes/management/places/index/new.js +1 -0
- package/app/templates/management/contacts/index/details.js +1 -0
- package/app/templates/management/contacts/index/edit.js +1 -0
- package/app/templates/management/contacts/index/new.js +1 -0
- package/app/templates/management/fuel-reports/index/details.js +1 -0
- package/app/templates/management/fuel-reports/index/edit.js +1 -0
- package/app/templates/management/fuel-reports/index/new.js +1 -0
- package/app/templates/management/issues/index/details.js +1 -0
- package/app/templates/management/issues/index/edit.js +1 -0
- package/app/templates/management/issues/index/new.js +1 -0
- package/app/templates/management/places/index/details.js +1 -0
- package/app/templates/management/places/index/edit.js +1 -0
- package/app/templates/management/places/index/new.js +1 -0
- package/app/templates/management/vendors/index/details.js +1 -0
- package/app/templates/management/vendors/index/edit.js +1 -0
- package/app/templates/management/vendors/index/new.js +1 -0
- package/composer.json +2 -2
- package/config/environment.js +2 -1
- package/extension.json +1 -1
- package/package.json +4 -3
- package/server/migrations/2023_11_03_072503_refactor_issues_table_columns.php +42 -0
- package/server/migrations/2023_11_06_040645_refactor_fuel_reports_table.php +38 -0
- package/server/src/Casts/Point.php +15 -1
- package/server/src/Http/Controllers/Internal/v1/DriverController.php +33 -15
- package/server/src/Http/Filter/FleetFilter.php +7 -0
- package/server/src/Http/Filter/FuelReportFilter.php +58 -0
- package/server/src/Http/Filter/IssueFilter.php +69 -0
- package/server/src/Http/Filter/VehicleFilter.php +10 -0
- package/server/src/Http/Middleware/TransformLocationMiddleware.php +48 -0
- package/server/src/Http/Resources/v1/Driver.php +1 -0
- package/server/src/Http/Resources/v1/Fleet.php +20 -21
- package/server/src/Http/Resources/v1/FuelReport.php +37 -35
- package/server/src/Http/Resources/v1/Issue.php +77 -0
- package/server/src/Http/Resources/v1/ParentFleet.php +60 -0
- package/server/src/Http/Resources/v1/SubFleet.php +60 -0
- package/server/src/Http/Resources/v1/Vehicle.php +4 -2
- package/server/src/Integrations/Lalamove/Lalamove.php +6 -6
- package/server/src/Models/Contact.php +7 -0
- package/server/src/Models/Driver.php +1 -1
- package/server/src/Models/Fleet.php +37 -4
- package/server/src/Models/FuelReport.php +53 -3
- package/server/src/Models/Issue.php +106 -7
- package/server/src/Models/Vehicle.php +1 -1
- package/server/src/Models/VehicleDevice.php +3 -1
- package/server/src/Models/VehicleDeviceEvent.php +7 -3
- package/server/src/Notifications/OrderAssigned.php +15 -0
- package/server/src/Notifications/OrderCanceled.php +15 -0
- package/server/src/Notifications/OrderDispatchFailed.php +15 -0
- package/server/src/Notifications/OrderDispatched.php +15 -0
- package/server/src/Notifications/OrderPing.php +15 -0
- package/server/src/Notifications/OrderSplit.php +26 -5
- package/server/src/Providers/FleetOpsServiceProvider.php +22 -0
- package/server/src/Providers/NotificationServiceProvider.php +43 -0
- package/server/src/routes.php +2 -2
|
@@ -188,9 +188,22 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
188
188
|
{
|
|
189
189
|
label: 'ID',
|
|
190
190
|
valuePath: 'public_id',
|
|
191
|
-
|
|
191
|
+
cellComponent: 'table/cell/anchor',
|
|
192
|
+
action: this.viewIssue,
|
|
193
|
+
width: '110px',
|
|
194
|
+
resizable: true,
|
|
195
|
+
sortable: true,
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
label: 'Priority',
|
|
199
|
+
valuePath: 'priority',
|
|
200
|
+
cellComponent: 'table/cell/status',
|
|
201
|
+
width: '100px',
|
|
192
202
|
resizable: true,
|
|
193
203
|
sortable: true,
|
|
204
|
+
filterable: true,
|
|
205
|
+
filterComponent: 'filter/multi-option',
|
|
206
|
+
filterOptions: ['low', 'medium', 'high', 'critical', 'scheduled-maintenance', 'operational-suggestion'],
|
|
194
207
|
},
|
|
195
208
|
{
|
|
196
209
|
label: 'Type',
|
|
@@ -202,38 +215,82 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
202
215
|
filterComponent: 'filter/string',
|
|
203
216
|
},
|
|
204
217
|
{
|
|
205
|
-
label: '
|
|
206
|
-
valuePath: '
|
|
218
|
+
label: 'Category',
|
|
219
|
+
valuePath: 'category',
|
|
207
220
|
width: '120px',
|
|
208
221
|
resizable: true,
|
|
209
222
|
sortable: true,
|
|
223
|
+
filterable: true,
|
|
224
|
+
filterComponent: 'filter/string',
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
label: 'Reporter',
|
|
228
|
+
valuePath: 'reporter_name',
|
|
229
|
+
width: '110px',
|
|
230
|
+
resizable: true,
|
|
231
|
+
sortable: true,
|
|
210
232
|
},
|
|
211
233
|
{
|
|
212
234
|
label: 'Assignee',
|
|
213
|
-
valuePath: '
|
|
214
|
-
width: '
|
|
235
|
+
valuePath: 'assignee_name',
|
|
236
|
+
width: '100px',
|
|
215
237
|
resizable: true,
|
|
216
238
|
sortable: true,
|
|
217
239
|
},
|
|
240
|
+
{
|
|
241
|
+
label: 'Driver',
|
|
242
|
+
valuePath: 'driver_name',
|
|
243
|
+
width: '100px',
|
|
244
|
+
cellComponent: 'table/cell/anchor',
|
|
245
|
+
onClick: async (issue) => {
|
|
246
|
+
let driver = await issue.loadDriver();
|
|
247
|
+
|
|
248
|
+
if (driver) {
|
|
249
|
+
this.contextPanel.focus(driver);
|
|
250
|
+
}
|
|
251
|
+
},
|
|
252
|
+
resizable: true,
|
|
253
|
+
sortable: true,
|
|
254
|
+
filterable: true,
|
|
255
|
+
filterComponent: 'filter/model',
|
|
256
|
+
filterComponentPlaceholder: 'Select driver',
|
|
257
|
+
filterParam: 'driver',
|
|
258
|
+
model: 'driver',
|
|
259
|
+
},
|
|
218
260
|
{
|
|
219
261
|
label: 'Vehicle',
|
|
220
|
-
valuePath: '
|
|
221
|
-
width: '
|
|
262
|
+
valuePath: 'vehicle_name',
|
|
263
|
+
width: '100px',
|
|
264
|
+
cellComponent: 'table/cell/anchor',
|
|
265
|
+
onClick: async (issue) => {
|
|
266
|
+
let vehicle = await issue.loadVehicle();
|
|
267
|
+
|
|
268
|
+
if (vehicle) {
|
|
269
|
+
this.contextPanel.focus(vehicle);
|
|
270
|
+
}
|
|
271
|
+
},
|
|
222
272
|
resizable: true,
|
|
223
273
|
sortable: true,
|
|
274
|
+
filterable: true,
|
|
275
|
+
filterComponent: 'filter/model',
|
|
276
|
+
filterComponentPlaceholder: 'Select vehicle',
|
|
277
|
+
filterParam: 'vehicle',
|
|
278
|
+
model: 'vehicle',
|
|
224
279
|
},
|
|
225
280
|
{
|
|
226
|
-
label: '
|
|
227
|
-
valuePath: '
|
|
281
|
+
label: 'Status',
|
|
282
|
+
valuePath: 'status',
|
|
283
|
+
cellComponent: 'table/cell/status',
|
|
228
284
|
width: '120px',
|
|
229
285
|
resizable: true,
|
|
230
286
|
sortable: true,
|
|
287
|
+
filterable: true,
|
|
231
288
|
},
|
|
232
289
|
{
|
|
233
290
|
label: 'Created At',
|
|
234
291
|
valuePath: 'createdAt',
|
|
235
292
|
sortParam: 'created_at',
|
|
236
|
-
width: '
|
|
293
|
+
width: '120px',
|
|
237
294
|
resizable: true,
|
|
238
295
|
sortable: true,
|
|
239
296
|
filterable: true,
|
|
@@ -243,7 +300,7 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
243
300
|
label: 'Updated At',
|
|
244
301
|
valuePath: 'updatedAt',
|
|
245
302
|
sortParam: 'updated_at',
|
|
246
|
-
width: '
|
|
303
|
+
width: '120px',
|
|
247
304
|
resizable: true,
|
|
248
305
|
sortable: true,
|
|
249
306
|
hidden: true,
|
|
@@ -256,24 +313,25 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
256
313
|
ddButtonText: false,
|
|
257
314
|
ddButtonIcon: 'ellipsis-h',
|
|
258
315
|
ddButtonIconPrefix: 'fas',
|
|
259
|
-
ddMenuLabel: '
|
|
316
|
+
ddMenuLabel: 'Issue Actions',
|
|
260
317
|
cellClassNames: 'overflow-visible',
|
|
261
|
-
|
|
318
|
+
wrapperClass: 'flex items-center justify-end mx-2',
|
|
319
|
+
width: '10%',
|
|
262
320
|
actions: [
|
|
263
321
|
{
|
|
264
322
|
label: 'View Details',
|
|
265
|
-
|
|
323
|
+
fn: this.viewIssue,
|
|
266
324
|
},
|
|
267
325
|
{
|
|
268
326
|
label: 'Edit Issue',
|
|
269
|
-
|
|
327
|
+
fn: this.editIssue,
|
|
270
328
|
},
|
|
271
329
|
{
|
|
272
330
|
separator: true,
|
|
273
331
|
},
|
|
274
332
|
{
|
|
275
333
|
label: 'Delete Issue',
|
|
276
|
-
|
|
334
|
+
fn: this.deleteIssue,
|
|
277
335
|
},
|
|
278
336
|
],
|
|
279
337
|
sortable: false,
|
|
@@ -308,7 +366,63 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
308
366
|
}
|
|
309
367
|
|
|
310
368
|
/**
|
|
311
|
-
*
|
|
369
|
+
* Toggles dialog to export a issue
|
|
370
|
+
*
|
|
371
|
+
* @void
|
|
372
|
+
*/
|
|
373
|
+
@action exportIssues() {
|
|
374
|
+
this.crud.export('issue');
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* View the selected issue
|
|
379
|
+
*
|
|
380
|
+
* @param {IssueModel} issue
|
|
381
|
+
* @param {Object} options
|
|
382
|
+
* @void
|
|
383
|
+
*/
|
|
384
|
+
@action viewIssue(issue) {
|
|
385
|
+
return this.transitionToRoute('management.issues.index.details', issue);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* Create a new `issue` in modal
|
|
390
|
+
*
|
|
391
|
+
* @void
|
|
392
|
+
*/
|
|
393
|
+
@action createIssue() {
|
|
394
|
+
return this.transitionToRoute('management.issues.index.new');
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Edit a `issue` details
|
|
399
|
+
*
|
|
400
|
+
* @param {IssueModel} issue
|
|
401
|
+
* @void
|
|
402
|
+
*/
|
|
403
|
+
@action editIssue(issue) {
|
|
404
|
+
return this.transitionToRoute('management.issues.index.edit', issue);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* Delete a `issue` via confirm prompt
|
|
409
|
+
*
|
|
410
|
+
* @param {IssueModel} issue
|
|
411
|
+
* @param {Object} options
|
|
412
|
+
* @void
|
|
413
|
+
*/
|
|
414
|
+
@action deleteIssue(issue, options = {}) {
|
|
415
|
+
this.crud.delete(issue, {
|
|
416
|
+
acceptButtonIcon: 'trash',
|
|
417
|
+
onConfirm: () => {
|
|
418
|
+
this.hostRouter.refresh();
|
|
419
|
+
},
|
|
420
|
+
...options,
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
/**
|
|
425
|
+
* Bulk deletes selected `issues` via confirm prompt
|
|
312
426
|
*
|
|
313
427
|
* @param {Array} selected an array of selected models
|
|
314
428
|
* @void
|
|
@@ -324,13 +438,4 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
324
438
|
},
|
|
325
439
|
});
|
|
326
440
|
}
|
|
327
|
-
|
|
328
|
-
/**
|
|
329
|
-
* Toggles dialog to export `issue`
|
|
330
|
-
*
|
|
331
|
-
* @void
|
|
332
|
-
*/
|
|
333
|
-
@action exportIssues() {
|
|
334
|
-
this.crud.export('issue');
|
|
335
|
-
}
|
|
336
441
|
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import Controller from '@ember/controller';
|
|
2
|
+
import { tracked } from '@glimmer/tracking';
|
|
3
|
+
import { action } from '@ember/object';
|
|
4
|
+
|
|
5
|
+
export default class ManagementPlacesIndexDetailsController extends Controller {
|
|
6
|
+
/**
|
|
7
|
+
* The currently active view tab ('details' by default).
|
|
8
|
+
*
|
|
9
|
+
* @type {String}
|
|
10
|
+
* @tracked
|
|
11
|
+
*/
|
|
12
|
+
@tracked view = 'details';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* An array of query parameters to be serialized in the URL.
|
|
16
|
+
*
|
|
17
|
+
* @type {String[]}
|
|
18
|
+
* @tracked
|
|
19
|
+
*/
|
|
20
|
+
@tracked queryParams = ['view'];
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Transitions back to the "management.places.index" route.
|
|
24
|
+
*
|
|
25
|
+
* @method
|
|
26
|
+
* @action
|
|
27
|
+
* @returns {Transition} The transition object representing the route change.
|
|
28
|
+
*/
|
|
29
|
+
@action transitionBack() {
|
|
30
|
+
return this.transitionToRoute('management.places.index');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Transitions to the edit view for a specific vehicle.
|
|
35
|
+
*
|
|
36
|
+
* @method
|
|
37
|
+
* @param {placeModel} place - The vehicle to be edited.
|
|
38
|
+
* @action
|
|
39
|
+
* @returns {Transition} The transition object representing the route change.
|
|
40
|
+
*/
|
|
41
|
+
@action onEdit(place) {
|
|
42
|
+
return this.transitionToRoute('management.places.index.edit', place);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Updates the active view tab.
|
|
47
|
+
*
|
|
48
|
+
* @method
|
|
49
|
+
* @param {String} tab - The name of the tab to activate.
|
|
50
|
+
* @action
|
|
51
|
+
*/
|
|
52
|
+
@action onTabChanged(tab) {
|
|
53
|
+
this.view = tab;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import Controller from '@ember/controller';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { action } from '@ember/object';
|
|
5
|
+
|
|
6
|
+
export default class ManagementPlacesIndexEditController extends Controller {
|
|
7
|
+
/**
|
|
8
|
+
* Inject the `hostRouter` service
|
|
9
|
+
*
|
|
10
|
+
* @memberof ManagementplacesIndexEditController
|
|
11
|
+
*/
|
|
12
|
+
@service hostRouter;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Inject the `hostRouter` service
|
|
16
|
+
*
|
|
17
|
+
* @memberof ManagementplacesIndexEditController
|
|
18
|
+
*/
|
|
19
|
+
@service modalsManager;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The overlay component context.
|
|
23
|
+
*
|
|
24
|
+
* @memberof ManagementplacesIndexEditController
|
|
25
|
+
*/
|
|
26
|
+
@tracked overlay;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* When exiting the overlay.
|
|
30
|
+
*
|
|
31
|
+
* @return {Transition}
|
|
32
|
+
* @memberof ManagementplacesIndexEditController
|
|
33
|
+
*/
|
|
34
|
+
@action transitionBack(place) {
|
|
35
|
+
// check if place record has been edited and prompt for confirmation
|
|
36
|
+
if (place.hasDirtyAttributes) {
|
|
37
|
+
return this.confirmContinueWithUnsavedChanges(place, {
|
|
38
|
+
confirm: () => {
|
|
39
|
+
place.rollbackAttributes();
|
|
40
|
+
return this.transitionToRoute('management.places.index');
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return this.transitionToRoute('management.places.index');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Set the overlay component context object.
|
|
50
|
+
*
|
|
51
|
+
* @param {OverlayContext} overlay
|
|
52
|
+
* @memberof ManagementplacesIndexEditController
|
|
53
|
+
*/
|
|
54
|
+
@action setOverlayContext(overlay) {
|
|
55
|
+
this.overlay = overlay;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* When place details button is clicked in overlay.
|
|
60
|
+
*
|
|
61
|
+
* @param {PlaceModel} place
|
|
62
|
+
* @return {Promise}
|
|
63
|
+
* @memberof ManagementplacesIndexEditController
|
|
64
|
+
*/
|
|
65
|
+
@action onViewDetails(place) {
|
|
66
|
+
// check if place record has been edited and prompt for confirmation
|
|
67
|
+
if (place.hasDirtyAttributes) {
|
|
68
|
+
return this.confirmContinueWithUnsavedChanges(place);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return this.transitionToRoute('management.places.index.details', place);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Trigger a route refresh and focus the new place created.
|
|
76
|
+
*
|
|
77
|
+
* @param {PlaceModel} place
|
|
78
|
+
* @return {Promise}
|
|
79
|
+
* @memberof ManagementplacesIndexEditController
|
|
80
|
+
*/
|
|
81
|
+
@action onAfterSave(place) {
|
|
82
|
+
if (this.overlay) {
|
|
83
|
+
this.overlay.close();
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
this.hostRouter.refresh();
|
|
87
|
+
return this.transitionToRoute('management.places.index.details', place);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Prompts the user to confirm if they wish to continue with unsaved changes.
|
|
92
|
+
*
|
|
93
|
+
* @method
|
|
94
|
+
* @param {PlaceModel} place - The place object with unsaved changes.
|
|
95
|
+
* @param {Object} [options={}] - Additional options for configuring the modal.
|
|
96
|
+
* @returns {Promise} A promise that resolves when the user confirms, and transitions to a new route.
|
|
97
|
+
* @memberof ManagementplacesIndexEditController
|
|
98
|
+
*/
|
|
99
|
+
confirmContinueWithUnsavedChanges(place, options = {}) {
|
|
100
|
+
return this.modalsManager.confirm({
|
|
101
|
+
title: 'Continue Without Saving?',
|
|
102
|
+
body: 'Unsaved changes to this place will be lost. Click continue to proceed.',
|
|
103
|
+
acceptButtonText: 'Continue without saving',
|
|
104
|
+
confirm: () => {
|
|
105
|
+
place.rollbackAttributes();
|
|
106
|
+
return this.transitionToRoute('management.places.index.details', place);
|
|
107
|
+
},
|
|
108
|
+
...options,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import Controller from '@ember/controller';
|
|
2
|
+
import { tracked } from '@glimmer/tracking';
|
|
3
|
+
import { inject as service } from '@ember/service';
|
|
4
|
+
import { action } from '@ember/object';
|
|
5
|
+
|
|
6
|
+
export default class ManagementPlacesIndexNewController extends Controller {
|
|
7
|
+
/**
|
|
8
|
+
* Inject the `store` service
|
|
9
|
+
*
|
|
10
|
+
* @memberof ManagementplacesIndexNewController
|
|
11
|
+
*/
|
|
12
|
+
@service store;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Inject the `hostRouter` service
|
|
16
|
+
*
|
|
17
|
+
* @memberof ManagementplacesIndexNewController
|
|
18
|
+
*/
|
|
19
|
+
@service hostRouter;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Inject the `hostRouter` service
|
|
23
|
+
*
|
|
24
|
+
* @memberof ManagementplacesIndexNewController
|
|
25
|
+
*/
|
|
26
|
+
@service modalsManager;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The overlay component context.
|
|
30
|
+
*
|
|
31
|
+
* @memberof ManagementplacesIndexNewController
|
|
32
|
+
*/
|
|
33
|
+
@tracked overlay;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The place being created.
|
|
37
|
+
*
|
|
38
|
+
* @var {placeModel}
|
|
39
|
+
*/
|
|
40
|
+
@tracked place = this.store.createRecord('place');
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Set the overlay component context object.
|
|
44
|
+
*
|
|
45
|
+
* @param {OverlayContext} overlay
|
|
46
|
+
* @memberof ManagementplacesIndexNewController
|
|
47
|
+
*/
|
|
48
|
+
@action setOverlayContext(overlay) {
|
|
49
|
+
this.overlay = overlay;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* When exiting the overlay.
|
|
54
|
+
*
|
|
55
|
+
* @return {Transition}
|
|
56
|
+
* @memberof ManagementplacesIndexNewController
|
|
57
|
+
*/
|
|
58
|
+
@action transitionBack() {
|
|
59
|
+
return this.transitionToRoute('management.places.index');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Trigger a route refresh and focus the new place created.
|
|
64
|
+
*
|
|
65
|
+
* @param {placeModel} place
|
|
66
|
+
* @return {Promise}
|
|
67
|
+
* @memberof ManagementplacesIndexNewController
|
|
68
|
+
*/
|
|
69
|
+
@action onAfterSave(place) {
|
|
70
|
+
if (this.overlay) {
|
|
71
|
+
this.overlay.close();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
this.hostRouter.refresh();
|
|
75
|
+
return this.transitionToRoute('management.places.index.details', place).then(() => {
|
|
76
|
+
this.resetForm();
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Resets the form with a new place record
|
|
82
|
+
*
|
|
83
|
+
* @memberof ManagementplacesIndexNewController
|
|
84
|
+
*/
|
|
85
|
+
resetForm() {
|
|
86
|
+
this.place = this.store.createRecord('place');
|
|
87
|
+
}
|
|
88
|
+
}
|