@fleetbase/fleetops-engine 0.3.1 → 0.3.3
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/admin/visibility-controls.js +1 -0
- 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/layout/fleet-ops-sidebar.js +2 -1
- package/addon/components/live-map-drawer/driver-listing.hbs +6 -0
- package/addon/components/live-map-drawer/driver-listing.js +240 -0
- package/addon/components/live-map-drawer/place-listing.hbs +6 -0
- package/addon/components/live-map-drawer/place-listing.js +204 -0
- package/addon/components/live-map-drawer/vehicle-listing.hbs +6 -0
- package/addon/components/live-map-drawer/vehicle-listing.js +216 -0
- package/addon/components/live-map-drawer.hbs +17 -0
- package/addon/components/live-map-drawer.js +104 -0
- package/addon/components/live-map.hbs +5 -1
- package/addon/components/live-map.js +109 -15
- package/addon/components/map-container/toolbar.hbs +15 -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/modals/order-event.hbs +1 -1
- package/addon/components/order/schedule-card.hbs +4 -4
- package/addon/components/order/schedule-card.js +13 -6
- 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/controllers/operations/orders/index.js +29 -15
- package/addon/controllers/operations/scheduler/index.js +45 -30
- 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/operations/scheduler/index.js +25 -0
- package/addon/routes.js +27 -7
- package/addon/services/context-panel.js +60 -0
- package/addon/styles/fleetops-engine.css +28 -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 +5 -5
- package/addon/templates/operations/scheduler/index.hbs +33 -9
- package/addon/utils/create-full-calendar-event-from-order.js +8 -0
- 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/{full-calendar/draggable.js → fleet-listing-panel.js} +1 -1
- 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/{full-calendar.js → fuel-report-panel.js} +1 -1
- package/app/components/issue-form-panel.js +1 -0
- package/app/components/issue-panel.js +1 -0
- package/app/components/live-map-drawer/driver-listing.js +1 -0
- package/app/components/live-map-drawer/place-listing.js +1 -0
- package/app/components/live-map-drawer/vehicle-listing.js +1 -0
- package/app/components/live-map-drawer.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/app/utils/create-full-calendar-event-from-order.js +1 -0
- package/composer.json +1 -1
- package/config/environment.js +2 -1
- package/extension.json +1 -1
- package/package.json +5 -4
- 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 +35 -4
- package/server/src/Models/FuelReport.php +53 -3
- package/server/src/Models/Issue.php +106 -7
- package/server/src/Models/Order.php +22 -0
- package/server/src/Models/Vehicle.php +1 -1
- package/server/src/Models/VehicleDevice.php +4 -2
- package/server/src/Models/VehicleDeviceEvent.php +8 -4
- package/server/src/Notifications/OrderAssigned.php +0 -6
- package/server/src/Notifications/OrderCanceled.php +0 -6
- package/server/src/Notifications/OrderDispatchFailed.php +0 -6
- package/server/src/Notifications/OrderDispatched.php +0 -6
- package/server/src/Notifications/OrderPing.php +0 -6
- package/server/src/Notifications/OrderSplit.php +0 -6
- package/server/src/Observers/FleetObserver.php +19 -0
- package/server/src/Providers/FleetOpsServiceProvider.php +1 -0
- package/server/src/Providers/NotificationServiceProvider.php +1 -1
- package/server/src/routes.php +2 -2
- package/addon/components/full-calendar/draggable.js +0 -1
- package/addon/components/full-calendar.js +0 -1
|
@@ -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 ManagementContactsIndexEditController extends Controller {
|
|
7
|
+
/**
|
|
8
|
+
* Inject the `hostRouter` service
|
|
9
|
+
*
|
|
10
|
+
* @memberof ManagementcontactsIndexEditController
|
|
11
|
+
*/
|
|
12
|
+
@service hostRouter;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Inject the `hostRouter` service
|
|
16
|
+
*
|
|
17
|
+
* @memberof ManagementcontactsIndexEditController
|
|
18
|
+
*/
|
|
19
|
+
@service modalsManager;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The overlay component context.
|
|
23
|
+
*
|
|
24
|
+
* @memberof ManagementcontactsIndexEditController
|
|
25
|
+
*/
|
|
26
|
+
@tracked overlay;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* When exiting the overlay.
|
|
30
|
+
*
|
|
31
|
+
* @return {Transition}
|
|
32
|
+
* @memberof ManagementcontactsIndexEditController
|
|
33
|
+
*/
|
|
34
|
+
@action transitionBack(contact) {
|
|
35
|
+
// check if contact record has been edited and prompt for confirmation
|
|
36
|
+
if (contact.hasDirtyAttributes) {
|
|
37
|
+
return this.confirmContinueWithUnsavedChanges(contact, {
|
|
38
|
+
confirm: () => {
|
|
39
|
+
contact.rollbackAttributes();
|
|
40
|
+
return this.transitionToRoute('management.contacts.index');
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return this.transitionToRoute('management.contacts.index');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Set the overlay component context object.
|
|
50
|
+
*
|
|
51
|
+
* @param {OverlayContext} overlay
|
|
52
|
+
* @memberof ManagementcontactsIndexEditController
|
|
53
|
+
*/
|
|
54
|
+
@action setOverlayContext(overlay) {
|
|
55
|
+
this.overlay = overlay;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* When contact details button is clicked in overlay.
|
|
60
|
+
*
|
|
61
|
+
* @param {ContactModel} contact
|
|
62
|
+
* @return {Promise}
|
|
63
|
+
* @memberof ManagementcontactsIndexEditController
|
|
64
|
+
*/
|
|
65
|
+
@action onViewDetails(contact) {
|
|
66
|
+
// check if contact record has been edited and prompt for confirmation
|
|
67
|
+
if (contact.hasDirtyAttributes) {
|
|
68
|
+
return this.confirmContinueWithUnsavedChanges(contact);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return this.transitionToRoute('management.contacts.index.details', contact);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Trigger a route refresh and focus the new contact created.
|
|
76
|
+
*
|
|
77
|
+
* @param {ContactModel} contact
|
|
78
|
+
* @return {Promise}
|
|
79
|
+
* @memberof ManagementcontactsIndexEditController
|
|
80
|
+
*/
|
|
81
|
+
@action onAfterSave(contact) {
|
|
82
|
+
if (this.overlay) {
|
|
83
|
+
this.overlay.close();
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
this.hostRouter.refresh();
|
|
87
|
+
return this.transitionToRoute('management.contacts.index.details', contact);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Prompts the user to confirm if they wish to continue with unsaved changes.
|
|
92
|
+
*
|
|
93
|
+
* @method
|
|
94
|
+
* @param {ContactModel} contact - The contact 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 ManagementcontactsIndexEditController
|
|
98
|
+
*/
|
|
99
|
+
confirmContinueWithUnsavedChanges(contact, options = {}) {
|
|
100
|
+
return this.modalsManager.confirm({
|
|
101
|
+
title: 'Continue Without Saving?',
|
|
102
|
+
body: 'Unsaved changes to this contact will be lost. Click continue to proceed.',
|
|
103
|
+
acceptButtonText: 'Continue without saving',
|
|
104
|
+
confirm: () => {
|
|
105
|
+
contact.rollbackAttributes();
|
|
106
|
+
return this.transitionToRoute('management.contacts.index.details', contact);
|
|
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 ManagementContactsIndexNewController extends Controller {
|
|
7
|
+
/**
|
|
8
|
+
* Inject the `store` service
|
|
9
|
+
*
|
|
10
|
+
* @memberof ManagementcontactsIndexNewController
|
|
11
|
+
*/
|
|
12
|
+
@service store;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Inject the `hostRouter` service
|
|
16
|
+
*
|
|
17
|
+
* @memberof ManagementcontactsIndexNewController
|
|
18
|
+
*/
|
|
19
|
+
@service hostRouter;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Inject the `hostRouter` service
|
|
23
|
+
*
|
|
24
|
+
* @memberof ManagementcontactsIndexNewController
|
|
25
|
+
*/
|
|
26
|
+
@service modalsManager;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The overlay component context.
|
|
30
|
+
*
|
|
31
|
+
* @memberof ManagementcontactsIndexNewController
|
|
32
|
+
*/
|
|
33
|
+
@tracked overlay;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The contact being created.
|
|
37
|
+
*
|
|
38
|
+
* @var {contactModel}
|
|
39
|
+
*/
|
|
40
|
+
@tracked contact = this.store.createRecord('contact', { type: 'contact', status: 'active' });
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Set the overlay component context object.
|
|
44
|
+
*
|
|
45
|
+
* @param {OverlayContext} overlay
|
|
46
|
+
* @memberof ManagementcontactsIndexNewController
|
|
47
|
+
*/
|
|
48
|
+
@action setOverlayContext(overlay) {
|
|
49
|
+
this.overlay = overlay;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* When exiting the overlay.
|
|
54
|
+
*
|
|
55
|
+
* @return {Transition}
|
|
56
|
+
* @memberof ManagementcontactsIndexNewController
|
|
57
|
+
*/
|
|
58
|
+
@action transitionBack() {
|
|
59
|
+
return this.transitionToRoute('management.contacts.index');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Trigger a route refresh and focus the new contact created.
|
|
64
|
+
*
|
|
65
|
+
* @param {contactModel} contact
|
|
66
|
+
* @return {Promise}
|
|
67
|
+
* @memberof ManagementcontactsIndexNewController
|
|
68
|
+
*/
|
|
69
|
+
@action onAfterSave(contact) {
|
|
70
|
+
if (this.overlay) {
|
|
71
|
+
this.overlay.close();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
this.hostRouter.refresh();
|
|
75
|
+
return this.transitionToRoute('management.contacts.index.details', contact).then(() => {
|
|
76
|
+
this.resetForm();
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Resets the form with a new contact record
|
|
82
|
+
*
|
|
83
|
+
* @memberof ManagementcontactsIndexNewController
|
|
84
|
+
*/
|
|
85
|
+
resetForm() {
|
|
86
|
+
this.contact = this.store.createRecord('contact', { type: 'contact', status: 'active' });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -258,24 +258,6 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
258
258
|
this.query = value;
|
|
259
259
|
}
|
|
260
260
|
|
|
261
|
-
/**
|
|
262
|
-
* Bulk deletes selected `driver` via confirm prompt
|
|
263
|
-
*
|
|
264
|
-
* @param {Array} selected an array of selected models
|
|
265
|
-
* @void
|
|
266
|
-
*/
|
|
267
|
-
@action bulkDeleteContacts() {
|
|
268
|
-
const selected = this.table.selectedRows;
|
|
269
|
-
|
|
270
|
-
this.crud.bulkDelete(selected, {
|
|
271
|
-
modelNamePath: `name`,
|
|
272
|
-
acceptButtonText: 'Delete Contacts',
|
|
273
|
-
onSuccess: () => {
|
|
274
|
-
return this.hostRouter.refresh();
|
|
275
|
-
},
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
|
|
279
261
|
/**
|
|
280
262
|
* Toggles dialog to export `contact`
|
|
281
263
|
*
|
|
@@ -289,134 +271,29 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
289
271
|
* View a `contact` details in modal
|
|
290
272
|
*
|
|
291
273
|
* @param {ContactModel} contact
|
|
292
|
-
* @param {Object} options
|
|
293
274
|
* @void
|
|
294
275
|
*/
|
|
295
|
-
@action viewContact(contact
|
|
296
|
-
this.
|
|
297
|
-
title: contact.name,
|
|
298
|
-
titleComponent: 'modal/title-with-buttons',
|
|
299
|
-
acceptButtonText: 'Done',
|
|
300
|
-
acceptButtonIcon: 'check',
|
|
301
|
-
acceptButtonIconPrefix: 'fas',
|
|
302
|
-
hideDeclineButton: true,
|
|
303
|
-
headerButtons: [
|
|
304
|
-
{
|
|
305
|
-
icon: 'cog',
|
|
306
|
-
iconPrefix: 'fas',
|
|
307
|
-
type: 'link',
|
|
308
|
-
size: 'xs',
|
|
309
|
-
options: [
|
|
310
|
-
{
|
|
311
|
-
title: 'Edit Contact',
|
|
312
|
-
action: () => {
|
|
313
|
-
this.modalsManager.done().then(() => {
|
|
314
|
-
return this.editContact(contact, {
|
|
315
|
-
onFinish: () => {
|
|
316
|
-
this.viewContact(contact);
|
|
317
|
-
},
|
|
318
|
-
});
|
|
319
|
-
});
|
|
320
|
-
},
|
|
321
|
-
},
|
|
322
|
-
{
|
|
323
|
-
title: 'Delete Contact',
|
|
324
|
-
action: () => {
|
|
325
|
-
this.modalsManager.done().then(() => {
|
|
326
|
-
return this.deleteContact(contact, {
|
|
327
|
-
onDecline: () => {
|
|
328
|
-
this.viewContact(contact);
|
|
329
|
-
},
|
|
330
|
-
});
|
|
331
|
-
});
|
|
332
|
-
},
|
|
333
|
-
},
|
|
334
|
-
],
|
|
335
|
-
},
|
|
336
|
-
],
|
|
337
|
-
contact,
|
|
338
|
-
...options,
|
|
339
|
-
});
|
|
276
|
+
@action viewContact(contact) {
|
|
277
|
+
return this.transitionToRoute('management.contacts.index.details', contact);
|
|
340
278
|
}
|
|
341
279
|
|
|
342
280
|
/**
|
|
343
281
|
* Create a new `contact` in modal
|
|
344
282
|
*
|
|
345
|
-
* @param {Object} options
|
|
346
283
|
* @void
|
|
347
284
|
*/
|
|
348
285
|
@action createContact() {
|
|
349
|
-
|
|
350
|
-
photo_url: `/images/no-avatar.png`,
|
|
351
|
-
});
|
|
352
|
-
|
|
353
|
-
return this.editContact(contact, {
|
|
354
|
-
title: 'New Contact',
|
|
355
|
-
acceptButtonText: 'Confirm & Create',
|
|
356
|
-
acceptButtonIcon: 'check',
|
|
357
|
-
acceptButtonIconPrefix: 'fas',
|
|
358
|
-
successNotification: (contact) => `New contact (${contact.name}) created.`,
|
|
359
|
-
onConfirm: () => {
|
|
360
|
-
return this.hostRouter.refresh();
|
|
361
|
-
},
|
|
362
|
-
});
|
|
286
|
+
return this.transitionToRoute('management.contacts.index.new');
|
|
363
287
|
}
|
|
364
288
|
|
|
365
289
|
/**
|
|
366
290
|
* Edit a `contact` details
|
|
367
291
|
*
|
|
368
292
|
* @param {ContactModel} contact
|
|
369
|
-
* @param {Object} options
|
|
370
293
|
* @void
|
|
371
294
|
*/
|
|
372
|
-
@action editContact(contact
|
|
373
|
-
this.
|
|
374
|
-
title: 'Edit Contact',
|
|
375
|
-
acceptButtonText: 'Save Changes',
|
|
376
|
-
acceptButtonIcon: 'save',
|
|
377
|
-
declineButtonIcon: 'times',
|
|
378
|
-
declineButtonIconPrefix: 'fas',
|
|
379
|
-
contactTypes: this.contactTypes,
|
|
380
|
-
contact,
|
|
381
|
-
uploadNewPhoto: (file) => {
|
|
382
|
-
this.fetch.uploadFile.perform(
|
|
383
|
-
file,
|
|
384
|
-
{
|
|
385
|
-
path: `uploads/${contact.company_uuid}/contacts/${contact.slug}`,
|
|
386
|
-
subject_uuid: contact.id,
|
|
387
|
-
subject_type: 'contact',
|
|
388
|
-
type: 'contact_photo',
|
|
389
|
-
},
|
|
390
|
-
(uploadedFile) => {
|
|
391
|
-
contact.setProperties({
|
|
392
|
-
photo_uuid: uploadedFile.id,
|
|
393
|
-
photo_url: uploadedFile.url,
|
|
394
|
-
photo: uploadedFile,
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
);
|
|
398
|
-
},
|
|
399
|
-
confirm: (modal, done) => {
|
|
400
|
-
modal.startLoading();
|
|
401
|
-
|
|
402
|
-
return contact
|
|
403
|
-
.save()
|
|
404
|
-
.then((contact) => {
|
|
405
|
-
if (typeof options.successNotification === 'function') {
|
|
406
|
-
this.notifications.success(options.successNotification(contact));
|
|
407
|
-
} else {
|
|
408
|
-
this.notifications.success(options.successNotification ?? `${contact.name} details updated.`);
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
done();
|
|
412
|
-
})
|
|
413
|
-
.catch((error) => {
|
|
414
|
-
modal.stopLoading();
|
|
415
|
-
this.notifications.serverError(error);
|
|
416
|
-
});
|
|
417
|
-
},
|
|
418
|
-
...options,
|
|
419
|
-
});
|
|
295
|
+
@action editContact(contact) {
|
|
296
|
+
return this.transitionToRoute('management.contacts.index.edit', contact);
|
|
420
297
|
}
|
|
421
298
|
|
|
422
299
|
/**
|
|
@@ -435,4 +312,22 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
435
312
|
...options,
|
|
436
313
|
});
|
|
437
314
|
}
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Bulk deletes selected `contacts` via confirm prompt
|
|
318
|
+
*
|
|
319
|
+
* @param {Array} selected an array of selected models
|
|
320
|
+
* @void
|
|
321
|
+
*/
|
|
322
|
+
@action bulkDeleteContacts() {
|
|
323
|
+
const selected = this.table.selectedRows;
|
|
324
|
+
|
|
325
|
+
this.crud.bulkDelete(selected, {
|
|
326
|
+
modelNamePath: `name`,
|
|
327
|
+
acceptButtonText: 'Delete Contacts',
|
|
328
|
+
onSuccess: () => {
|
|
329
|
+
return this.hostRouter.refresh();
|
|
330
|
+
},
|
|
331
|
+
});
|
|
332
|
+
}
|
|
438
333
|
}
|
|
@@ -37,7 +37,7 @@ export default class ManagementDriversIndexNewController extends Controller {
|
|
|
37
37
|
*
|
|
38
38
|
* @var {DriverModel}
|
|
39
39
|
*/
|
|
40
|
-
@tracked driver = this.store.createRecord('driver');
|
|
40
|
+
@tracked driver = this.store.createRecord('driver', { status: 'active' });
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
43
|
* Set the overlay component context object.
|
|
@@ -83,6 +83,6 @@ export default class ManagementDriversIndexNewController extends Controller {
|
|
|
83
83
|
* @memberof ManagementDriversIndexNewController
|
|
84
84
|
*/
|
|
85
85
|
resetForm() {
|
|
86
|
-
this.driver = this.store.createRecord('driver');
|
|
86
|
+
this.driver = this.store.createRecord('driver', { status: 'active' });
|
|
87
87
|
}
|
|
88
88
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
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';
|
|
@@ -8,30 +8,8 @@ import { timeout } from 'ember-concurrency';
|
|
|
8
8
|
import { task } from 'ember-concurrency-decorators';
|
|
9
9
|
import extractCoordinates from '@fleetbase/ember-core/utils/extract-coordinates';
|
|
10
10
|
import leafletIcon from '@fleetbase/ember-core/utils/leaflet-icon';
|
|
11
|
-
// import Point from '@fleetbase/fleetops-data/utils/geojson/point';
|
|
12
11
|
|
|
13
12
|
export default class ManagementDriversIndexController extends Controller {
|
|
14
|
-
/**
|
|
15
|
-
* Inject the `management.vendors.index` controller
|
|
16
|
-
*
|
|
17
|
-
* @var {Controller}
|
|
18
|
-
*/
|
|
19
|
-
@controller('management.vendors.index') vendors;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Inject the `management.vehicles.index` controller
|
|
23
|
-
*
|
|
24
|
-
* @var {Controller}
|
|
25
|
-
*/
|
|
26
|
-
@controller('management.vehicles.index') vehicles;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Inject the `management.fleets.index` controller
|
|
30
|
-
*
|
|
31
|
-
* @var {Controller}
|
|
32
|
-
*/
|
|
33
|
-
@controller('management.fleets.index') fleets;
|
|
34
|
-
|
|
35
13
|
/**
|
|
36
14
|
* Inject the `notifications` service
|
|
37
15
|
*
|
|
@@ -224,7 +202,18 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
224
202
|
*/
|
|
225
203
|
@tracked layout = 'table';
|
|
226
204
|
|
|
205
|
+
/**
|
|
206
|
+
* True if the current layout style is grid.
|
|
207
|
+
*
|
|
208
|
+
* @memberof ManagementDriversIndexController
|
|
209
|
+
*/
|
|
227
210
|
@equal('layout', 'grid') isGridLayout;
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
*Ttrue if the current layour style is table.
|
|
214
|
+
*
|
|
215
|
+
* @memberof ManagementDriversIndexController
|
|
216
|
+
*/
|
|
228
217
|
@equal('layout', 'table') isTableLayout;
|
|
229
218
|
|
|
230
219
|
/**
|
|
@@ -307,7 +296,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
307
296
|
cellComponent: 'table/cell/link-list',
|
|
308
297
|
cellComponentLabelPath: 'name',
|
|
309
298
|
action: (fleet) => {
|
|
310
|
-
this.
|
|
299
|
+
this.contextPanel.focus(fleet);
|
|
311
300
|
},
|
|
312
301
|
valuePath: 'fleets',
|
|
313
302
|
width: '180px',
|
|
@@ -664,16 +653,13 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
664
653
|
* View information about the driver vendor
|
|
665
654
|
*
|
|
666
655
|
* @param {DriverModel} driver
|
|
667
|
-
* @param {Object} options
|
|
668
656
|
* @void
|
|
669
657
|
*/
|
|
670
|
-
@action async viewDriverVendor(driver
|
|
671
|
-
|
|
658
|
+
@action async viewDriverVendor(driver) {
|
|
659
|
+
const vendor = await driver.loadVendor();
|
|
672
660
|
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
return this.vendors.viewVendor(vendor, options);
|
|
677
|
-
});
|
|
661
|
+
if (vendor) {
|
|
662
|
+
this.contextPanel.focus(vendor);
|
|
663
|
+
}
|
|
678
664
|
}
|
|
679
665
|
}
|
|
@@ -1,8 +1,61 @@
|
|
|
1
1
|
import Controller from '@ember/controller';
|
|
2
|
+
import { tracked } from '@glimmer/tracking';
|
|
2
3
|
import { action } from '@ember/object';
|
|
3
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Controller for managing the details view within the "Management -> Fleets -> Index" route.
|
|
7
|
+
*
|
|
8
|
+
* @class ManagementFleetsIndexDetailsController
|
|
9
|
+
* @extends Controller
|
|
10
|
+
*/
|
|
4
11
|
export default class ManagementFleetsIndexDetailsController extends Controller {
|
|
12
|
+
/**
|
|
13
|
+
* The currently active view tab ('details' by default).
|
|
14
|
+
*
|
|
15
|
+
* @type {String}
|
|
16
|
+
* @tracked
|
|
17
|
+
*/
|
|
18
|
+
@tracked view = 'details';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* An array of query parameters to be serialized in the URL.
|
|
22
|
+
*
|
|
23
|
+
* @type {String[]}
|
|
24
|
+
* @tracked
|
|
25
|
+
*/
|
|
26
|
+
@tracked queryParams = ['view'];
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Transitions back to the "management.fleets.index" route.
|
|
30
|
+
*
|
|
31
|
+
* @method
|
|
32
|
+
* @action
|
|
33
|
+
* @returns {Transition} The transition object representing the route change.
|
|
34
|
+
*/
|
|
5
35
|
@action transitionBack() {
|
|
6
36
|
return this.transitionToRoute('management.fleets.index');
|
|
7
37
|
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Transitions to the edit view for a specific fleet.
|
|
41
|
+
*
|
|
42
|
+
* @method
|
|
43
|
+
* @param {FleetModel} fleet - The fleet to be edited.
|
|
44
|
+
* @action
|
|
45
|
+
* @returns {Transition} The transition object representing the route change.
|
|
46
|
+
*/
|
|
47
|
+
@action onEdit(fleet) {
|
|
48
|
+
return this.transitionToRoute('management.fleets.index.edit', fleet);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Updates the active view tab.
|
|
53
|
+
*
|
|
54
|
+
* @method
|
|
55
|
+
* @param {String} tab - The name of the tab to activate.
|
|
56
|
+
* @action
|
|
57
|
+
*/
|
|
58
|
+
@action onTabChanged(tab) {
|
|
59
|
+
this.view = tab;
|
|
60
|
+
}
|
|
8
61
|
}
|