@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
|
@@ -1,26 +1,11 @@
|
|
|
1
|
-
import Controller
|
|
1
|
+
import Controller from '@ember/controller';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { action } from '@ember/object';
|
|
5
5
|
import { isBlank } from '@ember/utils';
|
|
6
6
|
import { task, timeout } from 'ember-concurrency';
|
|
7
|
-
import Point from '@fleetbase/fleetops-data/utils/geojson/point';
|
|
8
7
|
|
|
9
8
|
export default class ManagementPlacesIndexController extends Controller {
|
|
10
|
-
/**
|
|
11
|
-
* Inject the `operations.zones.index` controller
|
|
12
|
-
*
|
|
13
|
-
* @var {Controller}
|
|
14
|
-
*/
|
|
15
|
-
@controller('operations.zones.index') zonesController;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Inject the `management.vendors.index` controller
|
|
19
|
-
*
|
|
20
|
-
* @var {Controller}
|
|
21
|
-
*/
|
|
22
|
-
@controller('management.vendors.index') vendorsController;
|
|
23
|
-
|
|
24
9
|
/**
|
|
25
10
|
* Inject the `notifications` service
|
|
26
11
|
*
|
|
@@ -313,178 +298,35 @@ export default class ManagementPlacesIndexController extends Controller {
|
|
|
313
298
|
}
|
|
314
299
|
|
|
315
300
|
/**
|
|
316
|
-
* View a
|
|
301
|
+
* View a place details
|
|
317
302
|
*
|
|
318
303
|
* @param {PlaceModel} place
|
|
319
|
-
* @
|
|
320
|
-
* @
|
|
304
|
+
* @return {Promise}
|
|
305
|
+
* @memberof ManagementPlacesIndexController
|
|
321
306
|
*/
|
|
322
|
-
@action viewPlace(place
|
|
323
|
-
|
|
324
|
-
this.modalsManager.done().then(() => {
|
|
325
|
-
return this.viewOnMap(place, {
|
|
326
|
-
onFinish: () => {
|
|
327
|
-
this.viewPlace(place);
|
|
328
|
-
},
|
|
329
|
-
});
|
|
330
|
-
});
|
|
331
|
-
};
|
|
332
|
-
|
|
333
|
-
this.modalsManager.show('modals/place-details', {
|
|
334
|
-
title: place.name,
|
|
335
|
-
place,
|
|
336
|
-
titleComponent: 'modal/title-with-buttons',
|
|
337
|
-
acceptButtonText: 'Done',
|
|
338
|
-
headerButtons: [
|
|
339
|
-
{
|
|
340
|
-
icon: 'cog',
|
|
341
|
-
type: 'link',
|
|
342
|
-
size: 'xs',
|
|
343
|
-
options: [
|
|
344
|
-
{
|
|
345
|
-
title: 'Edit Place',
|
|
346
|
-
action: () => {
|
|
347
|
-
this.modalsManager.done().then(() => {
|
|
348
|
-
return this.editPlace(place, {
|
|
349
|
-
onFinish: () => {
|
|
350
|
-
this.viewDriver(place);
|
|
351
|
-
},
|
|
352
|
-
});
|
|
353
|
-
});
|
|
354
|
-
},
|
|
355
|
-
},
|
|
356
|
-
{
|
|
357
|
-
title: 'View Place on Map',
|
|
358
|
-
action: viewPlaceOnMap,
|
|
359
|
-
},
|
|
360
|
-
{
|
|
361
|
-
title: 'Assign to Vendor',
|
|
362
|
-
action: () => {
|
|
363
|
-
this.modalsManager.done().then(() => {
|
|
364
|
-
return this.assignVendor(place, {
|
|
365
|
-
onFinish: () => {
|
|
366
|
-
this.viewPlace(place);
|
|
367
|
-
},
|
|
368
|
-
});
|
|
369
|
-
});
|
|
370
|
-
},
|
|
371
|
-
},
|
|
372
|
-
{
|
|
373
|
-
title: 'Delete Place',
|
|
374
|
-
action: () => {
|
|
375
|
-
this.modalsManager.done().then(() => {
|
|
376
|
-
return this.deletePlace(place, {
|
|
377
|
-
onDecline: () => {
|
|
378
|
-
this.viewPlace(place);
|
|
379
|
-
},
|
|
380
|
-
});
|
|
381
|
-
});
|
|
382
|
-
},
|
|
383
|
-
},
|
|
384
|
-
],
|
|
385
|
-
},
|
|
386
|
-
],
|
|
387
|
-
viewVendor: () =>
|
|
388
|
-
this.viewPlaceVendor(place, {
|
|
389
|
-
onFinish: () => {
|
|
390
|
-
this.viewPlace(place);
|
|
391
|
-
},
|
|
392
|
-
}),
|
|
393
|
-
viewPlaceOnMap,
|
|
394
|
-
...options,
|
|
395
|
-
});
|
|
307
|
+
@action viewPlace(place) {
|
|
308
|
+
return this.transitionToRoute('management.places.index.details', place);
|
|
396
309
|
}
|
|
397
310
|
|
|
398
311
|
/**
|
|
399
|
-
* Create a new
|
|
312
|
+
* Create a new place
|
|
400
313
|
*
|
|
401
|
-
* @
|
|
402
|
-
* @
|
|
314
|
+
* @return {Promise}
|
|
315
|
+
* @memberof ManagementPlacesIndexController
|
|
403
316
|
*/
|
|
404
|
-
@action createPlace(
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
return this.editPlace(place, {
|
|
408
|
-
title: 'New Place',
|
|
409
|
-
acceptButtonText: 'Confirm & Create',
|
|
410
|
-
acceptButtonIcon: 'check',
|
|
411
|
-
acceptButtonIconPrefix: 'fas',
|
|
412
|
-
successNotification: (place) => `New place (${place.get('name') || place.get('street1')}) created.`,
|
|
413
|
-
onConfirm: () => {
|
|
414
|
-
if (place.get('isNew')) {
|
|
415
|
-
return;
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
return this.hostRouter.refresh();
|
|
419
|
-
},
|
|
420
|
-
...options,
|
|
421
|
-
});
|
|
317
|
+
@action createPlace() {
|
|
318
|
+
return this.transitionToRoute('management.places.index.new');
|
|
422
319
|
}
|
|
423
320
|
|
|
424
321
|
/**
|
|
425
|
-
*
|
|
322
|
+
*Edit place details
|
|
426
323
|
*
|
|
427
324
|
* @param {PlaceModel} place
|
|
428
|
-
* @
|
|
429
|
-
* @
|
|
325
|
+
* @return {Promise}
|
|
326
|
+
* @memberof ManagementPlacesIndexController
|
|
430
327
|
*/
|
|
431
|
-
@action
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
this.modalsManager.show('modals/place-form', {
|
|
435
|
-
title: 'Edit Place',
|
|
436
|
-
acceptButtonText: 'Save Changes',
|
|
437
|
-
acceptButtonIcon: 'save',
|
|
438
|
-
declineButtonIcon: 'times',
|
|
439
|
-
declineButtonIconPrefix: 'fas',
|
|
440
|
-
place,
|
|
441
|
-
autocomplete: (selected) => {
|
|
442
|
-
const coordinatesInputComponent = this.modalsManager.getOption('coordinatesInputComponent');
|
|
443
|
-
|
|
444
|
-
place.setProperties({ ...selected });
|
|
445
|
-
|
|
446
|
-
if (coordinatesInputComponent) {
|
|
447
|
-
coordinatesInputComponent.updateCoordinates(selected.location);
|
|
448
|
-
}
|
|
449
|
-
},
|
|
450
|
-
reverseGeocode: ({ latitude, longitude }) => {
|
|
451
|
-
return this.fetch.get('geocoder/reverse', { coordinates: [latitude, longitude].join(','), single: true }).then((result) => {
|
|
452
|
-
if (isBlank(result)) {
|
|
453
|
-
return;
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
place.setProperties({ ...result });
|
|
457
|
-
});
|
|
458
|
-
},
|
|
459
|
-
setCoordinatesInput: (coordinatesInputComponent) => {
|
|
460
|
-
this.modalsManager.setOption('coordinatesInputComponent', coordinatesInputComponent);
|
|
461
|
-
},
|
|
462
|
-
updatePlaceCoordinates: ({ latitude, longitude }) => {
|
|
463
|
-
const location = new Point(longitude, latitude);
|
|
464
|
-
|
|
465
|
-
place.setProperties({ location });
|
|
466
|
-
},
|
|
467
|
-
confirm: (modal) => {
|
|
468
|
-
modal.startLoading();
|
|
469
|
-
|
|
470
|
-
return place
|
|
471
|
-
.save()
|
|
472
|
-
.then((place) => {
|
|
473
|
-
if (typeof options.successNotification === 'function') {
|
|
474
|
-
this.notifications.success(options.successNotification(place));
|
|
475
|
-
} else {
|
|
476
|
-
this.notifications.success(options.successNotification ?? `${place.name} details updated.`);
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
return this.hostRouter.refresh();
|
|
480
|
-
})
|
|
481
|
-
.catch((error) => {
|
|
482
|
-
modal.stopLoading();
|
|
483
|
-
this.notifications.serverError(error);
|
|
484
|
-
});
|
|
485
|
-
},
|
|
486
|
-
...options,
|
|
487
|
-
});
|
|
328
|
+
@action editPlace(place) {
|
|
329
|
+
return this.transitionToRoute('management.places.index.edit', place);
|
|
488
330
|
}
|
|
489
331
|
|
|
490
332
|
/**
|
|
@@ -566,19 +408,16 @@ export default class ManagementPlacesIndexController extends Controller {
|
|
|
566
408
|
}
|
|
567
409
|
|
|
568
410
|
/**
|
|
569
|
-
* View information about
|
|
411
|
+
* View information about a place vendor
|
|
570
412
|
*
|
|
571
413
|
* @param {PlaceModel} place
|
|
572
|
-
* @param {Object} options
|
|
573
414
|
* @void
|
|
574
415
|
*/
|
|
575
|
-
@action async viewPlaceVendor(place
|
|
576
|
-
this.modalsManager.displayLoader();
|
|
577
|
-
|
|
416
|
+
@action async viewPlaceVendor(place) {
|
|
578
417
|
const vendor = await this.store.findRecord('vendor', place.vendor_uuid);
|
|
579
418
|
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
}
|
|
419
|
+
if (vendor) {
|
|
420
|
+
this.contextPanel.focus(vendor);
|
|
421
|
+
}
|
|
583
422
|
}
|
|
584
423
|
}
|
|
@@ -37,9 +37,7 @@ export default class ManagementVehiclesIndexNewController extends Controller {
|
|
|
37
37
|
*
|
|
38
38
|
* @var {VehicleModel}
|
|
39
39
|
*/
|
|
40
|
-
@tracked vehicle = this.store.createRecord('vehicle', {
|
|
41
|
-
status: `active`,
|
|
42
|
-
});
|
|
40
|
+
@tracked vehicle = this.store.createRecord('vehicle', { status: 'active' });
|
|
43
41
|
|
|
44
42
|
/**
|
|
45
43
|
* Set the overlay component context object.
|
|
@@ -85,8 +83,6 @@ export default class ManagementVehiclesIndexNewController extends Controller {
|
|
|
85
83
|
* @memberof ManagementVehiclesIndexNewController
|
|
86
84
|
*/
|
|
87
85
|
resetForm() {
|
|
88
|
-
this.vehicle = this.store.createRecord('vehicle', {
|
|
89
|
-
status: `active`,
|
|
90
|
-
});
|
|
86
|
+
this.vehicle = this.store.createRecord('vehicle', { status: 'active' });
|
|
91
87
|
}
|
|
92
88
|
}
|
|
@@ -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 ManagementVendorsIndexDetailsController 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.vendors.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.vendors.index');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Transitions to the edit view for a specific vendor.
|
|
35
|
+
*
|
|
36
|
+
* @method
|
|
37
|
+
* @param {VendorModel} vendor - The vendor to be edited.
|
|
38
|
+
* @action
|
|
39
|
+
* @returns {Transition} The transition object representing the route change.
|
|
40
|
+
*/
|
|
41
|
+
@action onEdit(vendor) {
|
|
42
|
+
return this.transitionToRoute('management.vendors.index.edit', vendor);
|
|
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 { tracked } from '@glimmer/tracking';
|
|
3
|
+
import { inject as service } from '@ember/service';
|
|
4
|
+
import { action } from '@ember/object';
|
|
5
|
+
|
|
6
|
+
export default class ManagementVendorsIndexEditController extends Controller {
|
|
7
|
+
/**
|
|
8
|
+
* Inject the `hostRouter` service
|
|
9
|
+
*
|
|
10
|
+
* @memberof ManagementVendorsIndexEditController
|
|
11
|
+
*/
|
|
12
|
+
@service hostRouter;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Inject the `hostRouter` service
|
|
16
|
+
*
|
|
17
|
+
* @memberof ManagementVendorsIndexEditController
|
|
18
|
+
*/
|
|
19
|
+
@service modalsManager;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The overlay component context.
|
|
23
|
+
*
|
|
24
|
+
* @memberof ManagementVendorsIndexEditController
|
|
25
|
+
*/
|
|
26
|
+
@tracked overlay;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* When exiting the overlay.
|
|
30
|
+
*
|
|
31
|
+
* @return {Transition}
|
|
32
|
+
* @memberof ManagementVendorsIndexEditController
|
|
33
|
+
*/
|
|
34
|
+
@action transitionBack(vendor) {
|
|
35
|
+
// check if vendor record has been edited and prompt for confirmation
|
|
36
|
+
if (vendor.hasDirtyAttributes) {
|
|
37
|
+
return this.confirmContinueWithUnsavedChanges(vendor, {
|
|
38
|
+
confirm: () => {
|
|
39
|
+
vendor.rollbackAttributes();
|
|
40
|
+
return this.transitionToRoute('management.vendors.index');
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return this.transitionToRoute('management.vendors.index');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Set the overlay component context object.
|
|
50
|
+
*
|
|
51
|
+
* @param {OverlayContext} overlay
|
|
52
|
+
* @memberof ManagementVendorsIndexEditController
|
|
53
|
+
*/
|
|
54
|
+
@action setOverlayContext(overlay) {
|
|
55
|
+
this.overlay = overlay;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* When vendor details button is clicked in overlay.
|
|
60
|
+
*
|
|
61
|
+
* @param {VendorModel} vendor
|
|
62
|
+
* @return {Promise}
|
|
63
|
+
* @memberof ManagementVendorsIndexEditController
|
|
64
|
+
*/
|
|
65
|
+
@action onViewDetails(vendor) {
|
|
66
|
+
// check if vendor record has been edited and prompt for confirmation
|
|
67
|
+
if (vendor.hasDirtyAttributes) {
|
|
68
|
+
return this.confirmContinueWithUnsavedChanges(vendor);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return this.transitionToRoute('management.vendors.index.details', vendor);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Trigger a route refresh and focus the new vendor created.
|
|
76
|
+
*
|
|
77
|
+
* @param {VendorModel} vendor
|
|
78
|
+
* @return {Promise}
|
|
79
|
+
* @memberof ManagementVendorsIndexEditController
|
|
80
|
+
*/
|
|
81
|
+
@action onAfterSave(vendor) {
|
|
82
|
+
if (this.overlay) {
|
|
83
|
+
this.overlay.close();
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
this.hostRouter.refresh();
|
|
87
|
+
return this.transitionToRoute('management.vendors.index.details', vendor);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Prompts the user to confirm if they wish to continue with unsaved changes.
|
|
92
|
+
*
|
|
93
|
+
* @method
|
|
94
|
+
* @param {VendorModel} vendor - The vendor 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 ManagementVendorsIndexEditController
|
|
98
|
+
*/
|
|
99
|
+
confirmContinueWithUnsavedChanges(vendor, options = {}) {
|
|
100
|
+
return this.modalsManager.confirm({
|
|
101
|
+
title: 'Continue Without Saving?',
|
|
102
|
+
body: 'Unsaved changes to this vendor will be lost. Click continue to proceed.',
|
|
103
|
+
acceptButtonText: 'Continue without saving',
|
|
104
|
+
confirm: () => {
|
|
105
|
+
vendor.rollbackAttributes();
|
|
106
|
+
return this.transitionToRoute('management.vendors.index.details', vendor);
|
|
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 ManagementVendorsIndexNewController extends Controller {
|
|
7
|
+
/**
|
|
8
|
+
* Inject the `store` service
|
|
9
|
+
*
|
|
10
|
+
* @memberof ManagementVendorIndexNewController
|
|
11
|
+
*/
|
|
12
|
+
@service store;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Inject the `hostRouter` service
|
|
16
|
+
*
|
|
17
|
+
* @memberof ManagementVendorIndexNewController
|
|
18
|
+
*/
|
|
19
|
+
@service hostRouter;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Inject the `hostRouter` service
|
|
23
|
+
*
|
|
24
|
+
* @memberof ManagementVendorIndexNewController
|
|
25
|
+
*/
|
|
26
|
+
@service modalsManager;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The overlay component context.
|
|
30
|
+
*
|
|
31
|
+
* @memberof ManagementVendorIndexNewController
|
|
32
|
+
*/
|
|
33
|
+
@tracked overlay;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The vendor being created.
|
|
37
|
+
*
|
|
38
|
+
* @var {VendorModel}
|
|
39
|
+
*/
|
|
40
|
+
@tracked vendor = this.store.createRecord('vendor', { status: 'active' });
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Set the overlay component context object.
|
|
44
|
+
*
|
|
45
|
+
* @param {OverlayContext} overlay
|
|
46
|
+
* @memberof ManagementVendorsIndexNewController
|
|
47
|
+
*/
|
|
48
|
+
@action setOverlayContext(overlay) {
|
|
49
|
+
this.overlay = overlay;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* When exiting the overlay.
|
|
54
|
+
*
|
|
55
|
+
* @return {Transition}
|
|
56
|
+
* @memberof ManagementVendorIndexNewController
|
|
57
|
+
*/
|
|
58
|
+
@action transitionBack() {
|
|
59
|
+
return this.transitionToRoute('management.vendors.index');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Trigger a route refresh and focus the new vendor created.
|
|
64
|
+
*
|
|
65
|
+
* @param {VendorModel} vendor
|
|
66
|
+
* @return {Promise}
|
|
67
|
+
* @memberof ManagementVendorsIndexNewController
|
|
68
|
+
*/
|
|
69
|
+
@action onAfterSave(vendor) {
|
|
70
|
+
if (this.overlay) {
|
|
71
|
+
this.overlay.close();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
this.hostRouter.refresh();
|
|
75
|
+
return this.transitionToRoute('management.vendors.index.details', vendor).then(() => {
|
|
76
|
+
this.resetForm();
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Resets the form with a new vendor record
|
|
82
|
+
*
|
|
83
|
+
* @memberof ManagementVendorIndexNewController
|
|
84
|
+
*/
|
|
85
|
+
resetForm() {
|
|
86
|
+
this.vendor = this.store.createRecord('vendor', { status: 'active' });
|
|
87
|
+
}
|
|
88
|
+
}
|