@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,14 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ManagementIssuesIndexDetailsRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
queryParams = {
|
|
8
|
+
view: { refreshModel: false },
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
model({ public_id }) {
|
|
12
|
+
return this.store.queryRecord('issue', { public_id, single: true, with: ['driver', 'vehicle', 'assignee', 'reporter'] });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ManagementIssuesIndexEditRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
model({ public_id }) {
|
|
8
|
+
return this.store.queryRecord('issue', { public_id, single: true, with: ['driver', 'vehicle', 'assignee', 'reporter'] });
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ManagementPlacesIndexDetailsRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
queryParams = {
|
|
8
|
+
view: { refreshModel: false },
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
model({ public_id }) {
|
|
12
|
+
return this.store.findRecord('place', public_id);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ManagementPlacesIndexEditRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
model({ public_id }) {
|
|
8
|
+
return this.store.findRecord('place', public_id);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -4,6 +4,11 @@ import { inject as service } from '@ember/service';
|
|
|
4
4
|
export default class ManagementPlacesIndexRoute extends Route {
|
|
5
5
|
@service store;
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Queryable parameters
|
|
9
|
+
*
|
|
10
|
+
* @var {Object}
|
|
11
|
+
*/
|
|
7
12
|
queryParams = {
|
|
8
13
|
page: { refreshModel: true },
|
|
9
14
|
limit: { refreshModel: true },
|
|
@@ -13,6 +18,6 @@ export default class ManagementPlacesIndexRoute extends Route {
|
|
|
13
18
|
};
|
|
14
19
|
|
|
15
20
|
model(params) {
|
|
16
|
-
return this.store.query('place', {
|
|
21
|
+
return this.store.query('place', { params });
|
|
17
22
|
}
|
|
18
23
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ManagementVendorsIndexDetailsRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
queryParams = {
|
|
8
|
+
view: { refreshModel: false },
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
model({ public_id }) {
|
|
12
|
+
const isIntegratedVendor = typeof public_id === 'string' && public_id.startsWith('integrated_vendor_');
|
|
13
|
+
return this.store.findRecord(isIntegratedVendor ? 'integrated-vendor' : 'vendor', public_id);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ManagementVendorsIndexEditRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
model({ public_id }) {
|
|
8
|
+
const isIntegratedVendor = typeof public_id === 'string' && public_id.startsWith('integrated_vendor_');
|
|
9
|
+
return this.store.findRecord(isIntegratedVendor ? 'integrated-vendor' : 'vendor', public_id);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import Route from '@ember/routing/route';
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
|
+
import { isValid as isValidDate } from 'date-fns';
|
|
4
|
+
import { isNone } from '@ember/utils';
|
|
5
|
+
import createFullCalendarEventFromOrder from '../../../utils/create-full-calendar-event-from-order';
|
|
6
|
+
|
|
7
|
+
const getUnscheduledOrder = (order) => {
|
|
8
|
+
return isNone(order.scheduled_at);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const getScheduledOrder = (order) => {
|
|
12
|
+
return isValidDate(order.scheduled_at);
|
|
13
|
+
};
|
|
3
14
|
|
|
4
15
|
export default class OperationsSchedulerIndexRoute extends Route {
|
|
5
16
|
@service store;
|
|
@@ -7,4 +18,18 @@ export default class OperationsSchedulerIndexRoute extends Route {
|
|
|
7
18
|
model() {
|
|
8
19
|
return this.store.query('order', { status: 'created', with: ['payload'] });
|
|
9
20
|
}
|
|
21
|
+
|
|
22
|
+
setupController(controller, model) {
|
|
23
|
+
// get orders
|
|
24
|
+
const orders = model.toArray();
|
|
25
|
+
|
|
26
|
+
// set unscheduled orders
|
|
27
|
+
controller.unscheduledOrders = orders.filter(getUnscheduledOrder);
|
|
28
|
+
|
|
29
|
+
// set scheduled orders
|
|
30
|
+
controller.scheduledOrders = orders.filter(getScheduledOrder);
|
|
31
|
+
|
|
32
|
+
// create events from scheduledOrders
|
|
33
|
+
controller.events = controller.scheduledOrders.map(createFullCalendarEventFromOrder);
|
|
34
|
+
}
|
|
10
35
|
}
|
package/addon/routes.js
CHANGED
|
@@ -31,7 +31,11 @@ export default buildRoutes(function () {
|
|
|
31
31
|
});
|
|
32
32
|
});
|
|
33
33
|
this.route('vendors', function () {
|
|
34
|
-
this.route('index', { path: '/' })
|
|
34
|
+
this.route('index', { path: '/' }, function () {
|
|
35
|
+
this.route('new');
|
|
36
|
+
this.route('details', { path: '/:public_id' });
|
|
37
|
+
this.route('edit', { path: '/edit/:public_id' });
|
|
38
|
+
});
|
|
35
39
|
});
|
|
36
40
|
this.route('drivers', function () {
|
|
37
41
|
this.route('index', { path: '/' }, function () {
|
|
@@ -48,16 +52,32 @@ export default buildRoutes(function () {
|
|
|
48
52
|
});
|
|
49
53
|
});
|
|
50
54
|
this.route('places', function () {
|
|
51
|
-
this.route('index', { path: '/' })
|
|
55
|
+
this.route('index', { path: '/' }, function () {
|
|
56
|
+
this.route('new');
|
|
57
|
+
this.route('details', { path: '/:public_id' });
|
|
58
|
+
this.route('edit', { path: '/edit/:public_id' });
|
|
59
|
+
});
|
|
52
60
|
});
|
|
53
61
|
this.route('contacts', function () {
|
|
54
|
-
this.route('index', { path: '/' })
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
62
|
+
this.route('index', { path: '/' }, function () {
|
|
63
|
+
this.route('new');
|
|
64
|
+
this.route('details', { path: '/:public_id' });
|
|
65
|
+
this.route('edit', { path: '/edit/:public_id' });
|
|
66
|
+
});
|
|
58
67
|
});
|
|
59
68
|
this.route('fuel-reports', function () {
|
|
60
|
-
this.route('index', { path: '/' })
|
|
69
|
+
this.route('index', { path: '/' }, function () {
|
|
70
|
+
this.route('new');
|
|
71
|
+
this.route('details', { path: '/:public_id' });
|
|
72
|
+
this.route('edit', { path: '/edit/:public_id' });
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
this.route('issues', function () {
|
|
76
|
+
this.route('index', { path: '/' }, function () {
|
|
77
|
+
this.route('new');
|
|
78
|
+
this.route('details', { path: '/:public_id' });
|
|
79
|
+
this.route('edit', { path: '/edit/:public_id' });
|
|
80
|
+
});
|
|
61
81
|
});
|
|
62
82
|
this.route('settings', function () {});
|
|
63
83
|
});
|
|
@@ -36,6 +36,66 @@ export default class ContextPanelService extends Service {
|
|
|
36
36
|
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
37
37
|
},
|
|
38
38
|
},
|
|
39
|
+
fleet: {
|
|
40
|
+
viewing: {
|
|
41
|
+
component: 'fleet-panel',
|
|
42
|
+
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
43
|
+
},
|
|
44
|
+
editing: {
|
|
45
|
+
component: 'fleet-form-panel',
|
|
46
|
+
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
fuelReport: {
|
|
50
|
+
viewing: {
|
|
51
|
+
component: 'fuel-report-panel',
|
|
52
|
+
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
53
|
+
},
|
|
54
|
+
editing: {
|
|
55
|
+
component: 'fuel-report-form-panel',
|
|
56
|
+
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
vendor: {
|
|
60
|
+
viewing: {
|
|
61
|
+
component: 'vendor-panel',
|
|
62
|
+
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
63
|
+
},
|
|
64
|
+
editing: {
|
|
65
|
+
component: 'vendor-form-panel',
|
|
66
|
+
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
contact: {
|
|
70
|
+
viewing: {
|
|
71
|
+
component: 'contact-panel',
|
|
72
|
+
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
73
|
+
},
|
|
74
|
+
editing: {
|
|
75
|
+
component: 'contact-form-panel',
|
|
76
|
+
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
place: {
|
|
80
|
+
viewing: {
|
|
81
|
+
component: 'place-panel',
|
|
82
|
+
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
83
|
+
},
|
|
84
|
+
editing: {
|
|
85
|
+
component: 'place-form-panel',
|
|
86
|
+
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
issue: {
|
|
90
|
+
viewing: {
|
|
91
|
+
component: 'issue-panel',
|
|
92
|
+
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
93
|
+
},
|
|
94
|
+
editing: {
|
|
95
|
+
component: 'issue-form-panel',
|
|
96
|
+
componentArguments: [{ isResizable: true }, { width: '600px' }],
|
|
97
|
+
},
|
|
98
|
+
},
|
|
39
99
|
};
|
|
40
100
|
|
|
41
101
|
/**
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
.scheduler-left-sidebar {
|
|
2
|
+
border-right: 1px rgba(229, 231, 235, 1) solid;
|
|
3
|
+
height: 100vh;
|
|
4
|
+
overflow-y: scroll;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
body[data-theme="dark"] .scheduler-left-sidebar {
|
|
8
|
+
border-right: 1px rgba(55, 65, 81, 1) solid;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.scheduler-left-sidebar > .next-content-panel-wrapper > .next-content-panel-container > .next-content-panel > .next-content-panel-header.next-content-panel-is-closed {
|
|
12
|
+
border-bottom-left-radius: 0;
|
|
13
|
+
border-bottom-right-radius: 0;
|
|
14
|
+
}
|
|
15
|
+
.scheduler-left-sidebar > .next-content-panel-wrapper > .next-content-panel-container > .next-content-panel > .next-content-panel-header {
|
|
16
|
+
border-top-left-radius: 0;
|
|
17
|
+
border-top-right-radius: 0;
|
|
18
|
+
border-top: 0;
|
|
19
|
+
border-left: 0;
|
|
20
|
+
border-right: 0;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.scheduler-left-sidebar > .next-content-panel-wrapper > .next-content-panel-container > .next-content-panel > .next-content-panel-body {
|
|
24
|
+
border-left: 0;
|
|
25
|
+
border-right: 0;
|
|
26
|
+
border-bottom-left-radius: 0;
|
|
27
|
+
border-bottom-right-radius: 0;
|
|
28
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<ContactPanel @contact={{@model}} @tab={{this.view}} @onTabChanged={{this.onTabChanged}} @onPressCancel={{this.transitionBack}} @onEdit={{this.onEdit}} />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<ContactFormPanel @contact={{@model}} @onPressCancel={{this.transitionBack}} @onAfterSave={{this.onAfterSave}} @onViewDetails={{this.onViewDetails}} @onLoad={{this.setOverlayContext}} />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<ContactFormPanel @contact={{this.contact}} @onPressCancel={{this.transitionBack}} @onAfterSave={{this.onAfterSave}} @onLoad={{this.setOverlayContext}} />
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Contacts" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<FiltersPicker
|
|
2
|
+
<FiltersPicker
|
|
3
|
+
@columns={{this.columns}}
|
|
4
|
+
@onApply={{fn this.filters.apply this}}
|
|
5
|
+
@onClear={{fn this.filters.reset this}}
|
|
6
|
+
@onFilterClear={{this.filters.clear}}
|
|
7
|
+
@onChange={{this.filters.set}}
|
|
8
|
+
@buttonWrapperClass="mr-2"
|
|
9
|
+
/>
|
|
3
10
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
|
-
|
|
11
|
+
{{#if (safe-has this.table "selectedRows")}}
|
|
5
12
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
6
13
|
<div class="next-dd-menu mt-2 mx-0">
|
|
7
14
|
<div class="px-1">
|
|
@@ -17,7 +24,19 @@
|
|
|
17
24
|
</Layout::Section::Header>
|
|
18
25
|
|
|
19
26
|
<Layout::Section::Body>
|
|
20
|
-
<Table
|
|
27
|
+
<Table
|
|
28
|
+
@rows={{@model}}
|
|
29
|
+
@columns={{this.columns}}
|
|
30
|
+
@selectable={{true}}
|
|
31
|
+
@canSelectAll={{true}}
|
|
32
|
+
@onSetup={{fn (mut this.table)}}
|
|
33
|
+
@pagination={{true}}
|
|
34
|
+
@paginationMeta={{@model.meta}}
|
|
35
|
+
@page={{this.page}}
|
|
36
|
+
@onPageChange={{fn (mut this.page)}}
|
|
37
|
+
@tfootVerticalOffset="53"
|
|
38
|
+
@tfootVerticalOffsetElements=".next-view-section-subheader"
|
|
39
|
+
/>
|
|
21
40
|
</Layout::Section::Body>
|
|
22
41
|
|
|
23
42
|
{{outlet}}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
<Layout::Section::Header
|
|
1
|
+
<Layout::Section::Header
|
|
2
|
+
@title={{t "fleet-ops.management.drivers.index.title"}}
|
|
3
|
+
@searchPlaceholder={{t "fleet-ops.management.drivers.index.fields.search.placeholder"}}
|
|
4
|
+
@searchQuery={{this.query}}
|
|
5
|
+
@onSearch={{perform this.search}}
|
|
6
|
+
>
|
|
2
7
|
<Button @icon="grip-horizontal" @prefix="fas" @onClick={{fn this.changeLayout "grid"}} @disabled={{this.isGridLayout}} class="mr-2" />
|
|
3
8
|
<Button @icon="table" @prefix="fas" @onClick={{fn this.changeLayout "table"}} @disabled={{this.isTableLayout}} class="mr-2" />
|
|
4
|
-
<FiltersPicker
|
|
9
|
+
<FiltersPicker
|
|
10
|
+
@columns={{this.columns}}
|
|
11
|
+
@onApply={{fn this.filters.apply this}}
|
|
12
|
+
@onClear={{fn this.filters.reset this}}
|
|
13
|
+
@onFilterClear={{this.filters.clear}}
|
|
14
|
+
@onChange={{this.filters.set}}
|
|
15
|
+
@buttonWrapperClass="mr-2"
|
|
16
|
+
/>
|
|
5
17
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
6
|
-
|
|
18
|
+
{{#if (safe-has this.table "selectedRows")}}
|
|
7
19
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
8
20
|
<div class="next-dd-menu mt-2 mx-0">
|
|
9
21
|
<div class="px-1">
|
|
@@ -20,7 +32,19 @@
|
|
|
20
32
|
|
|
21
33
|
{{#if this.isTableLayout}}
|
|
22
34
|
<Layout::Section::Body>
|
|
23
|
-
<Table
|
|
35
|
+
<Table
|
|
36
|
+
@rows={{@model}}
|
|
37
|
+
@columns={{this.columns}}
|
|
38
|
+
@selectable={{true}}
|
|
39
|
+
@canSelectAll={{true}}
|
|
40
|
+
@onSetup={{fn (mut this.table)}}
|
|
41
|
+
@pagination={{true}}
|
|
42
|
+
@paginationMeta={{@model.meta}}
|
|
43
|
+
@page={{this.page}}
|
|
44
|
+
@onPageChange={{fn (mut this.page)}}
|
|
45
|
+
@tfootVerticalOffset="53"
|
|
46
|
+
@tfootVerticalOffsetElements=".next-view-section-subheader"
|
|
47
|
+
/>
|
|
24
48
|
</Layout::Section::Body>
|
|
25
49
|
{{/if}}
|
|
26
50
|
|
|
@@ -34,4 +58,4 @@
|
|
|
34
58
|
</div>
|
|
35
59
|
{{/if}}
|
|
36
60
|
|
|
37
|
-
{{outlet}}
|
|
61
|
+
{{outlet}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<FleetPanel @fleet={{@model}} @tab={{this.view}} @onPressCancel={{this.transitionBack}} />
|
|
1
|
+
<FleetPanel @fleet={{@model}} @tab={{this.view}} @onTabChanged={{this.onTabChanged}} @onPressCancel={{this.transitionBack}} @onEdit={{this.onEdit}} />
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<FleetFormPanel @fleet={{@model}} @
|
|
1
|
+
<FleetFormPanel @fleet={{@model}} @onPressCancel={{this.transitionBack}} @onViewDetails={{this.onViewDetails}} @onAfterSave={{this.onAfterSave}} @onLoad={{this.setOverlayContext}} />
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<FleetFormPanel @fleet={{this.fleet}} @
|
|
1
|
+
<FleetFormPanel @fleet={{this.fleet}} @onPressCancel={{this.transitionBack}} @onAfterSave={{this.onAfterSave}} @onLoad={{this.setOverlayContext}} />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<FuelReportPanel @fuelReport={{@model}} @tab={{this.view}} @onTabChanged={{this.onTabChanged}} @onPressCancel={{this.transitionBack}} @onEdit={{this.onEdit}} />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<FuelReportFormPanel @fuelReport={{@model}} @onPressCancel={{this.transitionBack}} @onAfterSave={{this.onAfterSave}} @onViewDetails={{this.onViewDetails}} @onLoad={{this.setOverlayContext}} />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<FuelReportFormPanel @fuelReport={{this.fuelReport}} @onPressCancel={{this.transitionBack}} @onAfterSave={{this.onAfterSave}} @onLoad={{this.setOverlayContext}} />
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Fuel Reports" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<FiltersPicker
|
|
2
|
+
<FiltersPicker
|
|
3
|
+
@columns={{this.columns}}
|
|
4
|
+
@onApply={{fn this.filters.apply this}}
|
|
5
|
+
@onClear={{fn this.filters.reset this}}
|
|
6
|
+
@onFilterClear={{this.filters.clear}}
|
|
7
|
+
@onChange={{this.filters.set}}
|
|
8
|
+
@buttonWrapperClass="mr-2"
|
|
9
|
+
/>
|
|
3
10
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
|
-
|
|
11
|
+
{{#if (safe-has this.table "selectedRows")}}
|
|
5
12
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
6
13
|
<div class="next-dd-menu mt-2 mx-0">
|
|
7
14
|
<div class="px-1">
|
|
@@ -17,5 +24,19 @@
|
|
|
17
24
|
</Layout::Section::Header>
|
|
18
25
|
|
|
19
26
|
<Layout::Section::Body @pagination={{true}} @onToggleAll={{this.toggleAll}} @allToggled={{this.allToggled}}>
|
|
20
|
-
<Table
|
|
21
|
-
|
|
27
|
+
<Table
|
|
28
|
+
@rows={{@model}}
|
|
29
|
+
@columns={{this.columns}}
|
|
30
|
+
@selectable={{true}}
|
|
31
|
+
@canSelectAll={{true}}
|
|
32
|
+
@onSetup={{fn (mut this.table)}}
|
|
33
|
+
@pagination={{true}}
|
|
34
|
+
@paginationMeta={{@model.meta}}
|
|
35
|
+
@page={{this.page}}
|
|
36
|
+
@onPageChange={{fn (mut this.page)}}
|
|
37
|
+
@tfootVerticalOffset="53"
|
|
38
|
+
@tfootVerticalOffsetElements=".next-view-section-subheader"
|
|
39
|
+
/>
|
|
40
|
+
</Layout::Section::Body>
|
|
41
|
+
|
|
42
|
+
{{outlet}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<IssuePanel @issue={{@model}} @tab={{this.view}} @onTabChanged={{this.onTabChanged}} @onPressCancel={{this.transitionBack}} @onEdit={{this.onEdit}} />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<IssueFormPanel @issue={{@model}} @onPressCancel={{this.transitionBack}} @onAfterSave={{this.onAfterSave}} @onViewDetails={{this.onViewDetails}} @onLoad={{this.setOverlayContext}} />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<IssueFormPanel @issue={{this.issue}} @onPressCancel={{this.transitionBack}} @onAfterSave={{this.onAfterSave}} @onLoad={{this.setOverlayContext}} />
|
|
@@ -12,10 +12,12 @@
|
|
|
12
12
|
</div>
|
|
13
13
|
</DropdownButton>
|
|
14
14
|
{{/if}}
|
|
15
|
-
<Button @icon="plus" @iconPrefix="fas" @type="primary" @text="New" class="mr-2" />
|
|
16
|
-
<Button @icon="long-arrow-up" @iconClass="rotate-icon-45" @text="Export" />
|
|
15
|
+
<Button @icon="plus" @iconPrefix="fas" @type="primary" @text="New" class="mr-2" @onClick={{this.createIssue}} />
|
|
16
|
+
<Button @icon="long-arrow-up" @iconClass="rotate-icon-45" @text="Export" @onClick={{this.exportIssues}} />
|
|
17
17
|
</Layout::Section::Header>
|
|
18
18
|
|
|
19
19
|
<Layout::Section::Body>
|
|
20
20
|
<Table @rows={{@model}} @columns={{this.columns}} @selectable={{true}} @canSelectAll={{true}} @onSetup={{fn (mut this.table)}} @pagination={{true}} @paginationMeta={{@model.meta}} @page={{this.page}} @onPageChange={{fn (mut this.page)}} @tfootVerticalOffset="53" @tfootVerticalOffsetElements=".next-view-section-subheader" />
|
|
21
|
-
</Layout::Section::Body>
|
|
21
|
+
</Layout::Section::Body>
|
|
22
|
+
|
|
23
|
+
{{outlet}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<PlacePanel @place={{@model}} @tab={{this.view}} @onTabChanged={{this.onTabChanged}} @onPressCancel={{this.transitionBack}} @onEdit={{this.onEdit}} />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<PlaceFormPanel @place={{@model}} @onPressCancel={{this.transitionBack}} @onAfterSave={{this.onAfterSave}} @onViewDetails={{this.onViewDetails}} @onLoad={{this.setOverlayContext}} />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<PlaceFormPanel @place={{this.place}} @onPressCancel={{this.transitionBack}} @onAfterSave={{this.onAfterSave}} @onLoad={{this.setOverlayContext}} />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<VendorPanel @vendor={{@model}} @tab={{this.view}} @onTabChanged={{this.onTabChanged}} @onPressCancel={{this.transitionBack}} @onEdit={{this.onEdit}} />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<VendorFormPanel @vendor={{@model}} @onPressCancel={{this.transitionBack}} @onAfterSave={{this.onAfterSave}} @onViewDetails={{this.onViewDetails}} @onLoad={{this.setOverlayContext}} />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<VendorFormPanel @vendor={{this.vendor}} @onPressCancel={{this.transitionBack}} @onAfterSave={{this.onAfterSave}} @onLoad={{this.setOverlayContext}} />
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
<MapContainer::Topbar class="next-topbar-{{this.layout}}">
|
|
2
2
|
<MapContainer::ViewSwitch>
|
|
3
3
|
<FaIcon @icon="layer-group" class="mr-2 text-gray-400 dark:text-gray-600" />
|
|
4
|
-
<button type="button" class="{{if this.isMapLayout 'active'}}" {{on "click" (fn this.setLayoutMode "map")}}>Map</button>
|
|
5
|
-
<button type="button" class="{{if this.isTableLayout 'active'}} flex flex-row items-center relative" {{on "click" (fn this.setLayoutMode "table")}}>
|
|
4
|
+
<button type="button" id="ops-map-view-button" class="{{if this.isMapLayout 'active'}}" {{on "click" (fn this.setLayoutMode "map")}}>Map</button>
|
|
5
|
+
<button type="button" id="ops-table-view-button" class="{{if this.isTableLayout 'active'}} flex flex-row items-center relative" {{on "click" (fn this.setLayoutMode "table")}}>
|
|
6
6
|
<div class="mr-1.5">Table</div>
|
|
7
7
|
<Badge class="flex items-center justify-center -mr-4" @spanClass="rounded-full items-center justify-center h-4 w-4" @hideStatusDot={{true}} @status="info">{{@model.meta.total}}</Badge>
|
|
8
8
|
</button>
|
|
9
|
-
{{!-- <button type="button" class="{{if this.isKanbanView 'active'}}" {{on "click" (fn this.setLayoutMode "kanban")}}>Board</button> --}}
|
|
9
|
+
{{!-- <button type="button" id="ops-kanban-view-button" class="{{if this.isKanbanView 'active'}}" {{on "click" (fn this.setLayoutMode "kanban")}}>Board</button> --}}
|
|
10
10
|
</MapContainer::ViewSwitch>
|
|
11
11
|
</MapContainer::Topbar>
|
|
12
12
|
|
|
13
13
|
{{#if this.isMapLayout}}
|
|
14
14
|
<MapContainer @layout={{this.layout}} @onReady={{this.onMapContainerReady}}>
|
|
15
15
|
<GlobalSearch @visible={{this.isSearchVisible}} @onPressOrder={{this.viewOrder}} />
|
|
16
|
-
<MapContainer::Toolbar @activeOrdersCount={{this.activeOrdersCount}} @liveMap={{this.liveMap}} @map={{this.leafletMap}} @onPressViewOrders={{this.toggleOrdersPanel}} @onPressSearch={{this.toggleSearch}} @onPressCreateOrder={{this.createOrder}} @
|
|
16
|
+
<MapContainer::Toolbar @activeOrdersCount={{this.activeOrdersCount}} @liveMap={{this.liveMap}} @map={{this.leafletMap}} @onPressViewOrders={{this.toggleOrdersPanel}} @onPressSearch={{this.toggleSearch}} @onPressCreateOrder={{this.createOrder}} @onPressLiveMapDrawerToggle={{this.onPressLiveMapDrawerToggle}} />
|
|
17
17
|
<OrderListOverlay @noBackdrop={{true}} @fullHeight={{true}} @outView={{not this.isOrdersPanelVisible}} @width={{if (media 'isMobile') "100%" "338px"}} @onPressCancel={{this.hideOrdersPanel}} @onPressCreateOrder={{this.createOrder}} @onPressViewOrder={{this.viewOrder}} @onPressCreateFleet={{this.fleetController.createFleet}} @onPressManageFleet={{this.fleetController.viewFleet}} @onPressCancelOrders={{this.bulkCancelOrders}} @onPressDeleteOrders={{this.bulkDeleteOrders}} />
|
|
18
|
-
<LiveMap id="leafletMap" class="next-leaflet-container-map" @lat={{1.3521}} @lng={{103.8198}} @zoom={{12}} @zoomControl={{false}} @onLoad={{this.setMapReference}} {{set-container-dimensions}} />
|
|
18
|
+
<LiveMap id="leafletMap" class="next-leaflet-container-map" @lat={{1.3521}} @lng={{103.8198}} @zoom={{12}} @zoomControl={{false}} @onLoad={{this.setMapReference}} @onDrawerReady={{this.setDrawerContext}} {{set-container-dimensions}} />
|
|
19
19
|
</MapContainer>
|
|
20
20
|
{{/if}}
|
|
21
21
|
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Scheduler" />
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
<div class="
|
|
5
|
-
<div class="grid grid-cols-
|
|
6
|
-
<div class="
|
|
7
|
-
<ContentPanel
|
|
3
|
+
<Layout::Section::Body class="overflow-y-scroll h-screen">
|
|
4
|
+
<div class="h-screen">
|
|
5
|
+
<div class="grid grid-cols-1 lg:grid-cols-3">
|
|
6
|
+
<div class="scheduler-left-sidebar">
|
|
7
|
+
<ContentPanel
|
|
8
|
+
@title="Unscheduled Orders"
|
|
9
|
+
@titleStatuRight={{this.unscheduledOrders.length}}
|
|
10
|
+
@titleStatuRightClass="info-status-badge"
|
|
11
|
+
@hideStatusDot={{true}}
|
|
12
|
+
@open={{true}}
|
|
13
|
+
@pad={{true}}
|
|
14
|
+
@panelBodyClass="bg-white dark:bg-gray-900"
|
|
15
|
+
>
|
|
8
16
|
<div class="space-y-4">
|
|
9
17
|
{{#each this.unscheduledOrders as |order|}}
|
|
10
18
|
<FullCalendar::Draggable @eventData={{json-hash id=order.id title=order.eventTitle allDay=true}}>
|
|
@@ -13,7 +21,15 @@
|
|
|
13
21
|
{{/each}}
|
|
14
22
|
</div>
|
|
15
23
|
</ContentPanel>
|
|
16
|
-
<ContentPanel
|
|
24
|
+
<ContentPanel
|
|
25
|
+
@title="Scheduled Orders"
|
|
26
|
+
@titleStatuRight={{this.scheduledOrders.length}}
|
|
27
|
+
@titleStatusRightClass="info-status-badge"
|
|
28
|
+
@hideStatusDot={{true}}
|
|
29
|
+
@open={{true}}
|
|
30
|
+
@pad={{true}}
|
|
31
|
+
@panelBodyClass="bg-white dark:bg-gray-900"
|
|
32
|
+
>
|
|
17
33
|
<div class="space-y-4">
|
|
18
34
|
{{#each this.scheduledOrders as |order|}}
|
|
19
35
|
<Order::ScheduleCard @order={{order}} @titleClass="cursor-pointer" @onTitleClick={{fn this.viewEvent order}} />
|
|
@@ -22,9 +38,17 @@
|
|
|
22
38
|
</ContentPanel>
|
|
23
39
|
</div>
|
|
24
40
|
|
|
25
|
-
<div class="col-span-2">
|
|
26
|
-
<FullCalendar
|
|
41
|
+
<div class="col-span-2 p-4">
|
|
42
|
+
<FullCalendar
|
|
43
|
+
@events={{this.events}}
|
|
44
|
+
@editable={{true}}
|
|
45
|
+
@onDrop={{this.scheduleEventFromDrop}}
|
|
46
|
+
@onEventReceive={{this.receivedEvent}}
|
|
47
|
+
@onEventDrop={{this.rescheduleEventFromDrag}}
|
|
48
|
+
@onEventClick={{this.viewOrderAsEvent}}
|
|
49
|
+
@onInit={{this.setCalendarApi}}
|
|
50
|
+
/>
|
|
27
51
|
</div>
|
|
28
52
|
</div>
|
|
29
53
|
</div>
|
|
30
|
-
</
|
|
54
|
+
</Layout::Section::Body>
|