@fleetbase/fleetops-engine 0.6.51 → 0.6.53
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/README.md +0 -2
- package/addon/components/cell/telematic-provider.hbs +16 -0
- package/addon/components/cell/telematic-provider.js +36 -0
- package/addon/components/cell/telematic-status.hbs +1 -0
- package/addon/components/cell/telematic-status.js +39 -0
- package/addon/components/device/manager.hbs +5 -6
- package/addon/components/device/manager.js +12 -15
- package/addon/components/driver/details.hbs +1 -1
- package/addon/components/fleet/vehicle-listing.js +1 -0
- package/addon/components/fuel-integration/form.hbs +200 -0
- package/addon/components/fuel-integration/form.js +242 -0
- package/addon/components/fuel-integration/hub.hbs +154 -0
- package/addon/components/fuel-integration/hub.js +165 -0
- package/addon/components/fuel-integration/matching-priority.hbs +76 -0
- package/addon/components/fuel-integration/matching-priority.js +145 -0
- package/addon/components/fuel-report/details.hbs +13 -1
- package/addon/components/issue/details.hbs +3 -57
- package/addon/components/issue/details.js +0 -96
- package/addon/components/layout/fleet-ops-sidebar/operations-monitor.hbs +201 -0
- package/addon/components/layout/fleet-ops-sidebar/operations-monitor.js +589 -0
- package/addon/components/layout/fleet-ops-sidebar.hbs +19 -233
- package/addon/components/layout/fleet-ops-sidebar.js +287 -376
- package/addon/components/maintenance-schedule/form.js +1 -0
- package/addon/components/map/drawer/device-event-listing.hbs +12 -2
- package/addon/components/map/drawer/driver-listing.hbs +14 -1
- package/addon/components/map/drawer/place-listing.hbs +14 -1
- package/addon/components/map/drawer/position-listing.hbs +12 -2
- package/addon/components/map/drawer/vehicle-listing.hbs +14 -1
- package/addon/components/modals/assigned-orders.hbs +40 -0
- package/addon/components/modals/attach-device.hbs +4 -3
- package/addon/components/modals/attach-telematic-device.hbs +25 -0
- package/addon/components/modals/attach-telematic-device.js +3 -0
- package/addon/components/modals/driver-assign-order.hbs +7 -58
- package/addon/components/modals/driver-assign-vehicle.hbs +10 -2
- package/addon/components/modals/fleet-assign-driver.hbs +18 -0
- package/addon/components/modals/fleet-assign-driver.js +3 -0
- package/addon/components/modals/fleet-assign-vehicle.hbs +18 -0
- package/addon/components/modals/fleet-assign-vehicle.js +3 -0
- package/addon/components/modals/telematic-connection-diagnostics.hbs +75 -0
- package/addon/components/modals/telematic-connection-diagnostics.js +287 -0
- package/addon/components/modals/vehicle-details.hbs +6 -1
- package/addon/components/modals/vehicle-form.hbs +8 -1
- package/addon/components/order/card.hbs +106 -0
- package/addon/components/order/card.js +257 -0
- package/addon/components/order/form/payload.js +3 -1
- package/addon/components/order/form/service-rate.hbs +2 -0
- package/addon/components/service-rate/form.hbs +3 -2
- package/addon/components/telematic/details.hbs +98 -87
- package/addon/components/telematic/details.js +230 -1
- package/addon/components/telematic/form.hbs +303 -72
- package/addon/components/telematic/form.js +519 -3
- package/addon/components/telematic/hub.hbs +149 -0
- package/addon/components/telematic/hub.js +142 -0
- package/addon/components/telematic/settings.hbs +152 -0
- package/addon/components/telematic/settings.js +45 -0
- package/addon/components/telematic/tab-empty-state.hbs +29 -0
- package/addon/components/telematic/tab-empty-state.js +33 -0
- package/addon/components/vehicle/details.hbs +6 -1
- package/addon/components/vehicle/form.hbs +2 -1
- package/addon/components/widget/fuel-providers.hbs +43 -0
- package/addon/components/widget/fuel-providers.js +27 -0
- package/addon/controllers/connectivity/devices/index/details.js +27 -1
- package/addon/controllers/connectivity/devices/index.js +18 -1
- package/addon/controllers/connectivity/fuel-providers/details/sync.js +18 -0
- package/addon/controllers/connectivity/fuel-providers/details/transactions.js +24 -0
- package/addon/controllers/connectivity/fuel-providers/details.js +69 -0
- package/addon/controllers/connectivity/fuel-providers/edit.js +24 -0
- package/addon/controllers/connectivity/fuel-providers/index.js +177 -0
- package/addon/controllers/connectivity/fuel-providers/new.js +37 -0
- package/addon/controllers/connectivity/telematics/details/attachments.js +247 -0
- package/addon/controllers/connectivity/telematics/details/devices.js +368 -0
- package/addon/controllers/connectivity/telematics/details/events.js +244 -0
- package/addon/controllers/connectivity/telematics/details/index.js +3 -0
- package/addon/controllers/connectivity/telematics/details/logs.js +43 -0
- package/addon/controllers/connectivity/telematics/details/sensors.js +270 -0
- package/addon/controllers/connectivity/telematics/details.js +149 -0
- package/addon/controllers/connectivity/telematics/{index/edit.js → edit.js} +15 -4
- package/addon/controllers/connectivity/telematics/index.js +25 -5
- package/addon/controllers/connectivity/telematics/{index/new.js → new.js} +8 -2
- package/addon/controllers/maintenance/index.js +100 -0
- package/addon/controllers/management/drivers/index/details.js +78 -1
- package/addon/controllers/management/drivers/index.js +39 -0
- package/addon/controllers/management/fleets/index/details.js +23 -1
- package/addon/controllers/management/fleets/index.js +6 -1
- package/addon/controllers/management/fuel-reports/index.js +37 -1
- package/addon/controllers/management/fuel-transactions/index/details.js +70 -0
- package/addon/controllers/management/fuel-transactions/index.js +240 -0
- package/addon/controllers/management/index.js +88 -0
- package/addon/controllers/management/vehicles/index/details.js +32 -0
- package/addon/controllers/management/vehicles/index.js +26 -0
- package/addon/controllers/operations/orders/index.js +4 -0
- package/addon/controllers/settings/index.js +142 -0
- package/addon/controllers/settings/payments/index.js +5 -0
- package/addon/extension.js +31 -0
- package/addon/routes/analytics/index.js +3 -0
- package/addon/routes/connectivity/devices/index.js +3 -0
- package/addon/routes/connectivity/fuel-providers/details/index.js +7 -0
- package/addon/routes/connectivity/fuel-providers/details/matching.js +7 -0
- package/addon/routes/connectivity/fuel-providers/details/settings.js +7 -0
- package/addon/routes/connectivity/fuel-providers/details/sync.js +18 -0
- package/addon/routes/connectivity/fuel-providers/details/transactions.js +14 -0
- package/addon/routes/connectivity/fuel-providers/details.js +18 -0
- package/addon/routes/connectivity/fuel-providers/edit.js +18 -0
- package/addon/routes/connectivity/fuel-providers/index.js +20 -0
- package/addon/routes/connectivity/fuel-providers/new.js +3 -0
- package/addon/routes/connectivity/fuel-providers.js +3 -0
- package/addon/routes/connectivity/telematics/details/attachments.js +28 -0
- package/addon/routes/connectivity/telematics/details/devices.js +30 -0
- package/addon/routes/connectivity/telematics/details/events.js +33 -0
- package/addon/routes/connectivity/telematics/details/index.js +3 -0
- package/addon/routes/connectivity/telematics/details/logs.js +17 -0
- package/addon/routes/connectivity/telematics/details/sensors.js +29 -0
- package/addon/routes/connectivity/telematics/{index/details.js → details.js} +1 -1
- package/addon/routes/connectivity/telematics/{index/edit.js → edit.js} +1 -1
- package/addon/routes/connectivity/telematics/new.js +3 -0
- package/addon/routes/maintenance/index.js +3 -0
- package/addon/routes/maintenance/work-orders/index.js +2 -0
- package/addon/routes/management/drivers/index/details/activity.js +3 -0
- package/addon/routes/management/fuel-reports/index.js +2 -0
- package/addon/routes/management/fuel-transactions/index/details.js +18 -0
- package/addon/routes/management/fuel-transactions/index.js +21 -0
- package/addon/routes/management/fuel-transactions.js +3 -0
- package/addon/routes/settings/index.js +3 -0
- package/addon/routes.js +28 -9
- package/addon/services/device-actions.js +64 -1
- package/addon/services/device-event-actions.js +12 -1
- package/addon/services/driver-actions.js +147 -11
- package/addon/services/fleet-actions.js +66 -1
- package/addon/services/fuel-integration-actions.js +31 -0
- package/addon/services/issue-actions.js +1 -1
- package/addon/services/telematic-actions.js +9 -3
- package/addon/services/vehicle-actions.js +125 -0
- package/addon/styles/fleetops-engine.css +2237 -162
- package/addon/templates/analytics/index.hbs +14 -0
- package/addon/templates/analytics/reports/index.hbs +19 -1
- package/addon/templates/connectivity/devices/index.hbs +19 -1
- package/addon/templates/connectivity/events/index.hbs +16 -1
- package/addon/templates/connectivity/fuel-providers/details/index.hbs +38 -0
- package/addon/templates/connectivity/fuel-providers/details/matching.hbs +13 -0
- package/addon/templates/connectivity/fuel-providers/details/settings.hbs +11 -0
- package/addon/templates/connectivity/fuel-providers/details/sync.hbs +48 -0
- package/addon/templates/connectivity/fuel-providers/details/transactions.hbs +21 -0
- package/addon/templates/connectivity/fuel-providers/details.hbs +51 -0
- package/addon/templates/connectivity/fuel-providers/edit.hbs +24 -0
- package/addon/templates/connectivity/fuel-providers/index.hbs +12 -0
- package/addon/templates/connectivity/fuel-providers/new.hbs +22 -0
- package/addon/templates/connectivity/fuel-providers.hbs +1 -0
- package/addon/templates/connectivity/sensors/index.hbs +19 -1
- package/addon/templates/connectivity/telematics/details/attachments.hbs +163 -0
- package/addon/templates/connectivity/telematics/details/devices.hbs +88 -0
- package/addon/templates/connectivity/telematics/details/events.hbs +101 -0
- package/addon/templates/connectivity/telematics/{index/details → details}/index.hbs +0 -1
- package/addon/templates/connectivity/telematics/details/logs.hbs +69 -0
- package/addon/templates/connectivity/telematics/details/sensors.hbs +88 -0
- package/addon/templates/connectivity/telematics/details.hbs +53 -0
- package/addon/templates/connectivity/telematics/edit.hbs +27 -0
- package/addon/templates/connectivity/telematics/index.hbs +6 -8
- package/addon/templates/connectivity/telematics/new.hbs +24 -0
- package/addon/templates/maintenance/equipment/index.hbs +19 -1
- package/addon/templates/maintenance/index.hbs +113 -0
- package/addon/templates/maintenance/maintenances/index.hbs +15 -1
- package/addon/templates/maintenance/parts/index.hbs +19 -1
- package/addon/templates/maintenance/schedules/index.hbs +19 -1
- package/addon/templates/maintenance/work-orders/index.hbs +19 -1
- package/addon/templates/management/contacts/customers.hbs +15 -1
- package/addon/templates/management/contacts/index.hbs +19 -1
- package/addon/templates/management/drivers/index/details/activity.hbs +1 -0
- package/addon/templates/management/drivers/index.hbs +19 -1
- package/addon/templates/management/fleets/index.hbs +19 -1
- package/addon/templates/management/fuel-reports/index.hbs +19 -1
- package/addon/templates/management/fuel-transactions/index/details.hbs +73 -0
- package/addon/templates/management/fuel-transactions/index.hbs +58 -0
- package/addon/templates/management/fuel-transactions.hbs +1 -0
- package/addon/templates/management/index.hbs +109 -73
- package/addon/templates/management/issues/index.hbs +19 -1
- package/addon/templates/management/places/index.hbs +19 -1
- package/addon/templates/management/vehicles/index.hbs +19 -1
- package/addon/templates/management/vendors/index.hbs +19 -1
- package/addon/templates/management/vendors/integrated.hbs +13 -1
- package/addon/templates/operations/orders/index.hbs +19 -1
- package/addon/templates/operations/service-rates/index.hbs +19 -1
- package/addon/templates/settings/index.hbs +83 -0
- package/addon/templates/settings/payments/index.hbs +15 -1
- package/addon/templates/settings/routing.hbs +2 -2
- package/addon/utils/fleet-ops-options.js +3 -0
- package/app/components/cell/telematic-provider.js +1 -0
- package/app/components/cell/telematic-status.js +1 -0
- package/app/components/fuel-integration/form.js +1 -0
- package/app/components/fuel-integration/hub.js +1 -0
- package/app/components/fuel-integration/matching-priority.js +1 -0
- package/app/components/modals/assigned-orders.js +1 -0
- package/app/components/modals/attach-telematic-device.js +1 -0
- package/app/components/modals/fleet-assign-driver.js +1 -0
- package/app/components/modals/fleet-assign-vehicle.js +1 -0
- package/app/components/modals/telematic-connection-diagnostics.js +1 -0
- package/app/components/order/card.js +1 -0
- package/app/components/telematic/hub.js +1 -0
- package/app/components/telematic/settings.js +1 -0
- package/app/components/telematic/tab-empty-state.js +1 -0
- package/app/components/widget/fuel-providers.js +1 -0
- package/app/controllers/connectivity/fuel-providers/details/sync.js +1 -0
- package/app/controllers/connectivity/{telematics/index/details/devices.js → fuel-providers/details/transactions.js} +1 -1
- package/app/controllers/connectivity/{telematics/index → fuel-providers}/details.js +1 -1
- package/app/controllers/connectivity/{telematics/index → fuel-providers}/edit.js +1 -1
- package/app/controllers/connectivity/{telematics/index/details → fuel-providers}/index.js +1 -1
- package/app/controllers/connectivity/{telematics/index → fuel-providers}/new.js +1 -1
- package/app/controllers/connectivity/telematics/details/attachments.js +1 -0
- package/app/controllers/connectivity/telematics/details/devices.js +1 -0
- package/app/controllers/connectivity/telematics/details/events.js +1 -0
- package/app/controllers/connectivity/telematics/details/index.js +1 -0
- package/app/controllers/connectivity/telematics/details/logs.js +1 -0
- package/app/controllers/connectivity/telematics/details/sensors.js +1 -0
- package/app/controllers/connectivity/telematics/details.js +1 -0
- package/app/controllers/connectivity/telematics/edit.js +1 -0
- package/app/controllers/connectivity/telematics/new.js +1 -0
- package/app/controllers/maintenance/index.js +1 -0
- package/app/controllers/management/fuel-transactions/index/details.js +1 -0
- package/app/controllers/management/fuel-transactions/index.js +1 -0
- package/app/controllers/management/index.js +1 -0
- package/app/controllers/settings/index.js +1 -0
- package/app/routes/analytics/index.js +1 -0
- package/app/routes/connectivity/{telematics/index → fuel-providers}/details/index.js +1 -1
- package/app/routes/connectivity/{telematics/index/details/events.js → fuel-providers/details/matching.js} +1 -1
- package/app/routes/connectivity/fuel-providers/details/settings.js +1 -0
- package/app/routes/connectivity/fuel-providers/details/sync.js +1 -0
- package/app/routes/connectivity/{telematics/index/details/devices.js → fuel-providers/details/transactions.js} +1 -1
- package/app/routes/connectivity/{telematics/index → fuel-providers}/details.js +1 -1
- package/app/routes/connectivity/{telematics/index → fuel-providers}/edit.js +1 -1
- package/app/routes/connectivity/fuel-providers/index.js +1 -0
- package/app/routes/connectivity/{telematics/index → fuel-providers}/new.js +1 -1
- package/app/routes/connectivity/fuel-providers.js +1 -0
- package/app/routes/connectivity/telematics/details/attachments.js +1 -0
- package/app/routes/connectivity/telematics/details/devices.js +1 -0
- package/app/routes/connectivity/telematics/details/events.js +1 -0
- package/app/routes/connectivity/telematics/details/index.js +1 -0
- package/app/routes/connectivity/telematics/details/logs.js +1 -0
- package/app/routes/connectivity/telematics/details/sensors.js +1 -0
- package/app/routes/connectivity/telematics/details.js +1 -0
- package/app/routes/connectivity/telematics/edit.js +1 -0
- package/app/routes/connectivity/telematics/new.js +1 -0
- package/app/routes/maintenance/index.js +1 -0
- package/app/routes/management/drivers/index/details/activity.js +1 -0
- package/app/routes/management/fuel-transactions/index/details.js +1 -0
- package/app/routes/management/fuel-transactions/index.js +1 -0
- package/app/routes/management/fuel-transactions.js +1 -0
- package/app/routes/settings/index.js +1 -0
- package/app/services/fuel-integration-actions.js +1 -0
- package/app/templates/analytics/index.js +1 -0
- package/app/templates/connectivity/{telematics/index → fuel-providers}/details/index.js +1 -1
- package/app/templates/connectivity/{telematics/index/details/events.js → fuel-providers/details/matching.js} +1 -1
- package/app/templates/connectivity/fuel-providers/details/settings.js +1 -0
- package/app/templates/connectivity/fuel-providers/details/sync.js +1 -0
- package/app/templates/connectivity/{telematics/index/details/devices.js → fuel-providers/details/transactions.js} +1 -1
- package/app/templates/connectivity/{telematics/index → fuel-providers}/details.js +1 -1
- package/app/templates/connectivity/{telematics/index → fuel-providers}/edit.js +1 -1
- package/app/templates/connectivity/fuel-providers/index.js +1 -0
- package/app/templates/connectivity/{telematics/index → fuel-providers}/new.js +1 -1
- package/app/templates/connectivity/fuel-providers.js +1 -0
- package/app/templates/connectivity/telematics/details/attachments.js +1 -0
- package/app/templates/connectivity/telematics/details/devices.js +1 -0
- package/app/templates/connectivity/telematics/details/events.js +1 -0
- package/app/templates/connectivity/telematics/details/index.js +1 -0
- package/app/templates/connectivity/telematics/details/logs.js +1 -0
- package/app/templates/connectivity/telematics/details/sensors.js +1 -0
- package/app/templates/connectivity/telematics/details.js +1 -0
- package/app/templates/connectivity/telematics/edit.js +1 -0
- package/app/templates/connectivity/telematics/new.js +1 -0
- package/app/templates/maintenance/index.js +1 -0
- package/app/templates/management/drivers/index/details/activity.js +1 -0
- package/app/templates/management/fuel-transactions/index/details.js +1 -0
- package/app/templates/management/fuel-transactions/index.js +1 -0
- package/app/templates/management/fuel-transactions.js +1 -0
- package/app/templates/management/index.js +1 -0
- package/app/templates/settings/index.js +1 -0
- package/assets/images/telematics/providers/afaqy.webp +0 -0
- package/assets/images/telematics/providers/default.webp +0 -0
- package/assets/images/telematics/providers/flespi.webp +0 -0
- package/assets/images/telematics/providers/geotab.webp +0 -0
- package/assets/images/telematics/providers/safee.webp +0 -0
- package/assets/images/telematics/providers/samsara.webp +0 -0
- package/composer.json +1 -1
- package/extension.json +1 -1
- package/package.json +4 -4
- package/server/config/fuel-providers.php +42 -0
- package/server/config/telematics.php +139 -130
- package/server/migrations/2026_06_06_000001_harden_device_events_telematics_contract.php +59 -0
- package/server/migrations/2026_06_08_000001_create_fuel_provider_connections_table.php +37 -0
- package/server/migrations/2026_06_08_000002_create_fuel_provider_transactions_table.php +53 -0
- package/server/migrations/2026_06_08_000003_create_fuel_provider_sync_runs_table.php +40 -0
- package/server/migrations/2026_06_10_000001_add_fuel_card_number_to_vehicles_table.php +25 -0
- package/server/migrations/2026_06_10_000002_add_vehicle_identity_columns_to_fuel_provider_transactions_table.php +39 -0
- package/server/migrations/2026_06_15_000001_normalize_device_attachable_vehicle_morph_types.php +30 -0
- package/server/src/Console/Commands/FixInvalidPolymorphicRelationTypeNamespaces.php +1 -0
- package/server/src/Contracts/FuelProvider.php +30 -0
- package/server/src/Contracts/TelematicProviderDescriptor.php +3 -1
- package/server/src/Events/FuelProviderTransactionImported.php +17 -0
- package/server/src/Events/FuelProviderTransactionMatched.php +17 -0
- package/server/src/Events/FuelProviderTransactionUnmatched.php +17 -0
- package/server/src/Events/FuelReportCreatedFromProvider.php +18 -0
- package/server/src/Http/Controllers/Internal/v1/AnalyticsController.php +6 -0
- package/server/src/Http/Controllers/Internal/v1/DeviceController.php +140 -2
- package/server/src/Http/Controllers/Internal/v1/DeviceEventController.php +44 -0
- package/server/src/Http/Controllers/Internal/v1/DriverController.php +158 -7
- package/server/src/Http/Controllers/Internal/v1/FuelProviderConnectionController.php +124 -0
- package/server/src/Http/Controllers/Internal/v1/FuelProviderSyncRunController.php +10 -0
- package/server/src/Http/Controllers/Internal/v1/FuelProviderTransactionController.php +76 -0
- package/server/src/Http/Controllers/Internal/v1/HubController.php +300 -0
- package/server/src/Http/Controllers/Internal/v1/SearchController.php +506 -0
- package/server/src/Http/Controllers/Internal/v1/SensorController.php +1 -1
- package/server/src/Http/Controllers/Internal/v1/TelematicController.php +179 -16
- package/server/src/Http/Controllers/Internal/v1/VehicleController.php +249 -0
- package/server/src/Http/Controllers/TelematicWebhookController.php +103 -19
- package/server/src/Http/Filter/DeviceFilter.php +74 -0
- package/server/src/Http/Filter/DriverFilter.php +6 -0
- package/server/src/Http/Filter/FuelProviderConnectionFilter.php +33 -0
- package/server/src/Http/Filter/FuelProviderSyncRunFilter.php +28 -0
- package/server/src/Http/Filter/FuelProviderTransactionFilter.php +59 -0
- package/server/src/Http/Filter/FuelReportFilter.php +10 -0
- package/server/src/Http/Filter/VehicleFilter.php +6 -0
- package/server/src/Http/Resources/v1/Driver.php +15 -0
- package/server/src/Http/Resources/v1/FuelProviderConnection.php +30 -0
- package/server/src/Http/Resources/v1/FuelProviderSyncRun.php +36 -0
- package/server/src/Http/Resources/v1/FuelProviderTransaction.php +54 -0
- package/server/src/Http/Resources/v1/FuelReport.php +28 -22
- package/server/src/Http/Resources/v1/Index/Driver.php +26 -20
- package/server/src/Http/Resources/v1/Index/Vehicle.php +29 -22
- package/server/src/Http/Resources/v1/Vehicle.php +17 -0
- package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +2 -0
- package/server/src/Jobs/SyncFuelProviderTransactionsJob.php +57 -0
- package/server/src/Jobs/SyncTelematicDevicesJob.php +105 -17
- package/server/src/Jobs/TestTelematicConnectionJob.php +9 -22
- package/server/src/Models/Asset.php +2 -1
- package/server/src/Models/Contact.php +2 -1
- package/server/src/Models/Device.php +27 -4
- package/server/src/Models/DeviceEvent.php +40 -3
- package/server/src/Models/Driver.php +3 -2
- package/server/src/Models/Equipment.php +2 -1
- package/server/src/Models/Fleet.php +2 -1
- package/server/src/Models/FuelProviderConnection.php +60 -0
- package/server/src/Models/FuelProviderSyncRun.php +58 -0
- package/server/src/Models/FuelProviderTransaction.php +119 -0
- package/server/src/Models/FuelReport.php +16 -1
- package/server/src/Models/Part.php +2 -1
- package/server/src/Models/Sensor.php +21 -4
- package/server/src/Models/ServiceRate.php +39 -2
- package/server/src/Models/Vehicle.php +14 -2
- package/server/src/Models/Vendor.php +2 -1
- package/server/src/Providers/FleetOpsServiceProvider.php +20 -0
- package/server/src/Support/Analytics/FuelProviderSummary.php +42 -0
- package/server/src/Support/FuelProviders/FuelProviderDescriptor.php +55 -0
- package/server/src/Support/FuelProviders/FuelProviderRegistry.php +75 -0
- package/server/src/Support/FuelProviders/FuelProviderService.php +447 -0
- package/server/src/Support/FuelProviders/Providers/AbstractFuelProvider.php +98 -0
- package/server/src/Support/FuelProviders/Providers/PetroAppFuelProvider.php +167 -0
- package/server/src/Support/Telematics/Providers/AbstractProvider.php +27 -6
- package/server/src/Support/Telematics/Providers/AfaqyProvider.php +105 -38
- package/server/src/Support/Telematics/Providers/FlespiProvider.php +1 -0
- package/server/src/Support/Telematics/Providers/GeotabProvider.php +1 -0
- package/server/src/Support/Telematics/Providers/SafeeProvider.php +32 -22
- package/server/src/Support/Telematics/Providers/SamsaraProvider.php +3 -1
- package/server/src/Support/Telematics/TelematicService.php +340 -21
- package/server/src/routes.php +50 -4
- package/server/tests/FuelProviderRegistryTest.php +416 -0
- package/server/tests/HubRoutesTest.php +62 -0
- package/server/tests/ServiceRateAlgorithmWeightVariablesTest.php +44 -0
- package/server/tests/TelematicsHardeningTest.php +359 -0
- package/server/tests/VehicleDriverAssignmentTest.php +51 -0
- package/translations/ar-ae.yml +23 -1
- package/translations/bg-bg.yaml +72 -0
- package/translations/en-us.yaml +83 -0
- package/translations/es-pa.yaml +72 -0
- package/translations/fr-fr.yaml +72 -0
- package/translations/mn-mn.yaml +72 -0
- package/translations/pt-br.yaml +72 -0
- package/translations/ru-ru.yaml +72 -0
- package/translations/vi-vn.yaml +98 -1
- package/addon/controllers/connectivity/telematics/index/details/devices.js +0 -3
- package/addon/controllers/connectivity/telematics/index/details/events.js +0 -3
- package/addon/controllers/connectivity/telematics/index/details/index.js +0 -3
- package/addon/controllers/connectivity/telematics/index/details/sensors.js +0 -3
- package/addon/controllers/connectivity/telematics/index/details.js +0 -24
- package/addon/routes/connectivity/telematics/index/details/devices.js +0 -3
- package/addon/routes/connectivity/telematics/index/details/events.js +0 -3
- package/addon/routes/connectivity/telematics/index/details/index.js +0 -3
- package/addon/routes/connectivity/telematics/index/details/sensors.js +0 -3
- package/addon/routes/connectivity/telematics/index/new.js +0 -3
- package/addon/templates/connectivity/telematics/index/details/devices.hbs +0 -1
- package/addon/templates/connectivity/telematics/index/details/events.hbs +0 -1
- package/addon/templates/connectivity/telematics/index/details/sensors.hbs +0 -1
- package/addon/templates/connectivity/telematics/index/details.hbs +0 -14
- package/addon/templates/connectivity/telematics/index/edit.hbs +0 -12
- package/addon/templates/connectivity/telematics/index/new.hbs +0 -12
- package/app/controllers/connectivity/telematics/index/details/events.js +0 -1
- package/app/controllers/connectivity/telematics/index/details/sensors.js +0 -1
- package/app/routes/connectivity/telematics/index/details/sensors.js +0 -1
- package/app/templates/connectivity/telematics/index/details/sensors.js +0 -1
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import Controller from '@ember/controller';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action } from '@ember/object';
|
|
4
|
+
|
|
5
|
+
export default class SettingsIndexController extends Controller {
|
|
6
|
+
@service docsPanel;
|
|
7
|
+
|
|
8
|
+
groups = [
|
|
9
|
+
{
|
|
10
|
+
title: 'Driver And Map Experience',
|
|
11
|
+
description: 'Tune what dispatchers and drivers see while work is moving.',
|
|
12
|
+
links: [
|
|
13
|
+
{ label: 'Navigator App', route: 'settings.navigator-app', icon: 'location-arrow', description: 'Driver app behavior and workflow defaults.' },
|
|
14
|
+
{ label: 'Map', route: 'settings.map', icon: 'map', description: 'Map providers, defaults, and display behavior.' },
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
title: 'Dispatch Automation',
|
|
19
|
+
description: 'Shape route planning, assignment, and scheduling behavior.',
|
|
20
|
+
links: [
|
|
21
|
+
{ label: 'Routing', route: 'settings.routing', icon: 'route', description: 'Routing engines and routing defaults.' },
|
|
22
|
+
{ label: 'Orchestrator', route: 'settings.orchestrator', icon: 'circle-nodes', description: 'Dispatch orchestration and assignment behavior.' },
|
|
23
|
+
{ label: 'Scheduling', route: 'settings.scheduling', icon: 'calendar-days', description: 'Schedule planning and operational timing rules.' },
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
title: 'Business And Data',
|
|
28
|
+
description: 'Keep commerce, metadata, and visual conventions aligned.',
|
|
29
|
+
links: [
|
|
30
|
+
{ label: 'Payments', route: 'settings.payments', icon: 'cash-register', description: 'Payment setup for operational commerce workflows.' },
|
|
31
|
+
{ label: 'Custom Fields', route: 'settings.custom-fields', icon: 'pen-to-square', description: 'Operational metadata fields for Fleet-Ops records.' },
|
|
32
|
+
{ label: 'Avatars', route: 'settings.avatars', icon: 'icons', description: 'Visual assets for driver, vehicle, and map displays.' },
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
title: 'Communication',
|
|
37
|
+
description: 'Control operational alerts and notification behavior.',
|
|
38
|
+
links: [{ label: 'Notifications', route: 'settings.notifications', icon: 'bell', description: 'Operational status alerts and notification rules.' }],
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
|
|
42
|
+
actions = [
|
|
43
|
+
{
|
|
44
|
+
label: 'Start with driver experience',
|
|
45
|
+
description: 'Navigator App and Map settings should be reviewed before operators rely on live dispatch defaults.',
|
|
46
|
+
icon: 'location-arrow',
|
|
47
|
+
route: 'settings.navigator-app',
|
|
48
|
+
tone: 'info',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
label: 'Review automation rules',
|
|
52
|
+
description: 'Routing, orchestration, and scheduling settings affect assignment and planning behavior.',
|
|
53
|
+
icon: 'route',
|
|
54
|
+
route: 'settings.routing',
|
|
55
|
+
tone: 'warning',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
label: 'Keep forms focused',
|
|
59
|
+
description: 'Add custom fields after core workflows are stable so operational screens stay easy to scan.',
|
|
60
|
+
icon: 'pen-to-square',
|
|
61
|
+
route: 'settings.custom-fields',
|
|
62
|
+
tone: 'success',
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
docs = [
|
|
67
|
+
{
|
|
68
|
+
label: 'Navigator App',
|
|
69
|
+
icon: 'location-arrow',
|
|
70
|
+
slug: 'fleet-ops/settings/navigator-app',
|
|
71
|
+
title: 'Navigator App settings',
|
|
72
|
+
description: 'Configure driver app behavior, onboarding, and live workflow defaults.',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
label: 'Map',
|
|
76
|
+
icon: 'map',
|
|
77
|
+
slug: 'fleet-ops/settings/map',
|
|
78
|
+
title: 'Map settings',
|
|
79
|
+
description: 'Set map providers, display defaults, and operator map behavior.',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
label: 'Payments',
|
|
83
|
+
icon: 'cash-register',
|
|
84
|
+
slug: 'fleet-ops/settings/payments',
|
|
85
|
+
title: 'Payments guide',
|
|
86
|
+
description: 'Connect payment providers and payment behavior for Fleet-Ops workflows.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
label: 'Notifications',
|
|
90
|
+
icon: 'bell',
|
|
91
|
+
slug: 'fleet-ops/settings/notifications',
|
|
92
|
+
title: 'Notification settings',
|
|
93
|
+
description: 'Tune operational alerts sent to dispatchers, customers, and drivers.',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
label: 'Routing',
|
|
97
|
+
icon: 'route',
|
|
98
|
+
slug: 'fleet-ops/settings/routing',
|
|
99
|
+
title: 'Routing settings',
|
|
100
|
+
description: 'Configure routing engines, tracking defaults, and distance units.',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
label: 'Orchestrator',
|
|
104
|
+
icon: 'circle-nodes',
|
|
105
|
+
slug: 'fleet-ops/settings/orchestrator',
|
|
106
|
+
title: 'Orchestrator settings',
|
|
107
|
+
description: 'Select dispatch automation engines and assignment behavior.',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
label: 'Scheduling',
|
|
111
|
+
icon: 'calendar-days',
|
|
112
|
+
slug: 'fleet-ops/settings/scheduling',
|
|
113
|
+
title: 'Scheduling settings',
|
|
114
|
+
description: 'Manage schedule templates and timing rules for planned work.',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
label: 'Custom Fields',
|
|
118
|
+
icon: 'pen-to-square',
|
|
119
|
+
slug: 'fleet-ops/settings/custom-fields',
|
|
120
|
+
title: 'Custom field settings',
|
|
121
|
+
description: 'Add structured operational metadata to Fleet-Ops records.',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
label: 'Avatars',
|
|
125
|
+
icon: 'icons',
|
|
126
|
+
slug: 'fleet-ops/settings/avatars',
|
|
127
|
+
title: 'Avatar settings',
|
|
128
|
+
description: 'Manage visual markers used across maps and operational screens.',
|
|
129
|
+
},
|
|
130
|
+
];
|
|
131
|
+
|
|
132
|
+
@action openDocs(link) {
|
|
133
|
+
if (!link?.slug) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return this.docsPanel.open(link.slug, {
|
|
138
|
+
title: link.title ?? link.label,
|
|
139
|
+
source: 'fleet-ops-settings-hub',
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
@@ -4,6 +4,7 @@ import { inject as service } from '@ember/service';
|
|
|
4
4
|
import { isEmpty } from '@ember/utils';
|
|
5
5
|
import { task } from 'ember-concurrency';
|
|
6
6
|
import config from 'ember-get-config';
|
|
7
|
+
import { action } from '@ember/object';
|
|
7
8
|
|
|
8
9
|
export default class SettingsPaymentsIndexController extends Controller {
|
|
9
10
|
@service fetch;
|
|
@@ -57,4 +58,8 @@ export default class SettingsPaymentsIndexController extends Controller {
|
|
|
57
58
|
this.hasStripeConnectAccount = false;
|
|
58
59
|
}
|
|
59
60
|
}
|
|
61
|
+
|
|
62
|
+
@action refreshPayments() {
|
|
63
|
+
return this.lookupStripeConnectAccount.perform();
|
|
64
|
+
}
|
|
60
65
|
}
|
package/addon/extension.js
CHANGED
|
@@ -279,6 +279,16 @@ export default {
|
|
|
279
279
|
category: 'Analytics',
|
|
280
280
|
default: false,
|
|
281
281
|
}),
|
|
282
|
+
new Widget({
|
|
283
|
+
id: 'fleet-ops-fuel-providers-widget',
|
|
284
|
+
name: 'Fuel Integrations',
|
|
285
|
+
description: 'Provider spend, unmatched transactions, and sync health.',
|
|
286
|
+
icon: 'gas-pump',
|
|
287
|
+
component: new ExtensionComponent('@fleetbase/fleetops-engine', 'widget/fuel-providers'),
|
|
288
|
+
grid_options: { w: 4, h: 5, minW: 4, minH: 5 },
|
|
289
|
+
category: 'Analytics',
|
|
290
|
+
default: false,
|
|
291
|
+
}),
|
|
282
292
|
new Widget({
|
|
283
293
|
id: 'fleet-ops-issues-insights-widget',
|
|
284
294
|
name: 'Issues Insights',
|
|
@@ -311,7 +321,28 @@ export default {
|
|
|
311
321
|
}),
|
|
312
322
|
];
|
|
313
323
|
|
|
324
|
+
const defaultWidgets = widgets
|
|
325
|
+
.filter((widget) => (typeof widget.isDefault === 'function' ? widget.isDefault() : widget.default === true))
|
|
326
|
+
.map((widget) => {
|
|
327
|
+
const definition = typeof widget.toObject === 'function' ? widget.toObject() : widget;
|
|
328
|
+
|
|
329
|
+
return {
|
|
330
|
+
...definition,
|
|
331
|
+
widgetId: definition.widgetId ?? definition.id,
|
|
332
|
+
};
|
|
333
|
+
});
|
|
334
|
+
|
|
314
335
|
widgetService.registerWidgets('dashboard', widgets);
|
|
336
|
+
|
|
337
|
+
if (typeof widgetService.registerDashboard === 'function') {
|
|
338
|
+
widgetService.registerDashboard('fleet-ops');
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
widgetService.registerWidgets('fleet-ops', widgets);
|
|
342
|
+
|
|
343
|
+
if (typeof widgetService.registerDefaultWidgets === 'function') {
|
|
344
|
+
widgetService.registerDefaultWidgets('fleet-ops', defaultWidgets);
|
|
345
|
+
}
|
|
315
346
|
},
|
|
316
347
|
|
|
317
348
|
registerHomeComponents(registryService) {
|
|
@@ -11,6 +11,9 @@ export default class ConnectivityDevicesIndexRoute extends Route {
|
|
|
11
11
|
query: { refreshModel: true },
|
|
12
12
|
name: { refreshModel: true },
|
|
13
13
|
public_id: { refreshModel: true },
|
|
14
|
+
status: { refreshModel: true },
|
|
15
|
+
attachment_state: { refreshModel: true },
|
|
16
|
+
telematic: { refreshModel: true },
|
|
14
17
|
created_at: { refreshModel: true },
|
|
15
18
|
updated_at: { refreshModel: true },
|
|
16
19
|
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ConnectivityFuelProvidersIndexDetailsSyncRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
model() {
|
|
8
|
+
const connection = this.modelFor('connectivity.fuel-providers.details');
|
|
9
|
+
|
|
10
|
+
return {
|
|
11
|
+
connection,
|
|
12
|
+
syncRuns: this.store.query('fuel-provider-sync-run', {
|
|
13
|
+
connection: connection.uuid,
|
|
14
|
+
sort: '-created_at',
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ConnectivityFuelProvidersIndexDetailsTransactionsRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
model() {
|
|
8
|
+
const connection = this.modelFor('connectivity.fuel-providers.details');
|
|
9
|
+
return this.store.query('fuel-provider-transaction', {
|
|
10
|
+
connection: connection.uuid,
|
|
11
|
+
sort: '-transaction_at',
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action } from '@ember/object';
|
|
4
|
+
|
|
5
|
+
export default class ConnectivityFuelProvidersIndexDetailsRoute extends Route {
|
|
6
|
+
@service store;
|
|
7
|
+
@service notifications;
|
|
8
|
+
@service hostRouter;
|
|
9
|
+
|
|
10
|
+
@action error(error) {
|
|
11
|
+
this.notifications.serverError(error);
|
|
12
|
+
return this.hostRouter.transitionTo('console.fleet-ops.connectivity.fuel-providers.index');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
model({ public_id }) {
|
|
16
|
+
return this.store.findRecord('fuel-provider-connection', public_id);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action } from '@ember/object';
|
|
4
|
+
|
|
5
|
+
export default class ConnectivityFuelProvidersIndexEditRoute extends Route {
|
|
6
|
+
@service store;
|
|
7
|
+
@service notifications;
|
|
8
|
+
@service hostRouter;
|
|
9
|
+
|
|
10
|
+
@action error(error) {
|
|
11
|
+
this.notifications.serverError(error);
|
|
12
|
+
return this.hostRouter.transitionTo('console.fleet-ops.connectivity.fuel-providers.index');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
model({ public_id }) {
|
|
16
|
+
return this.store.findRecord('fuel-provider-connection', public_id);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ConnectivityFuelProvidersIndexRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
queryParams = {
|
|
8
|
+
page: { refreshModel: true },
|
|
9
|
+
limit: { refreshModel: true },
|
|
10
|
+
sort: { refreshModel: true },
|
|
11
|
+
query: { refreshModel: true },
|
|
12
|
+
provider: { refreshModel: true },
|
|
13
|
+
status: { refreshModel: true },
|
|
14
|
+
environment: { refreshModel: true },
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
model(params) {
|
|
18
|
+
return this.store.query('fuel-provider-connection', { sort: '-updated_at', ...params });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ConnectivityTelematicsDetailsAttachmentsRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
queryParams = {
|
|
8
|
+
query: { refreshModel: true },
|
|
9
|
+
status: { refreshModel: true },
|
|
10
|
+
attachment_state: { refreshModel: true },
|
|
11
|
+
vehicle: { refreshModel: true },
|
|
12
|
+
sort: { refreshModel: true },
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
model(params) {
|
|
16
|
+
const telematic = this.modelFor('connectivity.telematics.details');
|
|
17
|
+
|
|
18
|
+
return this.store.query('device', {
|
|
19
|
+
telematic_uuid: telematic.id,
|
|
20
|
+
sort: params.sort,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
setupController(controller, model) {
|
|
25
|
+
super.setupController(controller, model);
|
|
26
|
+
controller.telematic = this.modelFor('connectivity.telematics.details');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ConnectivityTelematicsDetailsDevicesRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
queryParams = {
|
|
8
|
+
page: { refreshModel: true },
|
|
9
|
+
limit: { refreshModel: true },
|
|
10
|
+
sort: { refreshModel: true },
|
|
11
|
+
query: { refreshModel: true },
|
|
12
|
+
status: { refreshModel: true },
|
|
13
|
+
provider: { refreshModel: true },
|
|
14
|
+
attachment_state: { refreshModel: true },
|
|
15
|
+
device_id: { refreshModel: true },
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
model(params) {
|
|
19
|
+
const telematic = this.modelFor('connectivity.telematics.details');
|
|
20
|
+
return this.store.query('device', {
|
|
21
|
+
...params,
|
|
22
|
+
telematic_uuid: telematic.id,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
setupController(controller, model) {
|
|
27
|
+
super.setupController(controller, model);
|
|
28
|
+
controller.telematic = this.modelFor('connectivity.telematics.details');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ConnectivityTelematicsDetailsEventsRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
queryParams = {
|
|
8
|
+
page: { refreshModel: true },
|
|
9
|
+
limit: { refreshModel: true },
|
|
10
|
+
sort: { refreshModel: true },
|
|
11
|
+
query: { refreshModel: true },
|
|
12
|
+
event_type: { refreshModel: true },
|
|
13
|
+
severity: { refreshModel: true },
|
|
14
|
+
device_uuid: { refreshModel: true },
|
|
15
|
+
provider: { refreshModel: true },
|
|
16
|
+
processed: { refreshModel: true },
|
|
17
|
+
occurred_at: { refreshModel: true },
|
|
18
|
+
created_at: { refreshModel: true },
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
model(params) {
|
|
22
|
+
const telematic = this.modelFor('connectivity.telematics.details');
|
|
23
|
+
return this.store.query('device-event', {
|
|
24
|
+
...params,
|
|
25
|
+
telematic: telematic.id,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
setupController(controller, model) {
|
|
30
|
+
super.setupController(controller, model);
|
|
31
|
+
controller.telematic = this.modelFor('connectivity.telematics.details');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ConnectivityTelematicsDetailsLogsRoute extends Route {
|
|
5
|
+
@service fetch;
|
|
6
|
+
|
|
7
|
+
model() {
|
|
8
|
+
const telematic = this.modelFor('connectivity.telematics.details');
|
|
9
|
+
|
|
10
|
+
return this.fetch.get(`telematics/${telematic.id}/logs`);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
setupController(controller, model) {
|
|
14
|
+
super.setupController(controller, model);
|
|
15
|
+
controller.telematic = this.modelFor('connectivity.telematics.details');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ConnectivityTelematicsDetailsSensorsRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
queryParams = {
|
|
8
|
+
page: { refreshModel: true },
|
|
9
|
+
limit: { refreshModel: true },
|
|
10
|
+
sort: { refreshModel: true },
|
|
11
|
+
query: { refreshModel: true },
|
|
12
|
+
status: { refreshModel: true },
|
|
13
|
+
type: { refreshModel: true },
|
|
14
|
+
device_uuid: { refreshModel: true },
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
model(params) {
|
|
18
|
+
const telematic = this.modelFor('connectivity.telematics.details');
|
|
19
|
+
return this.store.query('sensor', {
|
|
20
|
+
...params,
|
|
21
|
+
telematic_uuid: telematic.id,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
setupController(controller, model) {
|
|
26
|
+
super.setupController(controller, model);
|
|
27
|
+
controller.telematic = this.modelFor('connectivity.telematics.details');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -2,7 +2,7 @@ import Route from '@ember/routing/route';
|
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
3
|
import { action } from '@ember/object';
|
|
4
4
|
|
|
5
|
-
export default class
|
|
5
|
+
export default class ConnectivityTelematicsDetailsRoute extends Route {
|
|
6
6
|
@service store;
|
|
7
7
|
@service notifications;
|
|
8
8
|
@service hostRouter;
|
|
@@ -2,7 +2,7 @@ import Route from '@ember/routing/route';
|
|
|
2
2
|
import { inject as service } from '@ember/service';
|
|
3
3
|
import { action } from '@ember/object';
|
|
4
4
|
|
|
5
|
-
export default class
|
|
5
|
+
export default class ConnectivityTelematicsEditRoute extends Route {
|
|
6
6
|
@service store;
|
|
7
7
|
@service notifications;
|
|
8
8
|
@service hostRouter;
|
|
@@ -11,6 +11,8 @@ export default class MaintenanceWorkOrdersIndexRoute extends Route {
|
|
|
11
11
|
query: { refreshModel: true },
|
|
12
12
|
name: { refreshModel: true },
|
|
13
13
|
public_id: { refreshModel: true },
|
|
14
|
+
status: { refreshModel: true },
|
|
15
|
+
priority: { refreshModel: true },
|
|
14
16
|
created_at: { refreshModel: true },
|
|
15
17
|
updated_at: { refreshModel: true },
|
|
16
18
|
};
|
|
@@ -13,6 +13,8 @@ export default class ManagementFuelReportsIndexRoute extends Route {
|
|
|
13
13
|
reporter: { refreshModel: true },
|
|
14
14
|
driver: { refreshModel: true },
|
|
15
15
|
status: { refreshModel: true },
|
|
16
|
+
source: { refreshModel: true },
|
|
17
|
+
provider: { refreshModel: true },
|
|
16
18
|
createdAt: { refreshModel: true },
|
|
17
19
|
updatedAt: { refreshModel: true },
|
|
18
20
|
public_id: { refreshModel: true },
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
import { action } from '@ember/object';
|
|
4
|
+
|
|
5
|
+
export default class ManagementFuelTransactionsIndexDetailsRoute extends Route {
|
|
6
|
+
@service store;
|
|
7
|
+
@service notifications;
|
|
8
|
+
@service hostRouter;
|
|
9
|
+
|
|
10
|
+
@action error(error) {
|
|
11
|
+
this.notifications.serverError(error);
|
|
12
|
+
return this.hostRouter.transitionTo('console.fleet-ops.management.fuel-transactions.index');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
model({ public_id }) {
|
|
16
|
+
return this.store.findRecord('fuel-provider-transaction', public_id);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import { inject as service } from '@ember/service';
|
|
3
|
+
|
|
4
|
+
export default class ManagementFuelTransactionsIndexRoute extends Route {
|
|
5
|
+
@service store;
|
|
6
|
+
|
|
7
|
+
queryParams = {
|
|
8
|
+
page: { refreshModel: true },
|
|
9
|
+
limit: { refreshModel: true },
|
|
10
|
+
sort: { refreshModel: true },
|
|
11
|
+
query: { refreshModel: true },
|
|
12
|
+
provider: { refreshModel: true },
|
|
13
|
+
sync_status: { refreshModel: true },
|
|
14
|
+
vehicle: { refreshModel: true },
|
|
15
|
+
transaction_at: { refreshModel: true },
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
model(params) {
|
|
19
|
+
return this.store.query('fuel-provider-transaction', { sort: '-transaction_at', ...params });
|
|
20
|
+
}
|
|
21
|
+
}
|