@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
|
@@ -19,8 +19,8 @@ export default class MaintenanceEquipmentIndexDetailsController extends Controll
|
|
|
19
19
|
|
|
20
20
|
get actionButtons() {
|
|
21
21
|
return [
|
|
22
|
-
{ icon: 'edit', fn: this.edit, permission: 'fleet-ops update equipment' },
|
|
23
|
-
{ icon: 'trash', fn: this.delete, type: 'danger', permission: 'fleet-ops delete equipment' },
|
|
22
|
+
{ id: 'edit', icon: 'edit', fn: this.edit, permission: 'fleet-ops update equipment' },
|
|
23
|
+
{ id: 'delete', icon: 'trash', fn: this.delete, type: 'danger', permission: 'fleet-ops delete equipment' },
|
|
24
24
|
];
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -7,7 +7,7 @@ export default class MaintenanceEquipmentIndexController extends Controller {
|
|
|
7
7
|
@service intl;
|
|
8
8
|
@service appCache;
|
|
9
9
|
|
|
10
|
-
@tracked queryParams = ['type', 'status', 'page', 'limit', 'sort', 'query', 'public_id', 'created_at', 'updated_at'];
|
|
10
|
+
@tracked queryParams = this.equipmentActions.queryParamsFor(['type', 'status', 'page', 'limit', 'sort', 'query', 'public_id', 'created_at', 'updated_at']);
|
|
11
11
|
@tracked page = 1;
|
|
12
12
|
@tracked limit;
|
|
13
13
|
@tracked sort = '-created_at';
|
|
@@ -21,6 +21,7 @@ export default class MaintenanceEquipmentIndexController extends Controller {
|
|
|
21
21
|
get actionButtons() {
|
|
22
22
|
return [
|
|
23
23
|
{
|
|
24
|
+
id: 'more',
|
|
24
25
|
component: 'dropdown-button',
|
|
25
26
|
icon: 'display',
|
|
26
27
|
size: 'xs',
|
|
@@ -45,20 +46,29 @@ export default class MaintenanceEquipmentIndexController extends Controller {
|
|
|
45
46
|
renderInPlace: true,
|
|
46
47
|
helpText: 'Change the layout',
|
|
47
48
|
},
|
|
48
|
-
{ icon: 'refresh', onClick: this.equipmentActions.refresh, helpText: this.intl.t('common.refresh') },
|
|
49
|
-
{ text: this.intl.t('common.new'), type: 'primary', icon: 'plus', onClick: this.equipmentActions.transition.create },
|
|
50
|
-
{ text: this.intl.t('common.import'), type: 'magic', icon: 'upload', onClick: this.equipmentActions.import },
|
|
51
|
-
{
|
|
49
|
+
{ id: 'refresh', icon: 'refresh', onClick: this.equipmentActions.refresh, helpText: this.intl.t('common.refresh') },
|
|
50
|
+
{ id: 'create', text: this.intl.t('common.new'), type: 'primary', icon: 'plus', onClick: this.equipmentActions.transition.create, permission: 'fleet-ops create equipment' },
|
|
51
|
+
{ id: 'import', text: this.intl.t('common.import'), type: 'magic', icon: 'upload', onClick: this.equipmentActions.import, permission: 'fleet-ops import equipment' },
|
|
52
|
+
{
|
|
53
|
+
id: 'export',
|
|
54
|
+
text: this.intl.t('common.export'),
|
|
55
|
+
icon: 'long-arrow-up',
|
|
56
|
+
iconClass: 'rotate-icon-45',
|
|
57
|
+
wrapperClass: 'hidden md:flex',
|
|
58
|
+
onClick: this.equipmentActions.export,
|
|
59
|
+
permission: 'fleet-ops export equipment',
|
|
60
|
+
},
|
|
52
61
|
];
|
|
53
62
|
}
|
|
54
63
|
|
|
55
64
|
get bulkActions() {
|
|
56
|
-
return [{ label: 'Delete selected...', class: 'text-red-500', fn: this.equipmentActions.bulkDelete }];
|
|
65
|
+
return [{ id: 'bulk-delete', label: 'Delete selected...', class: 'text-red-500', fn: this.equipmentActions.bulkDelete, permission: 'fleet-ops delete equipment' }];
|
|
57
66
|
}
|
|
58
67
|
|
|
59
68
|
get columns() {
|
|
60
69
|
return [
|
|
61
70
|
{
|
|
71
|
+
id: 'name',
|
|
62
72
|
label: this.intl.t('column.name'),
|
|
63
73
|
valuePath: 'name',
|
|
64
74
|
cellComponent: 'cell/equipment-identity',
|
|
@@ -70,8 +80,9 @@ export default class MaintenanceEquipmentIndexController extends Controller {
|
|
|
70
80
|
filterParam: 'name',
|
|
71
81
|
filterComponent: 'filter/string',
|
|
72
82
|
},
|
|
73
|
-
{ label: this.intl.t('column.code'), valuePath: 'code', resizable: true, sortable: true, filterable: true, filterParam: 'code', filterComponent: 'filter/string' },
|
|
83
|
+
{ id: 'code', label: this.intl.t('column.code'), valuePath: 'code', resizable: true, sortable: true, filterable: true, filterParam: 'code', filterComponent: 'filter/string' },
|
|
74
84
|
{
|
|
85
|
+
id: 'type',
|
|
75
86
|
label: this.intl.t('column.type'),
|
|
76
87
|
valuePath: 'type',
|
|
77
88
|
cellComponent: 'table/cell/base',
|
|
@@ -83,6 +94,7 @@ export default class MaintenanceEquipmentIndexController extends Controller {
|
|
|
83
94
|
filterComponent: 'filter/string',
|
|
84
95
|
},
|
|
85
96
|
{
|
|
97
|
+
id: 'status',
|
|
86
98
|
label: this.intl.t('column.status'),
|
|
87
99
|
valuePath: 'status',
|
|
88
100
|
cellComponent: 'table/cell/status',
|
|
@@ -92,10 +104,20 @@ export default class MaintenanceEquipmentIndexController extends Controller {
|
|
|
92
104
|
filterParam: 'status',
|
|
93
105
|
filterComponent: 'filter/string',
|
|
94
106
|
},
|
|
95
|
-
{ label: this.intl.t('column.serial-number'), valuePath: 'serial_number', resizable: true, sortable: true },
|
|
96
|
-
{ label: this.intl.t('column.manufacturer'), valuePath: 'manufacturer', resizable: true, sortable: true },
|
|
97
|
-
{
|
|
107
|
+
{ id: 'serial-number', label: this.intl.t('column.serial-number'), valuePath: 'serial_number', resizable: true, sortable: true },
|
|
108
|
+
{ id: 'manufacturer', label: this.intl.t('column.manufacturer'), valuePath: 'manufacturer', resizable: true, sortable: true },
|
|
109
|
+
{
|
|
110
|
+
id: 'created-at',
|
|
111
|
+
label: this.intl.t('column.created-at'),
|
|
112
|
+
valuePath: 'createdAt',
|
|
113
|
+
sortParam: 'created_at',
|
|
114
|
+
resizable: true,
|
|
115
|
+
sortable: true,
|
|
116
|
+
filterable: true,
|
|
117
|
+
filterComponent: 'filter/date',
|
|
118
|
+
},
|
|
98
119
|
{
|
|
120
|
+
id: 'updated-at',
|
|
99
121
|
label: this.intl.t('column.updated-at'),
|
|
100
122
|
valuePath: 'updatedAt',
|
|
101
123
|
sortParam: 'updated_at',
|
|
@@ -106,6 +128,7 @@ export default class MaintenanceEquipmentIndexController extends Controller {
|
|
|
106
128
|
filterComponent: 'filter/date',
|
|
107
129
|
},
|
|
108
130
|
{
|
|
131
|
+
id: 'row-actions',
|
|
109
132
|
label: '',
|
|
110
133
|
cellComponent: 'table/cell/dropdown',
|
|
111
134
|
ddButtonText: false,
|
|
@@ -116,17 +139,20 @@ export default class MaintenanceEquipmentIndexController extends Controller {
|
|
|
116
139
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
117
140
|
actions: [
|
|
118
141
|
{
|
|
142
|
+
id: 'view',
|
|
119
143
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.equipment') }),
|
|
120
144
|
fn: this.equipmentActions.transition.view,
|
|
121
145
|
permission: 'fleet-ops view equipment',
|
|
122
146
|
},
|
|
123
147
|
{
|
|
148
|
+
id: 'edit',
|
|
124
149
|
label: this.intl.t('common.edit-resource', { resource: this.intl.t('resource.equipment') }),
|
|
125
150
|
fn: this.equipmentActions.transition.edit,
|
|
126
151
|
permission: 'fleet-ops update equipment',
|
|
127
152
|
},
|
|
128
153
|
{ separator: true },
|
|
129
154
|
{
|
|
155
|
+
id: 'delete',
|
|
130
156
|
label: this.intl.t('common.delete-resource', { resource: this.intl.t('resource.equipment') }),
|
|
131
157
|
fn: this.equipmentActions.delete,
|
|
132
158
|
permission: 'fleet-ops delete equipment',
|
|
@@ -6,7 +6,7 @@ export default class MaintenanceInspectionFormsIndexController extends Controlle
|
|
|
6
6
|
@service inspectionFormActions;
|
|
7
7
|
@service intl;
|
|
8
8
|
|
|
9
|
-
@tracked queryParams = ['status', 'type', 'page', 'limit', 'sort', 'query', 'public_id', 'created_at', 'updated_at'];
|
|
9
|
+
@tracked queryParams = this.inspectionFormActions.queryParamsFor(['status', 'type', 'page', 'limit', 'sort', 'query', 'public_id', 'created_at', 'updated_at']);
|
|
10
10
|
@tracked page = 1;
|
|
11
11
|
@tracked limit;
|
|
12
12
|
@tracked sort = '-created_at';
|
|
@@ -16,18 +16,26 @@ export default class MaintenanceInspectionFormsIndexController extends Controlle
|
|
|
16
16
|
|
|
17
17
|
get actionButtons() {
|
|
18
18
|
return [
|
|
19
|
-
{ icon: 'refresh', onClick: this.inspectionFormActions.refresh, helpText: this.intl.t('common.refresh') },
|
|
20
|
-
{
|
|
19
|
+
{ id: 'refresh', icon: 'refresh', onClick: this.inspectionFormActions.refresh, helpText: this.intl.t('common.refresh') },
|
|
20
|
+
{
|
|
21
|
+
id: 'create',
|
|
22
|
+
text: this.intl.t('common.new'),
|
|
23
|
+
type: 'primary',
|
|
24
|
+
icon: 'plus',
|
|
25
|
+
onClick: this.inspectionFormActions.transition.create,
|
|
26
|
+
permission: 'fleet-ops create inspection-form',
|
|
27
|
+
},
|
|
21
28
|
];
|
|
22
29
|
}
|
|
23
30
|
|
|
24
31
|
get bulkActions() {
|
|
25
|
-
return [{ label: 'Delete selected...', class: 'text-red-500', fn: this.inspectionFormActions.bulkDelete }];
|
|
32
|
+
return [{ id: 'bulk-delete', label: 'Delete selected...', class: 'text-red-500', fn: this.inspectionFormActions.bulkDelete, permission: 'fleet-ops delete inspection-form' }];
|
|
26
33
|
}
|
|
27
34
|
|
|
28
35
|
get columns() {
|
|
29
36
|
return [
|
|
30
37
|
{
|
|
38
|
+
id: 'name',
|
|
31
39
|
label: 'Name',
|
|
32
40
|
valuePath: 'name',
|
|
33
41
|
cellComponent: 'table/cell/anchor',
|
|
@@ -40,6 +48,7 @@ export default class MaintenanceInspectionFormsIndexController extends Controlle
|
|
|
40
48
|
filterComponent: 'filter/string',
|
|
41
49
|
},
|
|
42
50
|
{
|
|
51
|
+
id: 'type',
|
|
43
52
|
label: 'Type',
|
|
44
53
|
valuePath: 'type',
|
|
45
54
|
cellComponent: 'table/cell/fleet-ops-option',
|
|
@@ -51,6 +60,7 @@ export default class MaintenanceInspectionFormsIndexController extends Controlle
|
|
|
51
60
|
filterComponent: 'filter/string',
|
|
52
61
|
},
|
|
53
62
|
{
|
|
63
|
+
id: 'status',
|
|
54
64
|
label: 'Status',
|
|
55
65
|
valuePath: 'status',
|
|
56
66
|
cellComponent: 'table/cell/status',
|
|
@@ -60,9 +70,19 @@ export default class MaintenanceInspectionFormsIndexController extends Controlle
|
|
|
60
70
|
filterParam: 'status',
|
|
61
71
|
filterComponent: 'filter/string',
|
|
62
72
|
},
|
|
63
|
-
{ label: 'Items', valuePath: 'item_count', resizable: true, sortable: false },
|
|
64
|
-
{
|
|
73
|
+
{ id: 'item-count', label: 'Items', valuePath: 'item_count', resizable: true, sortable: false },
|
|
74
|
+
{
|
|
75
|
+
id: 'created-at',
|
|
76
|
+
label: this.intl.t('column.created-at'),
|
|
77
|
+
valuePath: 'createdAt',
|
|
78
|
+
sortParam: 'created_at',
|
|
79
|
+
resizable: true,
|
|
80
|
+
sortable: true,
|
|
81
|
+
filterable: true,
|
|
82
|
+
filterComponent: 'filter/date',
|
|
83
|
+
},
|
|
65
84
|
{
|
|
85
|
+
id: 'row-actions',
|
|
66
86
|
label: '',
|
|
67
87
|
cellComponent: 'table/cell/dropdown',
|
|
68
88
|
ddButtonText: false,
|
|
@@ -71,14 +91,14 @@ export default class MaintenanceInspectionFormsIndexController extends Controlle
|
|
|
71
91
|
cellClassNames: 'overflow-visible',
|
|
72
92
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
73
93
|
actions: [
|
|
74
|
-
{ label: 'View form', fn: this.inspectionFormActions.transition.view, permission: 'fleet-ops view inspection-form' },
|
|
75
|
-
{ label: 'Edit form', fn: this.inspectionFormActions.transition.edit, permission: 'fleet-ops update inspection-form' },
|
|
94
|
+
{ id: 'view', label: 'View form', fn: this.inspectionFormActions.transition.view, permission: 'fleet-ops view inspection-form' },
|
|
95
|
+
{ id: 'edit', label: 'Edit form', fn: this.inspectionFormActions.transition.edit, permission: 'fleet-ops update inspection-form' },
|
|
76
96
|
{ separator: true },
|
|
77
|
-
{ label: 'Publish', fn: this.inspectionFormActions.publish, permission: 'fleet-ops publish inspection-form' },
|
|
78
|
-
{ label: 'Archive', fn: this.inspectionFormActions.archive, permission: 'fleet-ops archive inspection-form' },
|
|
79
|
-
{ label: 'Generate inspection link', fn: this.inspectionFormActions.generateLink, permission: 'fleet-ops view inspection-form' },
|
|
97
|
+
{ id: 'publish', label: 'Publish', fn: this.inspectionFormActions.publish, permission: 'fleet-ops publish inspection-form' },
|
|
98
|
+
{ id: 'archive', label: 'Archive', fn: this.inspectionFormActions.archive, permission: 'fleet-ops archive inspection-form' },
|
|
99
|
+
{ id: 'generate-link', label: 'Generate inspection link', fn: this.inspectionFormActions.generateLink, permission: 'fleet-ops view inspection-form' },
|
|
80
100
|
{ separator: true },
|
|
81
|
-
{ label: 'Delete form', fn: this.inspectionFormActions.delete, class: 'text-red-500', permission: 'fleet-ops delete inspection-form' },
|
|
101
|
+
{ id: 'delete', label: 'Delete form', fn: this.inspectionFormActions.delete, class: 'text-red-500', permission: 'fleet-ops delete inspection-form' },
|
|
82
102
|
],
|
|
83
103
|
sortable: false,
|
|
84
104
|
filterable: false,
|
|
@@ -24,8 +24,9 @@ export default class MaintenanceInspectionSubmissionsIndexDetailsController exte
|
|
|
24
24
|
*/
|
|
25
25
|
get actionButtons() {
|
|
26
26
|
return [
|
|
27
|
-
{ icon: 'edit', fn: this.edit, permission: 'fleet-ops update inspection-submission' },
|
|
27
|
+
{ id: 'edit', icon: 'edit', fn: this.edit, permission: 'fleet-ops update inspection-submission' },
|
|
28
28
|
{
|
|
29
|
+
id: 'more',
|
|
29
30
|
icon: 'ellipsis-h',
|
|
30
31
|
iconPrefix: 'fas',
|
|
31
32
|
renderInPlace: true,
|
|
@@ -9,7 +9,20 @@ export default class MaintenanceInspectionSubmissionsIndexController extends Con
|
|
|
9
9
|
@service inspectionSubmissionActions;
|
|
10
10
|
@service intl;
|
|
11
11
|
|
|
12
|
-
@tracked queryParams = [
|
|
12
|
+
@tracked queryParams = this.inspectionSubmissionActions.queryParamsFor([
|
|
13
|
+
'status',
|
|
14
|
+
'result',
|
|
15
|
+
'type',
|
|
16
|
+
'page',
|
|
17
|
+
'limit',
|
|
18
|
+
'sort',
|
|
19
|
+
'query',
|
|
20
|
+
'public_id',
|
|
21
|
+
'vehicle',
|
|
22
|
+
'driver',
|
|
23
|
+
'created_at',
|
|
24
|
+
'updated_at',
|
|
25
|
+
]);
|
|
13
26
|
@tracked page = 1;
|
|
14
27
|
@tracked limit;
|
|
15
28
|
@tracked sort = '-created_at';
|
|
@@ -22,18 +35,28 @@ export default class MaintenanceInspectionSubmissionsIndexController extends Con
|
|
|
22
35
|
|
|
23
36
|
get actionButtons() {
|
|
24
37
|
return [
|
|
25
|
-
{ icon: 'refresh', onClick: this.inspectionSubmissionActions.refresh, helpText: this.intl.t('common.refresh') },
|
|
26
|
-
{
|
|
38
|
+
{ id: 'refresh', icon: 'refresh', onClick: this.inspectionSubmissionActions.refresh, helpText: this.intl.t('common.refresh') },
|
|
39
|
+
{
|
|
40
|
+
id: 'create',
|
|
41
|
+
text: this.intl.t('common.new'),
|
|
42
|
+
type: 'primary',
|
|
43
|
+
icon: 'plus',
|
|
44
|
+
onClick: this.inspectionSubmissionActions.transition.create,
|
|
45
|
+
permission: 'fleet-ops create inspection-submission',
|
|
46
|
+
},
|
|
27
47
|
];
|
|
28
48
|
}
|
|
29
49
|
|
|
30
50
|
get bulkActions() {
|
|
31
|
-
return [
|
|
51
|
+
return [
|
|
52
|
+
{ id: 'bulk-delete', label: 'Delete selected...', class: 'text-red-500', fn: this.inspectionSubmissionActions.bulkDelete, permission: 'fleet-ops delete inspection-submission' },
|
|
53
|
+
];
|
|
32
54
|
}
|
|
33
55
|
|
|
34
56
|
get columns() {
|
|
35
57
|
return [
|
|
36
58
|
{
|
|
59
|
+
id: 'public-id',
|
|
37
60
|
label: 'Inspection',
|
|
38
61
|
valuePath: 'public_id',
|
|
39
62
|
cellComponent: 'table/cell/anchor',
|
|
@@ -46,6 +69,7 @@ export default class MaintenanceInspectionSubmissionsIndexController extends Con
|
|
|
46
69
|
filterComponent: 'filter/string',
|
|
47
70
|
},
|
|
48
71
|
{
|
|
72
|
+
id: 'form-name',
|
|
49
73
|
label: 'Form',
|
|
50
74
|
valuePath: 'form_name',
|
|
51
75
|
cellComponent: 'cell/inspection-form-identity',
|
|
@@ -55,6 +79,7 @@ export default class MaintenanceInspectionSubmissionsIndexController extends Con
|
|
|
55
79
|
sortable: false,
|
|
56
80
|
},
|
|
57
81
|
{
|
|
82
|
+
id: 'vehicle-name',
|
|
58
83
|
label: 'Vehicle',
|
|
59
84
|
valuePath: 'vehicle_name',
|
|
60
85
|
cellComponent: 'cell/vehicle-identity',
|
|
@@ -66,6 +91,7 @@ export default class MaintenanceInspectionSubmissionsIndexController extends Con
|
|
|
66
91
|
sortable: false,
|
|
67
92
|
},
|
|
68
93
|
{
|
|
94
|
+
id: 'driver-name',
|
|
69
95
|
label: 'Driver',
|
|
70
96
|
valuePath: 'driver_name',
|
|
71
97
|
cellComponent: 'cell/driver-identity',
|
|
@@ -77,6 +103,7 @@ export default class MaintenanceInspectionSubmissionsIndexController extends Con
|
|
|
77
103
|
sortable: false,
|
|
78
104
|
},
|
|
79
105
|
{
|
|
106
|
+
id: 'result',
|
|
80
107
|
label: 'Result',
|
|
81
108
|
valuePath: 'result',
|
|
82
109
|
cellComponent: 'table/cell/status',
|
|
@@ -86,9 +113,19 @@ export default class MaintenanceInspectionSubmissionsIndexController extends Con
|
|
|
86
113
|
filterParam: 'result',
|
|
87
114
|
filterComponent: 'filter/string',
|
|
88
115
|
},
|
|
89
|
-
{ label: 'Failed', valuePath: 'failed_items', resizable: true, sortable: true },
|
|
90
|
-
{ label: 'Submitted', valuePath: 'submittedAt', sortParam: 'submitted_at', resizable: true, sortable: true, filterable: true, filterComponent: 'filter/date' },
|
|
116
|
+
{ id: 'failed-items', label: 'Failed', valuePath: 'failed_items', resizable: true, sortable: true },
|
|
91
117
|
{
|
|
118
|
+
id: 'submitted-at',
|
|
119
|
+
label: 'Submitted',
|
|
120
|
+
valuePath: 'submittedAt',
|
|
121
|
+
sortParam: 'submitted_at',
|
|
122
|
+
resizable: true,
|
|
123
|
+
sortable: true,
|
|
124
|
+
filterable: true,
|
|
125
|
+
filterComponent: 'filter/date',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
id: 'row-actions',
|
|
92
129
|
label: '',
|
|
93
130
|
cellComponent: 'table/cell/dropdown',
|
|
94
131
|
ddButtonText: false,
|
|
@@ -97,8 +134,8 @@ export default class MaintenanceInspectionSubmissionsIndexController extends Con
|
|
|
97
134
|
cellClassNames: 'overflow-visible',
|
|
98
135
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
99
136
|
actions: [
|
|
100
|
-
{ label: 'View inspection', fn: this.inspectionSubmissionActions.transition.view, permission: 'fleet-ops view inspection-submission' },
|
|
101
|
-
{ label: 'Edit inspection', fn: this.inspectionSubmissionActions.transition.edit, permission: 'fleet-ops update inspection-submission' },
|
|
137
|
+
{ id: 'view', label: 'View inspection', fn: this.inspectionSubmissionActions.transition.view, permission: 'fleet-ops view inspection-submission' },
|
|
138
|
+
{ id: 'edit', label: 'Edit inspection', fn: this.inspectionSubmissionActions.transition.edit, permission: 'fleet-ops update inspection-submission' },
|
|
102
139
|
{
|
|
103
140
|
separator: true,
|
|
104
141
|
// Everything below this rule is conditional. On a row
|
|
@@ -108,6 +145,7 @@ export default class MaintenanceInspectionSubmissionsIndexController extends Con
|
|
|
108
145
|
isVisible: (row) => row?.status === 'draft' || row?.status !== 'resolved' || Boolean(row?.has_failures && (!row?.issue_uuid || !row?.work_order_uuid)),
|
|
109
146
|
},
|
|
110
147
|
{
|
|
148
|
+
id: 'submit',
|
|
111
149
|
label: 'Submit',
|
|
112
150
|
fn: this.inspectionSubmissionActions.submit,
|
|
113
151
|
permission: 'fleet-ops submit inspection-submission',
|
|
@@ -117,20 +155,28 @@ export default class MaintenanceInspectionSubmissionsIndexController extends Con
|
|
|
117
155
|
isVisible: (row) => row?.status === 'draft',
|
|
118
156
|
},
|
|
119
157
|
{
|
|
158
|
+
id: 'create-issue',
|
|
120
159
|
label: 'Create issue',
|
|
121
160
|
fn: this.inspectionSubmissionActions.createIssue,
|
|
122
161
|
permission: 'fleet-ops create-issue inspection-submission',
|
|
123
162
|
isVisible: (row) => row?.has_failures && !row?.issue_uuid,
|
|
124
163
|
},
|
|
125
164
|
{
|
|
165
|
+
id: 'create-work-order',
|
|
126
166
|
label: 'Create work order',
|
|
127
167
|
fn: this.inspectionSubmissionActions.createWorkOrder,
|
|
128
168
|
permission: 'fleet-ops create-work-order inspection-submission',
|
|
129
169
|
isVisible: (row) => row?.has_failures && !row?.work_order_uuid,
|
|
130
170
|
},
|
|
131
|
-
{
|
|
171
|
+
{
|
|
172
|
+
id: 'resolve',
|
|
173
|
+
label: 'Resolve',
|
|
174
|
+
fn: this.inspectionSubmissionActions.resolve,
|
|
175
|
+
permission: 'fleet-ops resolve inspection-submission',
|
|
176
|
+
isVisible: (row) => row?.status !== 'resolved',
|
|
177
|
+
},
|
|
132
178
|
{ separator: true },
|
|
133
|
-
{ label: 'Delete inspection', fn: this.inspectionSubmissionActions.delete, class: 'text-red-500', permission: 'fleet-ops delete inspection-submission' },
|
|
179
|
+
{ id: 'delete', label: 'Delete inspection', fn: this.inspectionSubmissionActions.delete, class: 'text-red-500', permission: 'fleet-ops delete inspection-submission' },
|
|
134
180
|
],
|
|
135
181
|
sortable: false,
|
|
136
182
|
filterable: false,
|
|
@@ -27,11 +27,13 @@ export default class MaintenanceMaintenancesIndexDetailsController extends Contr
|
|
|
27
27
|
get actionButtons() {
|
|
28
28
|
return [
|
|
29
29
|
{
|
|
30
|
+
id: 'edit',
|
|
30
31
|
icon: 'edit',
|
|
31
32
|
fn: this.edit,
|
|
32
33
|
permission: 'fleet-ops update maintenance',
|
|
33
34
|
},
|
|
34
35
|
{
|
|
36
|
+
id: 'delete',
|
|
35
37
|
icon: 'trash',
|
|
36
38
|
fn: this.delete,
|
|
37
39
|
type: 'danger',
|
|
@@ -9,7 +9,7 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
9
9
|
@service intl;
|
|
10
10
|
|
|
11
11
|
/** query params */
|
|
12
|
-
@tracked queryParams = ['type', 'status', 'priority', 'page', 'limit', 'sort', 'query', 'public_id', 'created_at', 'updated_at'];
|
|
12
|
+
@tracked queryParams = this.maintenanceActions.queryParamsFor(['type', 'status', 'priority', 'page', 'limit', 'sort', 'query', 'public_id', 'created_at', 'updated_at']);
|
|
13
13
|
@tracked page = 1;
|
|
14
14
|
@tracked limit;
|
|
15
15
|
@tracked sort = '-created_at';
|
|
@@ -22,28 +22,35 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
22
22
|
get actionButtons() {
|
|
23
23
|
return [
|
|
24
24
|
{
|
|
25
|
+
id: 'refresh',
|
|
25
26
|
icon: 'refresh',
|
|
26
27
|
onClick: this.maintenanceActions.refresh,
|
|
27
28
|
helpText: this.intl.t('common.refresh'),
|
|
28
29
|
},
|
|
29
30
|
{
|
|
31
|
+
id: 'create',
|
|
30
32
|
text: this.intl.t('common.new'),
|
|
31
33
|
type: 'primary',
|
|
32
34
|
icon: 'plus',
|
|
33
35
|
onClick: this.maintenanceActions.transition.create,
|
|
36
|
+
permission: 'fleet-ops create maintenance',
|
|
34
37
|
},
|
|
35
38
|
{
|
|
39
|
+
id: 'import',
|
|
36
40
|
text: this.intl.t('common.import'),
|
|
37
41
|
type: 'magic',
|
|
38
42
|
icon: 'upload',
|
|
39
43
|
onClick: this.maintenanceActions.import,
|
|
44
|
+
permission: 'fleet-ops import maintenance',
|
|
40
45
|
},
|
|
41
46
|
{
|
|
47
|
+
id: 'export',
|
|
42
48
|
text: this.intl.t('common.export'),
|
|
43
49
|
icon: 'long-arrow-up',
|
|
44
50
|
iconClass: 'rotate-icon-45',
|
|
45
51
|
wrapperClass: 'hidden md:flex',
|
|
46
52
|
onClick: this.maintenanceActions.export,
|
|
53
|
+
permission: 'fleet-ops export maintenance',
|
|
47
54
|
},
|
|
48
55
|
];
|
|
49
56
|
}
|
|
@@ -52,9 +59,11 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
52
59
|
get bulkActions() {
|
|
53
60
|
return [
|
|
54
61
|
{
|
|
62
|
+
id: 'bulk-delete',
|
|
55
63
|
label: 'Delete selected...',
|
|
56
64
|
class: 'text-red-500',
|
|
57
65
|
fn: this.maintenanceActions.bulkDelete,
|
|
66
|
+
permission: 'fleet-ops delete maintenance',
|
|
58
67
|
},
|
|
59
68
|
];
|
|
60
69
|
}
|
|
@@ -63,6 +72,7 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
63
72
|
get columns() {
|
|
64
73
|
return [
|
|
65
74
|
{
|
|
75
|
+
id: 'summary',
|
|
66
76
|
label: this.intl.t('column.summary'),
|
|
67
77
|
valuePath: 'summary',
|
|
68
78
|
cellComponent: 'table/cell/anchor',
|
|
@@ -76,6 +86,7 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
76
86
|
filterComponent: 'filter/string',
|
|
77
87
|
},
|
|
78
88
|
{
|
|
89
|
+
id: 'maintainable-name',
|
|
79
90
|
label: this.intl.t('column.asset'),
|
|
80
91
|
valuePath: 'maintainable.name',
|
|
81
92
|
cellComponent: 'cell/maintenance-subject-identity',
|
|
@@ -84,6 +95,7 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
84
95
|
sortable: true,
|
|
85
96
|
},
|
|
86
97
|
{
|
|
98
|
+
id: 'performed-by-name',
|
|
87
99
|
label: this.intl.t('column.performed-by'),
|
|
88
100
|
valuePath: 'performed_by.name',
|
|
89
101
|
cellComponent: 'cell/facilitator-identity',
|
|
@@ -92,6 +104,7 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
92
104
|
sortable: true,
|
|
93
105
|
},
|
|
94
106
|
{
|
|
107
|
+
id: 'type',
|
|
95
108
|
label: this.intl.t('column.type'),
|
|
96
109
|
valuePath: 'type',
|
|
97
110
|
cellComponent: 'table/cell/base',
|
|
@@ -103,6 +116,7 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
103
116
|
filterComponent: 'filter/string',
|
|
104
117
|
},
|
|
105
118
|
{
|
|
119
|
+
id: 'status',
|
|
106
120
|
label: this.intl.t('column.status'),
|
|
107
121
|
valuePath: 'status',
|
|
108
122
|
cellComponent: 'table/cell/status',
|
|
@@ -113,6 +127,7 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
113
127
|
filterComponent: 'filter/string',
|
|
114
128
|
},
|
|
115
129
|
{
|
|
130
|
+
id: 'priority',
|
|
116
131
|
label: this.intl.t('column.priority'),
|
|
117
132
|
valuePath: 'priority',
|
|
118
133
|
cellComponent: 'table/cell/base',
|
|
@@ -124,6 +139,7 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
124
139
|
filterComponent: 'filter/string',
|
|
125
140
|
},
|
|
126
141
|
{
|
|
142
|
+
id: 'scheduled-at',
|
|
127
143
|
label: this.intl.t('column.scheduled-at'),
|
|
128
144
|
valuePath: 'scheduledAt',
|
|
129
145
|
sortParam: 'scheduled_at',
|
|
@@ -133,6 +149,7 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
133
149
|
filterComponent: 'filter/date',
|
|
134
150
|
},
|
|
135
151
|
{
|
|
152
|
+
id: 'total-cost',
|
|
136
153
|
label: this.intl.t('column.total-cost'),
|
|
137
154
|
valuePath: 'total_cost',
|
|
138
155
|
cellComponent: 'table/cell/currency',
|
|
@@ -140,6 +157,7 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
140
157
|
sortable: true,
|
|
141
158
|
},
|
|
142
159
|
{
|
|
160
|
+
id: 'created-at',
|
|
143
161
|
label: this.intl.t('column.created-at'),
|
|
144
162
|
valuePath: 'createdAt',
|
|
145
163
|
sortParam: 'created_at',
|
|
@@ -149,6 +167,7 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
149
167
|
filterComponent: 'filter/date',
|
|
150
168
|
},
|
|
151
169
|
{
|
|
170
|
+
id: 'updated-at',
|
|
152
171
|
label: this.intl.t('column.updated-at'),
|
|
153
172
|
valuePath: 'updatedAt',
|
|
154
173
|
sortParam: 'updated_at',
|
|
@@ -159,6 +178,7 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
159
178
|
filterComponent: 'filter/date',
|
|
160
179
|
},
|
|
161
180
|
{
|
|
181
|
+
id: 'row-actions',
|
|
162
182
|
label: '',
|
|
163
183
|
cellComponent: 'table/cell/dropdown',
|
|
164
184
|
ddButtonText: false,
|
|
@@ -169,17 +189,20 @@ export default class MaintenanceMaintenancesIndexController extends Controller {
|
|
|
169
189
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
170
190
|
actions: [
|
|
171
191
|
{
|
|
192
|
+
id: 'view',
|
|
172
193
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.maintenance') }),
|
|
173
194
|
fn: this.maintenanceActions.transition.view,
|
|
174
195
|
permission: 'fleet-ops view maintenance',
|
|
175
196
|
},
|
|
176
197
|
{
|
|
198
|
+
id: 'edit',
|
|
177
199
|
label: this.intl.t('common.edit-resource', { resource: this.intl.t('resource.maintenance') }),
|
|
178
200
|
fn: this.maintenanceActions.transition.edit,
|
|
179
201
|
permission: 'fleet-ops update maintenance',
|
|
180
202
|
},
|
|
181
203
|
{ separator: true },
|
|
182
204
|
{
|
|
205
|
+
id: 'delete',
|
|
183
206
|
label: this.intl.t('common.delete-resource', { resource: this.intl.t('resource.maintenance') }),
|
|
184
207
|
fn: this.maintenanceActions.delete,
|
|
185
208
|
permission: 'fleet-ops delete maintenance',
|
|
@@ -19,8 +19,8 @@ export default class MaintenancePartsIndexDetailsController extends Controller {
|
|
|
19
19
|
|
|
20
20
|
get actionButtons() {
|
|
21
21
|
return [
|
|
22
|
-
{ icon: 'edit', fn: this.edit, permission: 'fleet-ops update part' },
|
|
23
|
-
{ icon: 'trash', fn: this.delete, type: 'danger', permission: 'fleet-ops delete part' },
|
|
22
|
+
{ id: 'edit', icon: 'edit', fn: this.edit, permission: 'fleet-ops update part' },
|
|
23
|
+
{ id: 'delete', icon: 'trash', fn: this.delete, type: 'danger', permission: 'fleet-ops delete part' },
|
|
24
24
|
];
|
|
25
25
|
}
|
|
26
26
|
|