@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
|
@@ -5,73 +5,107 @@ import { action } from '@ember/object';
|
|
|
5
5
|
|
|
6
6
|
export default class ManagementFleetsIndexEditController extends Controller {
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Inject the `hostRouter` service
|
|
9
9
|
*
|
|
10
|
-
* @
|
|
10
|
+
* @memberof ManagementFleetsIndexEditController
|
|
11
11
|
*/
|
|
12
|
-
@
|
|
12
|
+
@service hostRouter;
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* Inject the `
|
|
15
|
+
* Inject the `hostRouter` service
|
|
16
16
|
*
|
|
17
|
-
* @
|
|
17
|
+
* @memberof ManagementFleetsIndexEditController
|
|
18
18
|
*/
|
|
19
|
-
@service
|
|
19
|
+
@service modalsManager;
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
22
|
+
* The overlay component context.
|
|
23
23
|
*
|
|
24
|
-
* @
|
|
24
|
+
* @memberof ManagementFleetsIndexEditController
|
|
25
25
|
*/
|
|
26
|
-
@
|
|
26
|
+
@tracked overlay;
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
29
|
+
* When exiting the overlay.
|
|
30
30
|
*
|
|
31
|
-
* @
|
|
31
|
+
* @return {Transition}
|
|
32
|
+
* @memberof ManagementFleetsIndexEditController
|
|
32
33
|
*/
|
|
33
|
-
@
|
|
34
|
+
@action transitionBack(fleet) {
|
|
35
|
+
// check if fleet record has been edited and prompt for confirmation
|
|
36
|
+
if (fleet.hasDirtyAttributes) {
|
|
37
|
+
return this.confirmContinueWithUnsavedChanges(fleet, {
|
|
38
|
+
confirm: () => {
|
|
39
|
+
fleet.rollbackAttributes();
|
|
40
|
+
return this.transitionToRoute('management.fleets.index');
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return this.transitionToRoute('management.fleets.index');
|
|
46
|
+
}
|
|
34
47
|
|
|
35
48
|
/**
|
|
36
|
-
*
|
|
49
|
+
* Set the overlay component context object.
|
|
37
50
|
*
|
|
38
|
-
* @
|
|
51
|
+
* @param {OverlayContext} overlay
|
|
52
|
+
* @memberof ManagementFleetsIndexEditController
|
|
39
53
|
*/
|
|
40
|
-
@
|
|
54
|
+
@action setOverlayContext(overlay) {
|
|
55
|
+
this.overlay = overlay;
|
|
56
|
+
}
|
|
41
57
|
|
|
42
58
|
/**
|
|
43
|
-
*
|
|
59
|
+
* When fleet details button is clicked in overlay.
|
|
44
60
|
*
|
|
45
|
-
* @
|
|
61
|
+
* @param {VehicleModel} fleet
|
|
62
|
+
* @return {Promise}
|
|
63
|
+
* @memberof ManagementFleetsIndexEditController
|
|
46
64
|
*/
|
|
47
|
-
@action
|
|
48
|
-
|
|
65
|
+
@action onViewDetails(fleet) {
|
|
66
|
+
// check if fleet record has been edited and prompt for confirmation
|
|
67
|
+
if (fleet.hasDirtyAttributes) {
|
|
68
|
+
return this.confirmContinueWithUnsavedChanges(fleet);
|
|
69
|
+
}
|
|
49
70
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this.loader.showLoader('.overlay-inner-content', { loadingMessage: 'Updating fleet...' });
|
|
71
|
+
return this.transitionToRoute('management.fleets.index.details', fleet);
|
|
72
|
+
}
|
|
53
73
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
.finally(() => {
|
|
65
|
-
this.isUpdatingFleet = false;
|
|
66
|
-
this.loader.removeLoader();
|
|
67
|
-
});
|
|
68
|
-
} catch (error) {
|
|
69
|
-
this.isUpdatingFleet = false;
|
|
70
|
-
this.loader.removeLoader();
|
|
74
|
+
/**
|
|
75
|
+
* Trigger a route refresh and focus the new fleet created.
|
|
76
|
+
*
|
|
77
|
+
* @param {VehicleModel} fleet
|
|
78
|
+
* @return {Promise}
|
|
79
|
+
* @memberof ManagementFleetsIndexEditController
|
|
80
|
+
*/
|
|
81
|
+
@action onAfterSave(fleet) {
|
|
82
|
+
if (this.overlay) {
|
|
83
|
+
this.overlay.close();
|
|
71
84
|
}
|
|
85
|
+
|
|
86
|
+
this.hostRouter.refresh();
|
|
87
|
+
return this.transitionToRoute('management.fleets.index.details', fleet);
|
|
72
88
|
}
|
|
73
89
|
|
|
74
|
-
|
|
75
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Prompts the user to confirm if they wish to continue with unsaved changes.
|
|
92
|
+
*
|
|
93
|
+
* @method
|
|
94
|
+
* @param {VehicleModel} fleet - The fleet 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 ManagementFleetsIndexEditController
|
|
98
|
+
*/
|
|
99
|
+
confirmContinueWithUnsavedChanges(fleet, options = {}) {
|
|
100
|
+
return this.modalsManager.confirm({
|
|
101
|
+
title: 'Continue Without Saving?',
|
|
102
|
+
body: 'Unsaved changes to this fleet will be lost. Click continue to proceed.',
|
|
103
|
+
acceptButtonText: 'Continue without saving',
|
|
104
|
+
confirm: () => {
|
|
105
|
+
fleet.rollbackAttributes();
|
|
106
|
+
return this.transitionToRoute('management.fleets.index.details', fleet);
|
|
107
|
+
},
|
|
108
|
+
...options,
|
|
109
|
+
});
|
|
76
110
|
}
|
|
77
111
|
}
|
|
@@ -1,43 +1,36 @@
|
|
|
1
|
-
import Controller
|
|
2
|
-
import { inject as service } from '@ember/service';
|
|
1
|
+
import Controller from '@ember/controller';
|
|
3
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
|
+
import { inject as service } from '@ember/service';
|
|
4
4
|
import { action } from '@ember/object';
|
|
5
5
|
|
|
6
6
|
export default class ManagementFleetsIndexNewController extends Controller {
|
|
7
7
|
/**
|
|
8
|
-
* Inject the `
|
|
9
|
-
*
|
|
10
|
-
* @var {Controller}
|
|
11
|
-
*/
|
|
12
|
-
@controller('management.fleets.index') index;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Inject the `currentUser` service
|
|
8
|
+
* Inject the `store` service
|
|
16
9
|
*
|
|
17
|
-
* @
|
|
10
|
+
* @memberof ManagementFleetsIndexNewController
|
|
18
11
|
*/
|
|
19
12
|
@service store;
|
|
20
13
|
|
|
21
14
|
/**
|
|
22
15
|
* Inject the `hostRouter` service
|
|
23
16
|
*
|
|
24
|
-
* @
|
|
17
|
+
* @memberof ManagementFleetsIndexNewController
|
|
25
18
|
*/
|
|
26
19
|
@service hostRouter;
|
|
27
20
|
|
|
28
21
|
/**
|
|
29
|
-
* Inject the `
|
|
22
|
+
* Inject the `hostRouter` service
|
|
30
23
|
*
|
|
31
|
-
* @
|
|
24
|
+
* @memberof ManagementFleetsIndexNewController
|
|
32
25
|
*/
|
|
33
|
-
@service
|
|
26
|
+
@service modalsManager;
|
|
34
27
|
|
|
35
28
|
/**
|
|
36
|
-
*
|
|
29
|
+
* The overlay component context.
|
|
37
30
|
*
|
|
38
|
-
* @
|
|
31
|
+
* @memberof ManagementFleetsIndexNewController
|
|
39
32
|
*/
|
|
40
|
-
@
|
|
33
|
+
@tracked overlay;
|
|
41
34
|
|
|
42
35
|
/**
|
|
43
36
|
* The fleet being created.
|
|
@@ -47,57 +40,49 @@ export default class ManagementFleetsIndexNewController extends Controller {
|
|
|
47
40
|
@tracked fleet = this.store.createRecord('fleet', { status: 'active' });
|
|
48
41
|
|
|
49
42
|
/**
|
|
50
|
-
*
|
|
43
|
+
* Set the overlay component context object.
|
|
51
44
|
*
|
|
52
|
-
* @
|
|
45
|
+
* @param {OverlayContext} overlay
|
|
46
|
+
* @memberof ManagementFleetsIndexNewController
|
|
53
47
|
*/
|
|
54
|
-
@
|
|
48
|
+
@action setOverlayContext(overlay) {
|
|
49
|
+
this.overlay = overlay;
|
|
50
|
+
}
|
|
55
51
|
|
|
56
52
|
/**
|
|
57
|
-
*
|
|
53
|
+
* When exiting the overlay.
|
|
58
54
|
*
|
|
59
|
-
* @
|
|
55
|
+
* @return {Transition}
|
|
56
|
+
* @memberof ManagementFleetsIndexNewController
|
|
60
57
|
*/
|
|
61
|
-
@action
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
this.isCreatingFleet = true;
|
|
65
|
-
this.loader.showLoader('.overlay-inner-content', { loadingMessage: 'Creating fleet...' });
|
|
66
|
-
|
|
67
|
-
try {
|
|
68
|
-
return fleet
|
|
69
|
-
.save()
|
|
70
|
-
.then((fleet) => {
|
|
71
|
-
return this.transitionToRoute('management.fleets.index').then(() => {
|
|
72
|
-
this.notifications.success(`New fleet (${fleet.name}) created.`);
|
|
73
|
-
this.resetForm();
|
|
74
|
-
this.hostRouter.refresh();
|
|
75
|
-
});
|
|
76
|
-
})
|
|
77
|
-
.catch((error) => {
|
|
78
|
-
console.log(error);
|
|
79
|
-
this.notifications.serverError(error);
|
|
80
|
-
})
|
|
81
|
-
.finally(() => {
|
|
82
|
-
this.isCreatingFleet = false;
|
|
83
|
-
this.loader.removeLoader();
|
|
84
|
-
});
|
|
85
|
-
} catch (error) {
|
|
86
|
-
this.isCreatingFleet = false;
|
|
87
|
-
this.loader.removeLoader();
|
|
88
|
-
}
|
|
58
|
+
@action transitionBack() {
|
|
59
|
+
return this.transitionToRoute('management.fleets.index');
|
|
89
60
|
}
|
|
90
61
|
|
|
91
62
|
/**
|
|
92
|
-
*
|
|
63
|
+
* Trigger a route refresh and focus the new fleet created.
|
|
93
64
|
*
|
|
94
|
-
* @
|
|
65
|
+
* @param {FleetModel} fleet
|
|
66
|
+
* @return {Promise}
|
|
67
|
+
* @memberof ManagementFleetsIndexNewController
|
|
95
68
|
*/
|
|
96
|
-
@action
|
|
97
|
-
|
|
69
|
+
@action onAfterSave(fleet) {
|
|
70
|
+
if (this.overlay) {
|
|
71
|
+
this.overlay.close();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
this.hostRouter.refresh();
|
|
75
|
+
return this.transitionToRoute('management.fleets.index.details', fleet).then(() => {
|
|
76
|
+
this.resetForm();
|
|
77
|
+
});
|
|
98
78
|
}
|
|
99
79
|
|
|
100
|
-
|
|
101
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Resets the form with a new fleet record
|
|
82
|
+
*
|
|
83
|
+
* @memberof ManagementFleetsIndexNewController
|
|
84
|
+
*/
|
|
85
|
+
resetForm() {
|
|
86
|
+
this.fleet = this.store.createRecord('fleet', { status: 'active' });
|
|
102
87
|
}
|
|
103
88
|
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import Controller from '@ember/controller';
|
|
2
|
+
import { tracked } from '@glimmer/tracking';
|
|
3
|
+
import { action } from '@ember/object';
|
|
4
|
+
import { inject as service } from '@ember/service';
|
|
5
|
+
/**
|
|
6
|
+
* Controller for managing the details view within the "Management -> Fuel-Report -> Index" route.
|
|
7
|
+
*
|
|
8
|
+
* @class ManagementFuelReportsIndexDetailsController
|
|
9
|
+
* @extends Controller
|
|
10
|
+
*/
|
|
11
|
+
export default class ManagementFuelReportsIndexDetailsController extends Controller {
|
|
12
|
+
@service hostRouter;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The currently active view tab ('details' by default).
|
|
16
|
+
*
|
|
17
|
+
* @type {String}
|
|
18
|
+
* @tracked
|
|
19
|
+
*/
|
|
20
|
+
@tracked view = 'details';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* An array of query parameters to be serialized in the URL.
|
|
24
|
+
*
|
|
25
|
+
* @type {String[]}
|
|
26
|
+
* @tracked
|
|
27
|
+
*/
|
|
28
|
+
@tracked queryParams = ['view'];
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Transitions back to the "management.fuelReport.index" route.
|
|
32
|
+
*
|
|
33
|
+
* @method
|
|
34
|
+
* @action
|
|
35
|
+
* @returns {Transition} The transition object representing the route change.
|
|
36
|
+
*/
|
|
37
|
+
@action transitionBack() {
|
|
38
|
+
return this.transitionToRoute('management.fuel-reports.index');
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Transitions to the edit view for a specific vehicle.
|
|
43
|
+
*
|
|
44
|
+
* @param {FuelReportModel} fuelReport
|
|
45
|
+
* @method
|
|
46
|
+
* @action
|
|
47
|
+
* @returns {Transition} The transition object representing the route change.
|
|
48
|
+
*/
|
|
49
|
+
@action onEdit(fuelReport) {
|
|
50
|
+
return this.transitionToRoute('management.fuel-reports.index.edit', fuelReport);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Updates the active view tab.
|
|
55
|
+
*
|
|
56
|
+
* @method
|
|
57
|
+
* @param {String} tab - The name of the tab to activate.
|
|
58
|
+
* @action
|
|
59
|
+
*/
|
|
60
|
+
@action onTabChanged(tab) {
|
|
61
|
+
this.view = tab;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -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 ManagementFuelReportsIndexEditController extends Controller {
|
|
7
|
+
/**
|
|
8
|
+
* Inject the `hostRouter` service
|
|
9
|
+
*
|
|
10
|
+
* @memberof ManagementFuelReportsIndexEditController
|
|
11
|
+
*/
|
|
12
|
+
@service hostRouter;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Inject the `hostRouter` service
|
|
16
|
+
*
|
|
17
|
+
* @memberof ManagementFuelReportsIndexEditController
|
|
18
|
+
*/
|
|
19
|
+
@service modalsManager;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The overlay component context.
|
|
23
|
+
*
|
|
24
|
+
* @memberof ManagementFuelReportsIndexEditController
|
|
25
|
+
*/
|
|
26
|
+
@tracked overlay;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* When exiting the overlay.
|
|
30
|
+
*
|
|
31
|
+
* @return {Transition}
|
|
32
|
+
* @memberof ManagementFuelReportsIndexEditController
|
|
33
|
+
*/
|
|
34
|
+
@action transitionBack(fuelReport) {
|
|
35
|
+
// check if fuel-report record has been edited and prompt for confirmation
|
|
36
|
+
if (fuelReport.hasDirtyAttributes) {
|
|
37
|
+
return this.confirmContinueWithUnsavedChanges(fuelReport, {
|
|
38
|
+
confirm: () => {
|
|
39
|
+
fuelReport.rollbackAttributes();
|
|
40
|
+
return this.transitionToRoute('management.fuel-reports.index');
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return this.transitionToRoute('management.fuel-reports.index');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Set the overlay component context object.
|
|
50
|
+
*
|
|
51
|
+
* @param {OverlayContext} overlay
|
|
52
|
+
* @memberof ManagementFuelReportsIndexEditController
|
|
53
|
+
*/
|
|
54
|
+
@action setOverlayContext(overlay) {
|
|
55
|
+
this.overlay = overlay;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* When fuel-report details button is clicked in overlay.
|
|
60
|
+
*
|
|
61
|
+
* @param {FuelReportModel} fuelReport
|
|
62
|
+
* @return {Promise}
|
|
63
|
+
* @memberof ManagementFuelReportsIndexEditController
|
|
64
|
+
*/
|
|
65
|
+
@action onViewDetails(fuelReport) {
|
|
66
|
+
// check if fuel-report record has been edited and prompt for confirmation
|
|
67
|
+
if (fuelReport.hasDirtyAttributes) {
|
|
68
|
+
return this.confirmContinueWithUnsavedChanges(fuelReport);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return this.transitionToRoute('management.fuel-reports.index.details', fuelReport);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Trigger a route refresh and focus the new fuel-report created.
|
|
76
|
+
*
|
|
77
|
+
* @param {FuelReportModel} fuel-report
|
|
78
|
+
* @return {Promise}
|
|
79
|
+
* @memberof ManagementFuelReportsIndexEditController
|
|
80
|
+
*/
|
|
81
|
+
@action onAfterSave(fuelReport) {
|
|
82
|
+
if (this.overlay) {
|
|
83
|
+
this.overlay.close();
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
this.hostRouter.refresh();
|
|
87
|
+
return this.transitionToRoute('management.fuel-reports.index.details', fuelReport);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Prompts the user to confirm if they wish to continue with unsaved changes.
|
|
92
|
+
*
|
|
93
|
+
* @method
|
|
94
|
+
* @param {FuelReportModel} fuel-report - The fuel-report 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 ManagementFuelReportsIndexEditController
|
|
98
|
+
*/
|
|
99
|
+
confirmContinueWithUnsavedChanges(fuelReport, options = {}) {
|
|
100
|
+
return this.modalsManager.confirm({
|
|
101
|
+
title: 'Continue Without Saving?',
|
|
102
|
+
body: 'Unsaved changes to this fuel-report will be lost. Click continue to proceed.',
|
|
103
|
+
acceptButtonText: 'Continue without saving',
|
|
104
|
+
confirm: () => {
|
|
105
|
+
fuelReport.rollbackAttributes();
|
|
106
|
+
return this.transitionToRoute('management.fuel-reports.index.details', fuelReport);
|
|
107
|
+
},
|
|
108
|
+
...options,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
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 ManagementFuelReportsIndexNewController extends Controller {
|
|
7
|
+
/**
|
|
8
|
+
* Inject the `store` service
|
|
9
|
+
*
|
|
10
|
+
* @memberof ManagementFuelReportsIndexNewController
|
|
11
|
+
*/
|
|
12
|
+
@service store;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Inject the `currentUser` service
|
|
16
|
+
*
|
|
17
|
+
* @memberof ManagementFuelReportsIndexNewController
|
|
18
|
+
*/
|
|
19
|
+
@service currentUser;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Inject the `hostRouter` service
|
|
23
|
+
*
|
|
24
|
+
* @memberof ManagementFuelReportsIndexNewController
|
|
25
|
+
*/
|
|
26
|
+
@service hostRouter;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Inject the `hostRouter` service
|
|
30
|
+
*
|
|
31
|
+
* @memberof ManagementFuelReportsIndexNewController
|
|
32
|
+
*/
|
|
33
|
+
@service modalsManager;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The overlay component context.
|
|
37
|
+
*
|
|
38
|
+
* @memberof ManagementFuelReportsIndexNewController
|
|
39
|
+
*/
|
|
40
|
+
@tracked overlay;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The fuel report being created.
|
|
44
|
+
*
|
|
45
|
+
* @var {FuelReportModel}
|
|
46
|
+
*/
|
|
47
|
+
@tracked fuelReport = this.store.createRecord('fuelReport', { reporter: this.currentUser.user });
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Set the overlay component context object.
|
|
51
|
+
*
|
|
52
|
+
* @param {OverlayContext} overlay
|
|
53
|
+
* @memberof ManagementFuelReportsIndexNewController
|
|
54
|
+
*/
|
|
55
|
+
@action setOverlayContext(overlay) {
|
|
56
|
+
this.overlay = overlay;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* When exiting the overlay.
|
|
61
|
+
*
|
|
62
|
+
* @return {Transition}
|
|
63
|
+
* @memberof ManagementFuelReportsIndexNewController
|
|
64
|
+
*/
|
|
65
|
+
@action transitionBack() {
|
|
66
|
+
return this.hostRouter.transitionTo('console.fleet-ops.management.fuel-reports.index');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Trigger a route refresh and focus the new fuel report created.
|
|
71
|
+
*
|
|
72
|
+
* @param {FuelReportModel} fuelReport
|
|
73
|
+
* @return {Promise}
|
|
74
|
+
* @memberof ManagementFuelReportsIndexNewController
|
|
75
|
+
*/
|
|
76
|
+
@action onAfterSave(fuelReport) {
|
|
77
|
+
if (this.overlay) {
|
|
78
|
+
this.overlay.close();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
this.hostRouter.refresh();
|
|
82
|
+
return this.hostRouter.transitionTo('console.fleet-ops.management.fuel-reports.index.details', fuelReport).then(() => {
|
|
83
|
+
this.resetForm();
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Resets the form with a new fuel report record
|
|
89
|
+
*
|
|
90
|
+
* @memberof ManagementFuelReportsIndexNewController
|
|
91
|
+
*/
|
|
92
|
+
resetForm() {
|
|
93
|
+
this.fuelReport = this.store.createRecord('fuelReport', { reporter: this.currentUser.user });
|
|
94
|
+
}
|
|
95
|
+
}
|