@fleetbase/fleetops-engine 0.6.69 → 0.6.71
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/RELEASE.md +21 -14
- package/addon/components/admin/telematics-settings.hbs +143 -0
- package/addon/components/admin/telematics-settings.js +145 -0
- package/addon/components/fuel-integration/hub.hbs +1 -1
- package/addon/components/layout/fleet-ops-sidebar.js +37 -17
- package/addon/components/map/leaflet-live-map.hbs +4 -242
- package/addon/components/map/leaflet-live-map.js +2 -1
- package/addon/components/map/marker-card/driver.hbs +57 -0
- package/addon/components/map/marker-card/driver.js +3 -0
- package/addon/components/map/marker-card/vehicle.hbs +78 -0
- package/addon/components/map/marker-card/vehicle.js +3 -0
- package/addon/components/order/details/activity.hbs +8 -6
- package/addon/components/order/details/activity.js +9 -0
- package/addon/components/order/details.hbs +29 -0
- package/addon/components/order/details.js +26 -0
- package/addon/components/order/form/details.hbs +30 -4
- package/addon/components/order/form/details.js +46 -0
- package/addon/components/order/form/route.hbs +4 -2
- package/addon/components/order/form/route.js +11 -0
- package/addon/components/order/form.hbs +12 -0
- package/addon/components/order/form.js +21 -1
- package/addon/components/order/kanban.js +72 -0
- package/addon/components/order-config-manager/activity-flow.js +45 -10
- package/addon/components/order-config-manager/lifecycle.hbs +250 -0
- package/addon/components/order-config-manager/lifecycle.js +358 -0
- package/addon/components/order-config-manager.js +5 -1
- package/addon/components/telematic/hub.hbs +1 -1
- package/addon/components/widget/live-fleet.hbs +8 -40
- package/addon/controllers/analytics/reports/index.js +15 -1
- package/addon/controllers/connectivity/devices/index/details.js +1 -0
- package/addon/controllers/connectivity/devices/index.js +12 -2
- package/addon/controllers/connectivity/events/index.js +31 -1
- package/addon/controllers/connectivity/fuel-providers/index.js +6 -4
- package/addon/controllers/connectivity/sensors/index/details.js +1 -1
- package/addon/controllers/connectivity/sensors/index.js +41 -1
- package/addon/controllers/connectivity/telematics/index.js +4 -0
- package/addon/controllers/maintenance/equipment/index/details.js +2 -2
- package/addon/controllers/maintenance/equipment/index.js +36 -10
- package/addon/controllers/maintenance/inspection-forms/index.js +32 -12
- package/addon/controllers/maintenance/inspection-submissions/index/details.js +2 -1
- package/addon/controllers/maintenance/inspection-submissions/index.js +56 -10
- package/addon/controllers/maintenance/maintenances/index/details.js +2 -0
- package/addon/controllers/maintenance/maintenances/index.js +24 -1
- package/addon/controllers/maintenance/parts/index/details.js +2 -2
- package/addon/controllers/maintenance/parts/index.js +36 -9
- package/addon/controllers/maintenance/schedules/index.js +48 -6
- package/addon/controllers/maintenance/work-orders/index/details.js +3 -3
- package/addon/controllers/maintenance/work-orders/index.js +47 -9
- package/addon/controllers/management/contacts/customers.js +13 -0
- package/addon/controllers/management/contacts/index.js +47 -1
- package/addon/controllers/management/drivers/index/details.js +1 -0
- package/addon/controllers/management/drivers/index.js +36 -2
- package/addon/controllers/management/fleets/index/details.js +1 -0
- package/addon/controllers/management/fleets/index.js +43 -1
- package/addon/controllers/management/fuel-reports/index.js +26 -2
- package/addon/controllers/management/fuel-transactions/index.js +45 -7
- package/addon/controllers/management/issues/index/details.js +1 -0
- package/addon/controllers/management/issues/index.js +26 -2
- package/addon/controllers/management/places/index.js +40 -1
- package/addon/controllers/management/trailers/index/details.js +1 -0
- package/addon/controllers/management/trailers/index.js +50 -2
- package/addon/controllers/management/vehicles/index/details.js +1 -0
- package/addon/controllers/management/vehicles/index.js +37 -2
- package/addon/controllers/management/vendors/index.js +30 -2
- package/addon/controllers/operations/orders/index/details.js +61 -5
- package/addon/controllers/operations/orders/index.js +66 -4
- package/addon/controllers/operations/service-rates/index.js +18 -1
- package/addon/controllers/settings/index.js +13 -0
- package/addon/controllers/settings/telematics.js +113 -0
- package/addon/extension.js +70 -6
- package/addon/routes/analytics/index.js +14 -1
- package/addon/routes/analytics/reports/index/details.js +1 -1
- package/addon/routes/analytics/reports/index/edit.js +1 -1
- package/addon/routes/analytics/reports/index/new.js +14 -1
- package/addon/routes/analytics/reports.js +14 -1
- package/addon/routes/connectivity/devices/index/new.js +14 -1
- package/addon/routes/connectivity/devices.js +14 -1
- package/addon/routes/connectivity/events.js +14 -1
- package/addon/routes/connectivity/fuel-providers/details/transactions.js +12 -0
- package/addon/routes/connectivity/fuel-providers/details.js +9 -0
- package/addon/routes/connectivity/fuel-providers/edit.js +9 -0
- package/addon/routes/connectivity/fuel-providers/new.js +14 -1
- package/addon/routes/connectivity/fuel-providers.js +14 -1
- package/addon/routes/connectivity/sensors/index/new.js +14 -1
- package/addon/routes/connectivity/sensors.js +14 -1
- package/addon/routes/connectivity/telematics/new.js +14 -1
- package/addon/routes/connectivity/telematics.js +14 -1
- package/addon/routes/connectivity/tracking.js +14 -1
- package/addon/routes/maintenance/equipment/index/details.js +2 -2
- package/addon/routes/maintenance/equipment/index/edit.js +2 -2
- package/addon/routes/maintenance/equipment/index/new.js +14 -1
- package/addon/routes/maintenance/equipment.js +14 -1
- package/addon/routes/maintenance/index.js +14 -1
- package/addon/routes/maintenance/inspection-forms/index/details.js +10 -1
- package/addon/routes/maintenance/inspection-forms/index/edit.js +10 -1
- package/addon/routes/maintenance/inspection-forms/index/new.js +14 -1
- package/addon/routes/maintenance/inspection-forms.js +14 -1
- package/addon/routes/maintenance/inspection-submissions/index/details.js +10 -1
- package/addon/routes/maintenance/inspection-submissions/index/edit.js +10 -1
- package/addon/routes/maintenance/inspection-submissions/index/new.js +14 -1
- package/addon/routes/maintenance/inspection-submissions.js +14 -1
- package/addon/routes/maintenance/maintenances/index/details.js +2 -2
- package/addon/routes/maintenance/maintenances/index/edit.js +2 -2
- package/addon/routes/maintenance/maintenances/index/new.js +14 -1
- package/addon/routes/maintenance/maintenances.js +14 -1
- package/addon/routes/maintenance/parts/index/details.js +2 -2
- package/addon/routes/maintenance/parts/index/edit.js +2 -2
- package/addon/routes/maintenance/parts/index/new.js +14 -1
- package/addon/routes/maintenance/parts.js +14 -1
- package/addon/routes/maintenance/schedules/index/details.js +2 -2
- package/addon/routes/maintenance/schedules/index/edit.js +2 -2
- package/addon/routes/maintenance/schedules/index/new.js +15 -1
- package/addon/routes/maintenance/schedules.js +15 -1
- package/addon/routes/maintenance/work-orders/index/details.js +2 -2
- package/addon/routes/maintenance/work-orders/index/edit.js +2 -2
- package/addon/routes/maintenance/work-orders/index/new.js +14 -1
- package/addon/routes/maintenance/work-orders.js +14 -1
- package/addon/routes/management/fuel-transactions/index/details.js +9 -0
- package/addon/routes/management/fuel-transactions.js +14 -1
- package/addon/routes/management/index.js +13 -0
- package/addon/routes/management/trailers.js +16 -0
- package/addon/routes/management/vendors/integrated/details.js +14 -1
- package/addon/routes/management/vendors/integrated/edit.js +14 -1
- package/addon/routes/management/vendors/integrated/new.js +14 -1
- package/addon/routes/management/vendors/integrated.js +14 -1
- package/addon/routes/operations/orders/index/details.js +1 -0
- package/addon/routes/operations/orders.js +40 -1
- package/addon/routes/operations/routes/index/details.js +14 -1
- package/addon/routes/operations/routes/index/new.js +13 -0
- package/addon/routes/operations/routes.js +14 -1
- package/addon/routes/operations/service-rates/index/new.js +11 -0
- package/addon/routes/operations/service-rates.js +14 -1
- package/addon/routes/settings/avatars.js +14 -1
- package/addon/routes/settings/custom-fields.js +14 -1
- package/addon/routes/settings/map.js +14 -1
- package/addon/routes/settings/notifications.js +11 -0
- package/addon/routes/settings/orchestrator.js +1 -1
- package/addon/routes/settings/payments/index.js +1 -1
- package/addon/routes/settings/routing.js +14 -1
- package/addon/routes/settings/scheduling.js +14 -1
- package/addon/routes/settings/telematics.js +21 -0
- package/addon/routes/virtual.js +11 -0
- package/addon/routes.js +1 -0
- package/addon/services/contact-actions.js +1 -0
- package/addon/services/customer-actions.js +2 -1
- package/addon/services/device-actions.js +1 -0
- package/addon/services/device-event-actions.js +1 -0
- package/addon/services/driver-actions.js +4 -13
- package/addon/services/equipment-actions.js +1 -0
- package/addon/services/fleet-actions.js +1 -0
- package/addon/services/fuel-report-actions.js +1 -0
- package/addon/services/inspection-form-actions.js +1 -0
- package/addon/services/inspection-submission-actions.js +1 -0
- package/addon/services/integrated-vendor-actions.js +1 -0
- package/addon/services/issue-actions.js +1 -0
- package/addon/services/maintenance-actions.js +1 -0
- package/addon/services/maintenance-schedule-actions.js +2 -1
- package/addon/services/order-actions.js +7 -0
- package/addon/services/order-presentation.js +129 -0
- package/addon/services/part-actions.js +1 -0
- package/addon/services/place-actions.js +1 -0
- package/addon/services/sensor-actions.js +1 -0
- package/addon/services/service-area-actions.js +1 -0
- package/addon/services/service-rate-actions.js +1 -0
- package/addon/services/telematic-actions.js +1 -0
- package/addon/services/trailer-actions.js +4 -14
- package/addon/services/vehicle-actions.js +4 -13
- package/addon/services/vendor-actions.js +1 -0
- package/addon/services/work-order-actions.js +1 -0
- package/addon/services/zone-actions.js +1 -0
- package/addon/templates/analytics/reports/index/details.hbs +1 -0
- package/addon/templates/analytics/reports/index.hbs +1 -0
- package/addon/templates/connectivity/devices/index/details.hbs +1 -0
- package/addon/templates/connectivity/devices/index.hbs +1 -0
- package/addon/templates/connectivity/events/index.hbs +1 -0
- package/addon/templates/connectivity/sensors/index/details.hbs +1 -0
- package/addon/templates/connectivity/sensors/index.hbs +1 -0
- package/addon/templates/maintenance/equipment/index/details.hbs +1 -0
- package/addon/templates/maintenance/equipment/index.hbs +2 -0
- package/addon/templates/maintenance/inspection-forms/index/details.hbs +1 -0
- package/addon/templates/maintenance/inspection-forms/index.hbs +1 -0
- package/addon/templates/maintenance/inspection-submissions/index/details.hbs +1 -0
- package/addon/templates/maintenance/inspection-submissions/index.hbs +1 -0
- package/addon/templates/maintenance/maintenances/index/details.hbs +1 -0
- package/addon/templates/maintenance/maintenances/index.hbs +1 -0
- package/addon/templates/maintenance/parts/index/details.hbs +1 -0
- package/addon/templates/maintenance/parts/index.hbs +2 -0
- package/addon/templates/maintenance/schedules/index/details.hbs +1 -0
- package/addon/templates/maintenance/schedules/index.hbs +2 -0
- package/addon/templates/maintenance/work-orders/index/details.hbs +1 -0
- package/addon/templates/maintenance/work-orders/index.hbs +1 -0
- package/addon/templates/management/contacts/customers/details.hbs +1 -0
- package/addon/templates/management/contacts/customers.hbs +1 -0
- package/addon/templates/management/contacts/index/details.hbs +1 -0
- package/addon/templates/management/contacts/index.hbs +1 -0
- package/addon/templates/management/contacts.hbs +1 -0
- package/addon/templates/management/drivers/index/details.hbs +1 -0
- package/addon/templates/management/drivers/index.hbs +2 -0
- package/addon/templates/management/fleets/index/details.hbs +1 -0
- package/addon/templates/management/fleets/index.hbs +1 -0
- package/addon/templates/management/fuel-reports/index/details.hbs +1 -0
- package/addon/templates/management/fuel-reports/index.hbs +1 -0
- package/addon/templates/management/fuel-transactions/index.hbs +1 -0
- package/addon/templates/management/issues/index/details.hbs +1 -0
- package/addon/templates/management/issues/index.hbs +1 -0
- package/addon/templates/management/places/index/details.hbs +1 -0
- package/addon/templates/management/places/index.hbs +1 -0
- package/addon/templates/management/trailers/index/details.hbs +1 -0
- package/addon/templates/management/trailers/index.hbs +2 -0
- package/addon/templates/management/vehicles/index/details.hbs +1 -0
- package/addon/templates/management/vehicles/index.hbs +2 -0
- package/addon/templates/management/vendors/index/details.hbs +1 -0
- package/addon/templates/management/vendors/index.hbs +2 -0
- package/addon/templates/management/vendors/integrated.hbs +1 -0
- package/addon/templates/operations/orders/index/details.hbs +1 -0
- package/addon/templates/operations/orders/index.hbs +1 -0
- package/addon/templates/operations/service-rates/index/details.hbs +1 -0
- package/addon/templates/operations/service-rates/index.hbs +1 -0
- package/addon/templates/settings/telematics.hbs +70 -0
- package/addon/utils/normalize-order-config-flow.js +6 -1
- package/app/components/admin/telematics-settings.js +1 -0
- package/app/components/map/marker-card/driver.js +1 -0
- package/app/components/map/marker-card/vehicle.js +1 -0
- package/app/controllers/settings/telematics.js +1 -0
- package/app/routes/settings/telematics.js +1 -0
- package/app/services/order-presentation.js +1 -0
- package/app/templates/settings/telematics.js +1 -0
- package/composer.json +2 -2
- package/docs/AFAQY.md +1 -1
- package/docs/TELEMATICS_QUEUES.md +1 -1
- package/docs/TELEMETRY_ARCHITECTURE.md +72 -1
- package/extension.json +1 -1
- package/package.json +3 -3
- package/server/config/telemetry.php +12 -0
- package/server/migrations/2026_09_23_000001_add_retention_index_to_device_events.php +40 -0
- package/server/migrations/2026_09_23_000002_add_retention_index_to_positions.php +40 -0
- package/server/migrations/2026_09_23_000003_add_retention_index_to_telematic_sync_runs.php +40 -0
- package/server/src/Auth/Schemas/FleetOps.php +104 -5
- package/server/src/Console/Commands/DrainTelematicInbox.php +3 -13
- package/server/src/Console/Commands/ProcessOperationalAlerts.php +3 -3
- package/server/src/Console/Commands/PruneTelematicsData.php +318 -0
- package/server/src/Http/Controllers/Api/v1/OrchestrationController.php +9 -0
- package/server/src/Http/Controllers/FleetOpsController.php +21 -0
- package/server/src/Http/Controllers/Internal/v1/AnalyticsController.php +11 -0
- package/server/src/Http/Controllers/Internal/v1/ContactController.php +11 -0
- package/server/src/Http/Controllers/Internal/v1/CustomerController.php +14 -0
- package/server/src/Http/Controllers/Internal/v1/DeviceController.php +13 -0
- package/server/src/Http/Controllers/Internal/v1/DeviceEventController.php +11 -0
- package/server/src/Http/Controllers/Internal/v1/DriverController.php +22 -0
- package/server/src/Http/Controllers/Internal/v1/FuelProviderConnectionController.php +13 -0
- package/server/src/Http/Controllers/Internal/v1/FuelProviderTransactionController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/FuelReportController.php +9 -3
- package/server/src/Http/Controllers/Internal/v1/InspectionFormController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/LiveController.php +16 -0
- package/server/src/Http/Controllers/Internal/v1/MaintenanceController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/MaintenanceScheduleController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/ManifestController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/MetricsController.php +11 -0
- package/server/src/Http/Controllers/Internal/v1/NavigatorController.php +42 -1
- package/server/src/Http/Controllers/Internal/v1/OrchestrationController.php +12 -0
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +56 -4
- package/server/src/Http/Controllers/Internal/v1/PaymentController.php +13 -0
- package/server/src/Http/Controllers/Internal/v1/RadarController.php +19 -0
- package/server/src/Http/Controllers/Internal/v1/ServiceAreaController.php +9 -3
- package/server/src/Http/Controllers/Internal/v1/SettingController.php +465 -14
- package/server/src/Http/Controllers/Internal/v1/TelematicController.php +21 -0
- package/server/src/Http/Controllers/Internal/v1/TrailerController.php +21 -0
- package/server/src/Http/Controllers/Internal/v1/VehicleController.php +21 -0
- package/server/src/Http/Controllers/Internal/v1/VendorController.php +17 -0
- package/server/src/Http/Controllers/Internal/v1/WorkOrderController.php +11 -0
- package/server/src/Jobs/DispatchTelematicsRetentionJobs.php +70 -0
- package/server/src/Jobs/PruneTelematicsDataJob.php +74 -0
- package/server/src/Listeners/NotifyDriverOnShiftChange.php +3 -3
- package/server/src/Mail/CustomerCredentialsMail.php +1 -1
- package/server/src/Models/Order.php +35 -3
- package/server/src/Models/OrderConfig.php +129 -0
- package/server/src/Models/TrackingNumber.php +8 -4
- package/server/src/Orchestration/Engines/VroomOrchestrationEngine.php +9 -1
- package/server/src/Providers/FleetOpsServiceProvider.php +3 -0
- package/server/src/Support/Analytics/LiveFleet.php +18 -2
- package/server/src/Support/Authorization.php +103 -0
- package/server/src/Support/Database/TableIndexes.php +66 -0
- package/server/src/Support/OrderTracker.php +2 -2
- package/server/src/Support/Reporting/FleetOpsReportSchema.php +476 -116
- package/server/src/Support/Telematics/Retention/RetentionPolicy.php +300 -0
- package/server/src/Support/Telematics/Retention/TelemetryActivity.php +40 -0
- package/server/src/Support/Telematics/TelematicService.php +12 -2
- package/server/src/Support/Telematics/Telemetry/Ingestor.php +4 -2
- package/server/src/Tracking/TrackingIntelligenceService.php +1 -1
- package/server/src/Tracking/TrackingOptions.php +2 -2
- package/server/src/Traits/AuthorizesMethods.php +37 -0
- package/server/src/routes.php +9 -1
- package/server/tests/AnalyticsRoutesTest.php +29 -2
- package/server/tests/Feature/Http/AfaqyRealtimeIngestionTest.php +16 -1
- package/server/tests/Feature/Http/Api/TelematicsRetentionIndexMigrationTest.php +115 -0
- package/server/tests/Feature/Http/Internal/OrderControllerActivityFlowsTest.php +72 -0
- package/server/tests/Feature/Http/Internal/OrderControllerCreateRecordTest.php +26 -0
- package/server/tests/Feature/Http/Internal/SettingControllerHelpersTest.php +71 -0
- package/server/tests/Feature/Http/Internal/TelematicsStorageDeadlinesTest.php +119 -0
- package/server/tests/InternalImportExportControllerContractsTest.php +5 -8
- package/server/tests/NavigatorControllerContractsTest.php +36 -4
- package/server/tests/NotificationAndMailContractsTest.php +31 -0
- package/server/tests/ObserverContractsTest.php +1 -1
- package/server/tests/OrchestratorConsumableApiTest.php +42 -0
- package/server/tests/OrderConfigLifecycleTest.php +120 -0
- package/server/tests/ProviderContractsTest.php +10 -0
- package/server/tests/ReportSchemaContractsTest.php +120 -6
- package/server/tests/SettingControllerContractsTest.php +429 -18
- package/server/tests/SmallControllerContractsTest.php +8 -5
- package/server/tests/Support/PruneTelematicsDataProbe.php +55 -0
- package/server/tests/Unit/Console/Commands/ProcessOperationalAlertsCommandTest.php +2 -2
- package/server/tests/Unit/Console/PruneTelematicsDataCommandTest.php +353 -0
- package/server/tests/Unit/Events/OrderDispatchFailedTest.php +2 -1
- package/server/tests/Unit/Jobs/DispatchTelematicsRetentionJobsTest.php +114 -0
- package/server/tests/Unit/Jobs/PruneTelematicsDataJobTest.php +60 -0
- package/server/tests/Unit/Orchestration/VroomEngineTransportAndSettingsTest.php +20 -0
- package/server/tests/Unit/Support/Analytics/LiveFleetTest.php +6 -0
- package/server/tests/Unit/Support/AuthorizationTest.php +142 -0
- package/server/tests/Unit/Support/MaintainableAndOperationalAlertsTest.php +12 -1
- package/server/tests/Unit/Support/MoreQuerySeamsTest.php +11 -2
- package/server/tests/Unit/Support/Telematics/Retention/RetentionPolicyTest.php +190 -0
- package/server/tests/Unit/Support/Telematics/Retention/TelemetryActivityTest.php +68 -0
- package/server/tests/Unit/Tracking/TrackingOptionsCompanySettingsTest.php +109 -0
- package/translations/en-us.yaml +108 -0
|
@@ -12,7 +12,28 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
12
12
|
@service appCache;
|
|
13
13
|
|
|
14
14
|
/** query params */
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* This tab's table registry, e.g. `fleet-ops:contact:table`. The contacts
|
|
17
|
+
* header (`management/contacts.hbs`) renders for whichever tab is open.
|
|
18
|
+
*/
|
|
19
|
+
get tableRegistry() {
|
|
20
|
+
return this.contactActions.tableRegistry;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@tracked queryParams = this.contactActions.queryParamsFor([
|
|
24
|
+
'page',
|
|
25
|
+
'limit',
|
|
26
|
+
'sort',
|
|
27
|
+
'query',
|
|
28
|
+
'public_id',
|
|
29
|
+
'internal_id',
|
|
30
|
+
'created_by',
|
|
31
|
+
'updated_by',
|
|
32
|
+
'status',
|
|
33
|
+
'title',
|
|
34
|
+
'email',
|
|
35
|
+
'phone',
|
|
36
|
+
]);
|
|
16
37
|
@tracked page = 1;
|
|
17
38
|
@tracked limit;
|
|
18
39
|
@tracked sort = '-created_at';
|
|
@@ -34,16 +55,19 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
34
55
|
get actionButtons() {
|
|
35
56
|
return [
|
|
36
57
|
{
|
|
58
|
+
id: 'more',
|
|
37
59
|
component: 'dropdown-button',
|
|
38
60
|
icon: 'display',
|
|
39
61
|
size: 'xs',
|
|
40
62
|
items: [
|
|
41
63
|
{
|
|
64
|
+
id: 'table-view',
|
|
42
65
|
label: this.intl.t('common.table-view'),
|
|
43
66
|
icon: 'table-list',
|
|
44
67
|
onClick: () => this.setLayout('table'),
|
|
45
68
|
},
|
|
46
69
|
{
|
|
70
|
+
id: 'grid-view',
|
|
47
71
|
label: this.intl.t('common.grid-view'),
|
|
48
72
|
icon: 'grip',
|
|
49
73
|
onClick: () => this.setLayout('grid'),
|
|
@@ -53,28 +77,35 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
53
77
|
helpText: this.intl.t('common.change-layout'),
|
|
54
78
|
},
|
|
55
79
|
{
|
|
80
|
+
id: 'refresh',
|
|
56
81
|
icon: 'refresh',
|
|
57
82
|
onClick: this.contactActions.refresh,
|
|
58
83
|
helpText: this.intl.t('common.refresh'),
|
|
59
84
|
},
|
|
60
85
|
{
|
|
86
|
+
id: 'create',
|
|
61
87
|
text: this.intl.t('common.new'),
|
|
62
88
|
type: 'primary',
|
|
63
89
|
icon: 'plus',
|
|
64
90
|
onClick: this.contactActions.transition.create,
|
|
91
|
+
permission: 'fleet-ops create contact',
|
|
65
92
|
},
|
|
66
93
|
{
|
|
94
|
+
id: 'import',
|
|
67
95
|
text: this.intl.t('common.import'),
|
|
68
96
|
type: 'magic',
|
|
69
97
|
icon: 'upload',
|
|
70
98
|
onClick: this.contactActions.import,
|
|
99
|
+
permission: 'fleet-ops import contact',
|
|
71
100
|
},
|
|
72
101
|
{
|
|
102
|
+
id: 'export',
|
|
73
103
|
text: this.intl.t('common.export'),
|
|
74
104
|
icon: 'long-arrow-up',
|
|
75
105
|
iconClass: 'rotate-icon-45',
|
|
76
106
|
wrapperClass: 'hidden md:flex',
|
|
77
107
|
onClick: this.contactActions.export,
|
|
108
|
+
permission: 'fleet-ops export contact',
|
|
78
109
|
},
|
|
79
110
|
];
|
|
80
111
|
}
|
|
@@ -85,9 +116,11 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
85
116
|
|
|
86
117
|
return [
|
|
87
118
|
{
|
|
119
|
+
id: 'bulk-delete',
|
|
88
120
|
label: this.intl.t('common.delete-selected-count', { count: selected.length }),
|
|
89
121
|
class: 'text-red-500',
|
|
90
122
|
fn: this.contactActions.bulkDelete,
|
|
123
|
+
permission: 'fleet-ops delete contact',
|
|
91
124
|
},
|
|
92
125
|
];
|
|
93
126
|
}
|
|
@@ -96,6 +129,7 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
96
129
|
get columns() {
|
|
97
130
|
return [
|
|
98
131
|
{
|
|
132
|
+
id: 'name',
|
|
99
133
|
sticky: true,
|
|
100
134
|
label: this.intl.t('column.name'),
|
|
101
135
|
valuePath: 'name',
|
|
@@ -108,6 +142,7 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
108
142
|
filterComponent: 'filter/string',
|
|
109
143
|
},
|
|
110
144
|
{
|
|
145
|
+
id: 'public-id',
|
|
111
146
|
label: this.intl.t('column.id'),
|
|
112
147
|
valuePath: 'public_id',
|
|
113
148
|
cellComponent: 'click-to-copy',
|
|
@@ -117,6 +152,7 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
117
152
|
filterComponent: 'filter/string',
|
|
118
153
|
},
|
|
119
154
|
{
|
|
155
|
+
id: 'internal-id',
|
|
120
156
|
label: this.intl.t('column.internal-id'),
|
|
121
157
|
valuePath: 'internal_id',
|
|
122
158
|
cellComponent: 'click-to-copy',
|
|
@@ -126,6 +162,7 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
126
162
|
filterComponent: 'filter/string',
|
|
127
163
|
},
|
|
128
164
|
{
|
|
165
|
+
id: 'title',
|
|
129
166
|
label: this.intl.t('column.title'),
|
|
130
167
|
valuePath: 'title',
|
|
131
168
|
cellComponent: 'click-to-copy',
|
|
@@ -136,6 +173,7 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
136
173
|
filterComponent: 'filter/string',
|
|
137
174
|
},
|
|
138
175
|
{
|
|
176
|
+
id: 'email',
|
|
139
177
|
label: this.intl.t('column.email'),
|
|
140
178
|
valuePath: 'email',
|
|
141
179
|
cellComponent: 'click-to-copy',
|
|
@@ -145,6 +183,7 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
145
183
|
filterComponent: 'filter/string',
|
|
146
184
|
},
|
|
147
185
|
{
|
|
186
|
+
id: 'phone',
|
|
148
187
|
label: this.intl.t('column.phone'),
|
|
149
188
|
valuePath: 'phone',
|
|
150
189
|
cellComponent: 'click-to-copy',
|
|
@@ -154,6 +193,7 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
154
193
|
filterComponent: 'filter/string',
|
|
155
194
|
},
|
|
156
195
|
{
|
|
196
|
+
id: 'address',
|
|
157
197
|
label: this.intl.t('column.address'),
|
|
158
198
|
valuePath: 'address',
|
|
159
199
|
cellComponent: 'cell/place-identity',
|
|
@@ -166,6 +206,7 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
166
206
|
filterComponent: 'filter/string',
|
|
167
207
|
},
|
|
168
208
|
{
|
|
209
|
+
id: 'created-at',
|
|
169
210
|
label: this.intl.t('column.created'),
|
|
170
211
|
valuePath: 'createdAt',
|
|
171
212
|
sortParam: 'created_at',
|
|
@@ -175,6 +216,7 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
175
216
|
filterComponent: 'filter/date',
|
|
176
217
|
},
|
|
177
218
|
{
|
|
219
|
+
id: 'updated-at',
|
|
178
220
|
label: this.intl.t('column.updated'),
|
|
179
221
|
valuePath: 'updatedAt',
|
|
180
222
|
sortParam: 'updated_at',
|
|
@@ -185,6 +227,7 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
185
227
|
filterComponent: 'filter/date',
|
|
186
228
|
},
|
|
187
229
|
{
|
|
230
|
+
id: 'row-actions',
|
|
188
231
|
label: '',
|
|
189
232
|
cellComponent: 'table/cell/dropdown',
|
|
190
233
|
ddButtonText: false,
|
|
@@ -197,12 +240,14 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
197
240
|
width: 60,
|
|
198
241
|
actions: [
|
|
199
242
|
{
|
|
243
|
+
id: 'view',
|
|
200
244
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.contact') }),
|
|
201
245
|
icon: 'eye',
|
|
202
246
|
fn: this.contactActions.transition.view,
|
|
203
247
|
permission: 'fleet-ops view contact',
|
|
204
248
|
},
|
|
205
249
|
{
|
|
250
|
+
id: 'edit',
|
|
206
251
|
label: this.intl.t('common.edit-resource', { resource: this.intl.t('resource.contact') }),
|
|
207
252
|
icon: 'pencil',
|
|
208
253
|
fn: this.contactActions.transition.edit,
|
|
@@ -216,6 +261,7 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
216
261
|
separator: true,
|
|
217
262
|
},
|
|
218
263
|
{
|
|
264
|
+
id: 'delete',
|
|
219
265
|
label: this.intl.t('common.delete-resource', { resource: this.intl.t('resource.contact') }),
|
|
220
266
|
icon: 'trash',
|
|
221
267
|
fn: this.contactActions.delete,
|
|
@@ -17,7 +17,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
17
17
|
@service appCache;
|
|
18
18
|
|
|
19
19
|
/** query params */
|
|
20
|
-
@tracked queryParams = [
|
|
20
|
+
@tracked queryParams = this.driverActions.queryParamsFor([
|
|
21
21
|
'page',
|
|
22
22
|
'limit',
|
|
23
23
|
'sort',
|
|
@@ -34,7 +34,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
34
34
|
'created_at',
|
|
35
35
|
'updated_at',
|
|
36
36
|
'status',
|
|
37
|
-
];
|
|
37
|
+
]);
|
|
38
38
|
@tracked page = 1;
|
|
39
39
|
@tracked limit;
|
|
40
40
|
@tracked sort = '-created_at';
|
|
@@ -75,16 +75,19 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
75
75
|
get actionButtons() {
|
|
76
76
|
return [
|
|
77
77
|
{
|
|
78
|
+
id: 'more',
|
|
78
79
|
component: 'dropdown-button',
|
|
79
80
|
icon: 'display',
|
|
80
81
|
size: 'xs',
|
|
81
82
|
items: [
|
|
82
83
|
{
|
|
84
|
+
id: 'table-view',
|
|
83
85
|
label: this.intl.t('common.table-view'),
|
|
84
86
|
icon: 'table-list',
|
|
85
87
|
onClick: () => this.changeLayout('table'),
|
|
86
88
|
},
|
|
87
89
|
{
|
|
90
|
+
id: 'grid-view',
|
|
88
91
|
label: this.intl.t('common.grid-view'),
|
|
89
92
|
icon: 'grip',
|
|
90
93
|
onClick: () => this.changeLayout('grid'),
|
|
@@ -94,28 +97,35 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
94
97
|
helpText: 'Change the layout',
|
|
95
98
|
},
|
|
96
99
|
{
|
|
100
|
+
id: 'refresh',
|
|
97
101
|
icon: 'refresh',
|
|
98
102
|
onClick: this.driverActions.refresh,
|
|
99
103
|
helpText: this.intl.t('common.refresh'),
|
|
100
104
|
},
|
|
101
105
|
{
|
|
106
|
+
id: 'create',
|
|
102
107
|
text: this.intl.t('common.new'),
|
|
103
108
|
type: 'primary',
|
|
104
109
|
icon: 'plus',
|
|
105
110
|
onClick: this.driverActions.transition.create,
|
|
111
|
+
permission: 'fleet-ops create driver',
|
|
106
112
|
},
|
|
107
113
|
{
|
|
114
|
+
id: 'import',
|
|
108
115
|
text: this.intl.t('common.import'),
|
|
109
116
|
type: 'magic',
|
|
110
117
|
icon: 'upload',
|
|
111
118
|
onClick: this.driverActions.import,
|
|
119
|
+
permission: 'fleet-ops import driver',
|
|
112
120
|
},
|
|
113
121
|
{
|
|
122
|
+
id: 'export',
|
|
114
123
|
text: this.intl.t('common.export'),
|
|
115
124
|
icon: 'long-arrow-up',
|
|
116
125
|
iconClass: 'rotate-icon-45',
|
|
117
126
|
wrapperClass: 'hidden md:flex',
|
|
118
127
|
onClick: this.driverActions.export,
|
|
128
|
+
permission: 'fleet-ops export driver',
|
|
119
129
|
},
|
|
120
130
|
];
|
|
121
131
|
}
|
|
@@ -126,9 +136,11 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
126
136
|
|
|
127
137
|
return [
|
|
128
138
|
{
|
|
139
|
+
id: 'bulk-delete',
|
|
129
140
|
label: this.intl.t('common.delete-selected-count', { count: selected.length }),
|
|
130
141
|
class: 'text-red-500',
|
|
131
142
|
fn: this.driverActions.bulkDelete,
|
|
143
|
+
permission: 'fleet-ops delete driver',
|
|
132
144
|
},
|
|
133
145
|
];
|
|
134
146
|
}
|
|
@@ -137,6 +149,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
137
149
|
get columns() {
|
|
138
150
|
return [
|
|
139
151
|
{
|
|
152
|
+
id: 'name',
|
|
140
153
|
sticky: true,
|
|
141
154
|
label: this.intl.t('column.name'),
|
|
142
155
|
valuePath: 'name',
|
|
@@ -149,6 +162,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
149
162
|
filterComponent: 'filter/string',
|
|
150
163
|
},
|
|
151
164
|
{
|
|
165
|
+
id: 'public-id',
|
|
152
166
|
label: this.intl.t('column.id'),
|
|
153
167
|
valuePath: 'public_id',
|
|
154
168
|
cellComponent: 'click-to-copy',
|
|
@@ -159,6 +173,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
159
173
|
filterComponent: 'filter/string',
|
|
160
174
|
},
|
|
161
175
|
{
|
|
176
|
+
id: 'phone',
|
|
162
177
|
label: this.intl.t('column.phone'),
|
|
163
178
|
valuePath: 'phone',
|
|
164
179
|
cellComponent: 'table/cell/base',
|
|
@@ -169,6 +184,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
169
184
|
filterComponent: 'filter/string',
|
|
170
185
|
},
|
|
171
186
|
{
|
|
187
|
+
id: 'drivers-license-number',
|
|
172
188
|
label: this.intl.t('column.license'),
|
|
173
189
|
valuePath: 'drivers_license_number',
|
|
174
190
|
cellComponent: 'table/cell/base',
|
|
@@ -178,6 +194,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
178
194
|
filterComponent: 'filter/string',
|
|
179
195
|
},
|
|
180
196
|
{
|
|
197
|
+
id: 'vehicle-display-name',
|
|
181
198
|
label: this.intl.t('column.vehicle'),
|
|
182
199
|
cellComponent: 'cell/vehicle-identity',
|
|
183
200
|
permission: 'fleet-ops view vehicle',
|
|
@@ -202,6 +219,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
202
219
|
model: 'vehicle',
|
|
203
220
|
},
|
|
204
221
|
{
|
|
222
|
+
id: 'internal-id',
|
|
205
223
|
label: this.intl.t('column.internal-id'),
|
|
206
224
|
valuePath: 'internal_id',
|
|
207
225
|
cellComponent: 'click-to-copy',
|
|
@@ -211,6 +229,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
211
229
|
filterComponent: 'filter/string',
|
|
212
230
|
},
|
|
213
231
|
{
|
|
232
|
+
id: 'vendor-name',
|
|
214
233
|
label: this.intl.t('column.vendor'),
|
|
215
234
|
cellComponent: 'cell/vendor-identity',
|
|
216
235
|
permission: 'fleet-ops view vendor',
|
|
@@ -229,6 +248,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
229
248
|
model: 'vendor',
|
|
230
249
|
},
|
|
231
250
|
{
|
|
251
|
+
id: 'fleets',
|
|
232
252
|
label: this.intl.t('column.fleet'),
|
|
233
253
|
cellComponent: 'table/cell/link-list',
|
|
234
254
|
cellComponentLabelPath: 'name',
|
|
@@ -243,6 +263,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
243
263
|
model: 'fleet',
|
|
244
264
|
},
|
|
245
265
|
{
|
|
266
|
+
id: 'country',
|
|
246
267
|
label: this.intl.t('column.country'),
|
|
247
268
|
valuePath: 'country',
|
|
248
269
|
cellComponent: 'table/cell/country',
|
|
@@ -260,6 +281,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
260
281
|
multiOptionSearchPlaceholder: this.intl.t('common.search-countries'),
|
|
261
282
|
},
|
|
262
283
|
{
|
|
284
|
+
id: 'status',
|
|
263
285
|
label: this.intl.t('column.status'),
|
|
264
286
|
valuePath: 'status',
|
|
265
287
|
cellComponent: 'table/cell/status',
|
|
@@ -270,6 +292,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
270
292
|
filterFetchOptions: 'drivers/statuses',
|
|
271
293
|
},
|
|
272
294
|
{
|
|
295
|
+
id: 'created-at',
|
|
273
296
|
label: this.intl.t('column.created-at'),
|
|
274
297
|
valuePath: 'createdAt',
|
|
275
298
|
sortParam: 'created_at',
|
|
@@ -280,6 +303,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
280
303
|
filterComponent: 'filter/date',
|
|
281
304
|
},
|
|
282
305
|
{
|
|
306
|
+
id: 'updated-at',
|
|
283
307
|
label: this.intl.t('column.updated-at'),
|
|
284
308
|
valuePath: 'updatedAt',
|
|
285
309
|
sortParam: 'updated_at',
|
|
@@ -291,6 +315,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
291
315
|
filterComponent: 'filter/date',
|
|
292
316
|
},
|
|
293
317
|
{
|
|
318
|
+
id: 'row-actions',
|
|
294
319
|
label: '',
|
|
295
320
|
cellComponent: 'table/cell/dropdown',
|
|
296
321
|
ddButtonText: false,
|
|
@@ -303,12 +328,14 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
303
328
|
width: 60,
|
|
304
329
|
actions: [
|
|
305
330
|
{
|
|
331
|
+
id: 'view',
|
|
306
332
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.driver') }),
|
|
307
333
|
icon: 'eye',
|
|
308
334
|
fn: this.driverActions.transition.view,
|
|
309
335
|
permission: 'fleet-ops view driver',
|
|
310
336
|
},
|
|
311
337
|
{
|
|
338
|
+
id: 'edit',
|
|
312
339
|
label: this.intl.t('common.edit-resource', { resource: this.intl.t('resource.driver') }),
|
|
313
340
|
icon: 'pencil',
|
|
314
341
|
fn: this.driverActions.transition.edit,
|
|
@@ -318,18 +345,21 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
318
345
|
separator: true,
|
|
319
346
|
},
|
|
320
347
|
{
|
|
348
|
+
id: 'assign-order',
|
|
321
349
|
label: this.intl.t('driver.actions.assign-order'),
|
|
322
350
|
icon: 'clipboard-list',
|
|
323
351
|
fn: this.driverActions.assignOrder,
|
|
324
352
|
permission: 'fleet-ops assign-order-for driver',
|
|
325
353
|
},
|
|
326
354
|
{
|
|
355
|
+
id: 'assign-vehicle',
|
|
327
356
|
label: this.intl.t('driver.actions.assign-vehicle'),
|
|
328
357
|
icon: 'car',
|
|
329
358
|
fn: this.driverActions.assignVehicle,
|
|
330
359
|
permission: 'fleet-ops assign-vehicle-for driver',
|
|
331
360
|
},
|
|
332
361
|
{
|
|
362
|
+
id: 'unassign-orders',
|
|
333
363
|
label: this.intl.t('driver.actions.unassign-orders'),
|
|
334
364
|
icon: 'user-minus',
|
|
335
365
|
fn: this.driverActions.unassignOrders,
|
|
@@ -337,6 +367,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
337
367
|
isVisible: (driver) => Number(driver.assigned_orders_count) > 0,
|
|
338
368
|
},
|
|
339
369
|
{
|
|
370
|
+
id: 'unassign-vehicle',
|
|
340
371
|
label: this.intl.t('driver.actions.unassign-vehicle'),
|
|
341
372
|
icon: 'link-slash',
|
|
342
373
|
fn: this.driverActions.unassignVehicle,
|
|
@@ -344,12 +375,14 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
344
375
|
isVisible: (driver) => this.hasAssignedVehicle(driver),
|
|
345
376
|
},
|
|
346
377
|
{
|
|
378
|
+
id: 'locate',
|
|
347
379
|
label: this.intl.t('driver.actions.locate-driver'),
|
|
348
380
|
icon: 'location-dot',
|
|
349
381
|
fn: this.driverActions.locate,
|
|
350
382
|
permission: 'fleet-ops view driver',
|
|
351
383
|
},
|
|
352
384
|
{
|
|
385
|
+
id: 'create-issue',
|
|
353
386
|
label: this.intl.t('driver.actions.create-issue'),
|
|
354
387
|
icon: 'triangle-exclamation',
|
|
355
388
|
fn: this.createIssue,
|
|
@@ -363,6 +396,7 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
363
396
|
separator: true,
|
|
364
397
|
},
|
|
365
398
|
{
|
|
399
|
+
id: 'delete',
|
|
366
400
|
label: this.intl.t('common.delete-resource', { resource: this.intl.t('resource.driver') }),
|
|
367
401
|
icon: 'trash',
|
|
368
402
|
fn: this.driverActions.delete,
|
|
@@ -15,7 +15,22 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
15
15
|
@service intl;
|
|
16
16
|
|
|
17
17
|
/** query params */
|
|
18
|
-
@tracked queryParams = [
|
|
18
|
+
@tracked queryParams = this.fleetActions.queryParamsFor([
|
|
19
|
+
'page',
|
|
20
|
+
'limit',
|
|
21
|
+
'sort',
|
|
22
|
+
'query',
|
|
23
|
+
'public_id',
|
|
24
|
+
'zone',
|
|
25
|
+
'service_area',
|
|
26
|
+
'parent_fleet',
|
|
27
|
+
'vendor',
|
|
28
|
+
'created_by',
|
|
29
|
+
'updated_by',
|
|
30
|
+
'status',
|
|
31
|
+
'task',
|
|
32
|
+
'name',
|
|
33
|
+
]);
|
|
19
34
|
@tracked page = 1;
|
|
20
35
|
@tracked limit;
|
|
21
36
|
@tracked sort = '-created_at';
|
|
@@ -33,28 +48,35 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
33
48
|
get actionButtons() {
|
|
34
49
|
return [
|
|
35
50
|
{
|
|
51
|
+
id: 'refresh',
|
|
36
52
|
icon: 'refresh',
|
|
37
53
|
onClick: this.fleetActions.refresh,
|
|
38
54
|
helpText: this.intl.t('common.refresh'),
|
|
39
55
|
},
|
|
40
56
|
{
|
|
57
|
+
id: 'create',
|
|
41
58
|
text: this.intl.t('common.new'),
|
|
42
59
|
type: 'primary',
|
|
43
60
|
icon: 'plus',
|
|
44
61
|
onClick: this.fleetActions.transition.create,
|
|
62
|
+
permission: 'fleet-ops create fleet',
|
|
45
63
|
},
|
|
46
64
|
{
|
|
65
|
+
id: 'import',
|
|
47
66
|
text: this.intl.t('common.import'),
|
|
48
67
|
type: 'magic',
|
|
49
68
|
icon: 'upload',
|
|
50
69
|
onClick: this.fleetActions.import,
|
|
70
|
+
permission: 'fleet-ops import fleet',
|
|
51
71
|
},
|
|
52
72
|
{
|
|
73
|
+
id: 'export',
|
|
53
74
|
text: this.intl.t('common.export'),
|
|
54
75
|
icon: 'long-arrow-up',
|
|
55
76
|
iconClass: 'rotate-icon-45',
|
|
56
77
|
wrapperClass: 'hidden md:flex',
|
|
57
78
|
onClick: this.fleetActions.export,
|
|
79
|
+
permission: 'fleet-ops export fleet',
|
|
58
80
|
},
|
|
59
81
|
];
|
|
60
82
|
}
|
|
@@ -65,9 +87,11 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
65
87
|
|
|
66
88
|
return [
|
|
67
89
|
{
|
|
90
|
+
id: 'bulk-delete',
|
|
68
91
|
label: this.intl.t('common.delete-selected-count', { count: selected.length }),
|
|
69
92
|
class: 'text-red-500',
|
|
70
93
|
fn: this.fleetActions.bulkDelete,
|
|
94
|
+
permission: 'fleet-ops delete fleet',
|
|
71
95
|
},
|
|
72
96
|
];
|
|
73
97
|
}
|
|
@@ -76,6 +100,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
76
100
|
get columns() {
|
|
77
101
|
return [
|
|
78
102
|
{
|
|
103
|
+
id: 'name',
|
|
79
104
|
sticky: true,
|
|
80
105
|
label: this.intl.t('column.name'),
|
|
81
106
|
valuePath: 'name',
|
|
@@ -89,6 +114,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
89
114
|
filterComponent: 'filter/string',
|
|
90
115
|
},
|
|
91
116
|
{
|
|
117
|
+
id: 'service-area-name',
|
|
92
118
|
label: this.intl.t('column.service-area'),
|
|
93
119
|
cellComponent: 'cell/service-area-identity',
|
|
94
120
|
permission: 'fleet-ops view service-area',
|
|
@@ -103,6 +129,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
103
129
|
model: 'service-area',
|
|
104
130
|
},
|
|
105
131
|
{
|
|
132
|
+
id: 'parent-fleet-name',
|
|
106
133
|
label: this.intl.t('column.parent-fleet'),
|
|
107
134
|
cellComponent: 'cell/fleet-identity',
|
|
108
135
|
permission: 'fleet-ops view fleet',
|
|
@@ -116,6 +143,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
116
143
|
model: 'fleet',
|
|
117
144
|
},
|
|
118
145
|
{
|
|
146
|
+
id: 'vendor-name',
|
|
119
147
|
label: this.intl.t('column.vendor'),
|
|
120
148
|
cellComponent: 'cell/vendor-identity',
|
|
121
149
|
permission: 'fleet-ops view vendor',
|
|
@@ -130,6 +158,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
130
158
|
model: 'vendor',
|
|
131
159
|
},
|
|
132
160
|
{
|
|
161
|
+
id: 'zone-name',
|
|
133
162
|
label: this.intl.t('column.zone'),
|
|
134
163
|
cellComponent: 'cell/zone-identity',
|
|
135
164
|
permission: 'fleet-ops view zone',
|
|
@@ -143,6 +172,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
143
172
|
model: 'zone',
|
|
144
173
|
},
|
|
145
174
|
{
|
|
175
|
+
id: 'public-id',
|
|
146
176
|
label: this.intl.t('column.id'),
|
|
147
177
|
valuePath: 'public_id',
|
|
148
178
|
cellComponent: 'click-to-copy',
|
|
@@ -154,6 +184,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
154
184
|
filterComponent: 'filter/string',
|
|
155
185
|
},
|
|
156
186
|
{
|
|
187
|
+
id: 'drivers-count',
|
|
157
188
|
label: this.intl.t('column.manpower'),
|
|
158
189
|
valuePath: 'drivers_count',
|
|
159
190
|
resizable: true,
|
|
@@ -161,6 +192,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
161
192
|
filterable: false,
|
|
162
193
|
},
|
|
163
194
|
{
|
|
195
|
+
id: 'drivers-online-count',
|
|
164
196
|
label: this.intl.t('column.active-manpower'),
|
|
165
197
|
valuePath: 'drivers_online_count',
|
|
166
198
|
hidden: true,
|
|
@@ -169,6 +201,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
169
201
|
filterable: false,
|
|
170
202
|
},
|
|
171
203
|
{
|
|
204
|
+
id: 'task',
|
|
172
205
|
label: this.intl.t('column.task'),
|
|
173
206
|
valuePath: 'task',
|
|
174
207
|
cellComponent: 'table/cell/base',
|
|
@@ -178,6 +211,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
178
211
|
filterComponent: 'filter/string',
|
|
179
212
|
},
|
|
180
213
|
{
|
|
214
|
+
id: 'status',
|
|
181
215
|
label: this.intl.t('column.status'),
|
|
182
216
|
valuePath: 'status',
|
|
183
217
|
cellComponent: 'table/cell/status',
|
|
@@ -190,6 +224,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
190
224
|
filterOptions: fleetOpsOptions('fleetStatuses'),
|
|
191
225
|
},
|
|
192
226
|
{
|
|
227
|
+
id: 'created-at',
|
|
193
228
|
label: this.intl.t('column.created-at'),
|
|
194
229
|
valuePath: 'createdAt',
|
|
195
230
|
sortParam: 'created_at',
|
|
@@ -199,6 +234,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
199
234
|
filterComponent: 'filter/date',
|
|
200
235
|
},
|
|
201
236
|
{
|
|
237
|
+
id: 'updated-at',
|
|
202
238
|
label: this.intl.t('column.updated-at'),
|
|
203
239
|
valuePath: 'updatedAt',
|
|
204
240
|
sortParam: 'updated_at',
|
|
@@ -209,6 +245,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
209
245
|
filterComponent: 'filter/date',
|
|
210
246
|
},
|
|
211
247
|
{
|
|
248
|
+
id: 'row-actions',
|
|
212
249
|
label: '',
|
|
213
250
|
cellComponent: 'table/cell/dropdown',
|
|
214
251
|
ddButtonText: false,
|
|
@@ -221,21 +258,25 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
221
258
|
width: 60,
|
|
222
259
|
actions: [
|
|
223
260
|
{
|
|
261
|
+
id: 'view',
|
|
224
262
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.fleet') }),
|
|
225
263
|
fn: this.fleetActions.transition.view,
|
|
226
264
|
permission: 'fleet-ops view fleet',
|
|
227
265
|
},
|
|
228
266
|
{
|
|
267
|
+
id: 'edit',
|
|
229
268
|
label: this.intl.t('common.edit-resource', { resource: this.intl.t('resource.fleet') }),
|
|
230
269
|
fn: this.fleetActions.transition.edit,
|
|
231
270
|
permission: 'fleet-ops update fleet',
|
|
232
271
|
},
|
|
233
272
|
{
|
|
273
|
+
id: 'assign-driver',
|
|
234
274
|
label: this.intl.t('fleet.actions.assign-driver'),
|
|
235
275
|
permission: 'fleet-ops assign-driver-for fleet',
|
|
236
276
|
fn: this.fleetActions.assignDriver,
|
|
237
277
|
},
|
|
238
278
|
{
|
|
279
|
+
id: 'assign-vehicle',
|
|
239
280
|
label: this.intl.t('fleet.actions.assign-vehicle'),
|
|
240
281
|
permission: 'fleet-ops assign-vehicle-for fleet',
|
|
241
282
|
fn: this.fleetActions.assignVehicle,
|
|
@@ -244,6 +285,7 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
244
285
|
separator: true,
|
|
245
286
|
},
|
|
246
287
|
{
|
|
288
|
+
id: 'delete',
|
|
247
289
|
label: this.intl.t('common.delete-resource', { resource: this.intl.t('resource.fleet') }),
|
|
248
290
|
fn: this.fleetActions.delete,
|
|
249
291
|
permission: 'fleet-ops delete fleet',
|