@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
|
@@ -7,7 +7,7 @@ export default class MaintenancePartsIndexController 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.partActions.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 MaintenancePartsIndexController 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 MaintenancePartsIndexController extends Controller {
|
|
|
45
46
|
renderInPlace: true,
|
|
46
47
|
helpText: 'Change the layout',
|
|
47
48
|
},
|
|
48
|
-
{ icon: 'refresh', onClick: this.partActions.refresh, helpText: this.intl.t('common.refresh') },
|
|
49
|
-
{ text: this.intl.t('common.new'), type: 'primary', icon: 'plus', onClick: this.partActions.transition.create },
|
|
50
|
-
{ text: this.intl.t('common.import'), type: 'magic', icon: 'upload', onClick: this.partActions.import },
|
|
51
|
-
{
|
|
49
|
+
{ id: 'refresh', icon: 'refresh', onClick: this.partActions.refresh, helpText: this.intl.t('common.refresh') },
|
|
50
|
+
{ id: 'create', text: this.intl.t('common.new'), type: 'primary', icon: 'plus', onClick: this.partActions.transition.create, permission: 'fleet-ops create part' },
|
|
51
|
+
{ id: 'import', text: this.intl.t('common.import'), type: 'magic', icon: 'upload', onClick: this.partActions.import, permission: 'fleet-ops import part' },
|
|
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.partActions.export,
|
|
59
|
+
permission: 'fleet-ops export part',
|
|
60
|
+
},
|
|
52
61
|
];
|
|
53
62
|
}
|
|
54
63
|
|
|
55
64
|
get bulkActions() {
|
|
56
|
-
return [{ label: 'Delete selected...', class: 'text-red-500', fn: this.partActions.bulkDelete }];
|
|
65
|
+
return [{ id: 'bulk-delete', label: 'Delete selected...', class: 'text-red-500', fn: this.partActions.bulkDelete, permission: 'fleet-ops delete part' }];
|
|
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/part-identity',
|
|
@@ -71,6 +81,7 @@ export default class MaintenancePartsIndexController extends Controller {
|
|
|
71
81
|
filterComponent: 'filter/string',
|
|
72
82
|
},
|
|
73
83
|
{
|
|
84
|
+
id: 'sku',
|
|
74
85
|
label: this.intl.t('column.part-number'),
|
|
75
86
|
valuePath: 'sku',
|
|
76
87
|
resizable: true,
|
|
@@ -80,6 +91,7 @@ export default class MaintenancePartsIndexController extends Controller {
|
|
|
80
91
|
filterComponent: 'filter/string',
|
|
81
92
|
},
|
|
82
93
|
{
|
|
94
|
+
id: 'type',
|
|
83
95
|
label: this.intl.t('column.type'),
|
|
84
96
|
valuePath: 'type',
|
|
85
97
|
cellComponent: 'table/cell/base',
|
|
@@ -91,6 +103,7 @@ export default class MaintenancePartsIndexController extends Controller {
|
|
|
91
103
|
filterComponent: 'filter/string',
|
|
92
104
|
},
|
|
93
105
|
{
|
|
106
|
+
id: 'status',
|
|
94
107
|
label: this.intl.t('column.status'),
|
|
95
108
|
valuePath: 'status',
|
|
96
109
|
cellComponent: 'table/cell/status',
|
|
@@ -100,10 +113,20 @@ export default class MaintenancePartsIndexController extends Controller {
|
|
|
100
113
|
filterParam: 'status',
|
|
101
114
|
filterComponent: 'filter/string',
|
|
102
115
|
},
|
|
103
|
-
{ label: this.intl.t('column.quantity-on-hand'), valuePath: 'quantity_on_hand', resizable: true, sortable: true },
|
|
104
|
-
{ label: this.intl.t('column.unit-cost'), valuePath: 'unit_cost', cellComponent: 'table/cell/currency', resizable: true, sortable: true },
|
|
105
|
-
{
|
|
116
|
+
{ id: 'quantity-on-hand', label: this.intl.t('column.quantity-on-hand'), valuePath: 'quantity_on_hand', resizable: true, sortable: true },
|
|
117
|
+
{ id: 'unit-cost', label: this.intl.t('column.unit-cost'), valuePath: 'unit_cost', cellComponent: 'table/cell/currency', resizable: true, sortable: true },
|
|
118
|
+
{
|
|
119
|
+
id: 'created-at',
|
|
120
|
+
label: this.intl.t('column.created-at'),
|
|
121
|
+
valuePath: 'createdAt',
|
|
122
|
+
sortParam: 'created_at',
|
|
123
|
+
resizable: true,
|
|
124
|
+
sortable: true,
|
|
125
|
+
filterable: true,
|
|
126
|
+
filterComponent: 'filter/date',
|
|
127
|
+
},
|
|
106
128
|
{
|
|
129
|
+
id: 'updated-at',
|
|
107
130
|
label: this.intl.t('column.updated-at'),
|
|
108
131
|
valuePath: 'updatedAt',
|
|
109
132
|
sortParam: 'updated_at',
|
|
@@ -114,6 +137,7 @@ export default class MaintenancePartsIndexController extends Controller {
|
|
|
114
137
|
filterComponent: 'filter/date',
|
|
115
138
|
},
|
|
116
139
|
{
|
|
140
|
+
id: 'row-actions',
|
|
117
141
|
label: '',
|
|
118
142
|
cellComponent: 'table/cell/dropdown',
|
|
119
143
|
ddButtonText: false,
|
|
@@ -124,17 +148,20 @@ export default class MaintenancePartsIndexController extends Controller {
|
|
|
124
148
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
125
149
|
actions: [
|
|
126
150
|
{
|
|
151
|
+
id: 'view',
|
|
127
152
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.part') }),
|
|
128
153
|
fn: this.partActions.transition.view,
|
|
129
154
|
permission: 'fleet-ops view part',
|
|
130
155
|
},
|
|
131
156
|
{
|
|
157
|
+
id: 'edit',
|
|
132
158
|
label: this.intl.t('common.edit-resource', { resource: this.intl.t('resource.part') }),
|
|
133
159
|
fn: this.partActions.transition.edit,
|
|
134
160
|
permission: 'fleet-ops update part',
|
|
135
161
|
},
|
|
136
162
|
{ separator: true },
|
|
137
163
|
{
|
|
164
|
+
id: 'delete',
|
|
138
165
|
label: this.intl.t('common.delete-resource', { resource: this.intl.t('resource.part') }),
|
|
139
166
|
fn: this.partActions.delete,
|
|
140
167
|
permission: 'fleet-ops delete part',
|
|
@@ -33,7 +33,7 @@ export default class MaintenanceSchedulesIndexController extends Controller {
|
|
|
33
33
|
return this.maintenanceScheduleActions;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
@tracked queryParams = ['status', 'page', 'limit', 'sort', 'query', 'public_id', 'created_at', 'updated_at'];
|
|
36
|
+
@tracked queryParams = this.maintenanceScheduleActions.queryParamsFor(['status', 'page', 'limit', 'sort', 'query', 'public_id', 'created_at', 'updated_at']);
|
|
37
37
|
@tracked page = 1;
|
|
38
38
|
@tracked limit;
|
|
39
39
|
@tracked sort = '-created_at';
|
|
@@ -132,16 +132,19 @@ export default class MaintenanceSchedulesIndexController extends Controller {
|
|
|
132
132
|
get actionButtons() {
|
|
133
133
|
return [
|
|
134
134
|
{
|
|
135
|
+
id: 'more',
|
|
135
136
|
component: 'dropdown-button',
|
|
136
137
|
icon: 'display',
|
|
137
138
|
size: 'xs',
|
|
138
139
|
items: [
|
|
139
140
|
{
|
|
141
|
+
id: 'list-view',
|
|
140
142
|
label: this.intl.t('common.table-view'),
|
|
141
143
|
icon: 'table-list',
|
|
142
144
|
onClick: this.setLayoutList,
|
|
143
145
|
},
|
|
144
146
|
{
|
|
147
|
+
id: 'calendar-view',
|
|
145
148
|
label: this.intl.t('common.calendar-view'),
|
|
146
149
|
icon: 'calendar',
|
|
147
150
|
onClick: this.setLayoutCalendar,
|
|
@@ -150,20 +153,45 @@ export default class MaintenanceSchedulesIndexController extends Controller {
|
|
|
150
153
|
renderInPlace: true,
|
|
151
154
|
helpText: this.intl.t('common.change-layout'),
|
|
152
155
|
},
|
|
153
|
-
{ icon: 'refresh', onClick: this.maintenanceScheduleActions.refresh, helpText: this.intl.t('common.refresh') },
|
|
154
|
-
{
|
|
155
|
-
|
|
156
|
-
|
|
156
|
+
{ id: 'refresh', icon: 'refresh', onClick: this.maintenanceScheduleActions.refresh, helpText: this.intl.t('common.refresh') },
|
|
157
|
+
{
|
|
158
|
+
id: 'create',
|
|
159
|
+
text: this.intl.t('common.new'),
|
|
160
|
+
type: 'primary',
|
|
161
|
+
icon: 'plus',
|
|
162
|
+
onClick: this.maintenanceScheduleActions.transition.create,
|
|
163
|
+
permission: 'fleet-ops create maintenance-schedule',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
id: 'import',
|
|
167
|
+
text: this.intl.t('common.import'),
|
|
168
|
+
type: 'magic',
|
|
169
|
+
icon: 'upload',
|
|
170
|
+
onClick: this.maintenanceScheduleActions.import,
|
|
171
|
+
permission: 'fleet-ops import maintenance-schedule',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
id: 'export',
|
|
175
|
+
text: this.intl.t('common.export'),
|
|
176
|
+
icon: 'long-arrow-up',
|
|
177
|
+
iconClass: 'rotate-icon-45',
|
|
178
|
+
wrapperClass: 'hidden md:flex',
|
|
179
|
+
onClick: this.maintenanceScheduleActions.export,
|
|
180
|
+
permission: 'fleet-ops export maintenance-schedule',
|
|
181
|
+
},
|
|
157
182
|
];
|
|
158
183
|
}
|
|
159
184
|
|
|
160
185
|
get bulkActions() {
|
|
161
|
-
return [
|
|
186
|
+
return [
|
|
187
|
+
{ id: 'bulk-delete', label: 'Delete selected...', class: 'text-red-500', fn: this.maintenanceScheduleActions.bulkDelete, permission: 'fleet-ops delete maintenance-schedule' },
|
|
188
|
+
];
|
|
162
189
|
}
|
|
163
190
|
|
|
164
191
|
get columns() {
|
|
165
192
|
return [
|
|
166
193
|
{
|
|
194
|
+
id: 'public-id',
|
|
167
195
|
label: this.intl.t('column.id'),
|
|
168
196
|
valuePath: 'public_id',
|
|
169
197
|
cellComponent: 'table/cell/anchor',
|
|
@@ -177,6 +205,7 @@ export default class MaintenanceSchedulesIndexController extends Controller {
|
|
|
177
205
|
filterComponent: 'filter/string',
|
|
178
206
|
},
|
|
179
207
|
{
|
|
208
|
+
id: 'name',
|
|
180
209
|
label: this.intl.t('column.name'),
|
|
181
210
|
valuePath: 'name',
|
|
182
211
|
resizable: true,
|
|
@@ -186,6 +215,7 @@ export default class MaintenanceSchedulesIndexController extends Controller {
|
|
|
186
215
|
filterComponent: 'filter/string',
|
|
187
216
|
},
|
|
188
217
|
{
|
|
218
|
+
id: 'subject-name',
|
|
189
219
|
label: this.intl.t('column.subject'),
|
|
190
220
|
valuePath: 'subject.name',
|
|
191
221
|
cellComponent: 'cell/maintenance-subject-identity',
|
|
@@ -195,6 +225,7 @@ export default class MaintenanceSchedulesIndexController extends Controller {
|
|
|
195
225
|
sortable: false,
|
|
196
226
|
},
|
|
197
227
|
{
|
|
228
|
+
id: 'default-assignee-name',
|
|
198
229
|
label: this.intl.t('column.assignee'),
|
|
199
230
|
valuePath: 'default_assignee_name',
|
|
200
231
|
cellComponent: 'cell/facilitator-identity',
|
|
@@ -205,6 +236,7 @@ export default class MaintenanceSchedulesIndexController extends Controller {
|
|
|
205
236
|
hidden: true,
|
|
206
237
|
},
|
|
207
238
|
{
|
|
239
|
+
id: 'type',
|
|
208
240
|
label: this.intl.t('column.type'),
|
|
209
241
|
valuePath: 'type',
|
|
210
242
|
cellComponent: 'table/cell/base',
|
|
@@ -216,6 +248,7 @@ export default class MaintenanceSchedulesIndexController extends Controller {
|
|
|
216
248
|
filterComponent: 'filter/string',
|
|
217
249
|
},
|
|
218
250
|
{
|
|
251
|
+
id: 'status',
|
|
219
252
|
label: this.intl.t('column.status'),
|
|
220
253
|
valuePath: 'status',
|
|
221
254
|
cellComponent: 'table/cell/status',
|
|
@@ -226,6 +259,7 @@ export default class MaintenanceSchedulesIndexController extends Controller {
|
|
|
226
259
|
filterComponent: 'filter/string',
|
|
227
260
|
},
|
|
228
261
|
{
|
|
262
|
+
id: 'next-due-at-short',
|
|
229
263
|
label: this.intl.t('column.next-due'),
|
|
230
264
|
valuePath: 'nextDueAtShort',
|
|
231
265
|
sortParam: 'next_due_date',
|
|
@@ -235,6 +269,7 @@ export default class MaintenanceSchedulesIndexController extends Controller {
|
|
|
235
269
|
filterComponent: 'filter/date',
|
|
236
270
|
},
|
|
237
271
|
{
|
|
272
|
+
id: 'created-at',
|
|
238
273
|
label: this.intl.t('column.created-at'),
|
|
239
274
|
valuePath: 'createdAt',
|
|
240
275
|
sortParam: 'created_at',
|
|
@@ -244,6 +279,7 @@ export default class MaintenanceSchedulesIndexController extends Controller {
|
|
|
244
279
|
filterComponent: 'filter/date',
|
|
245
280
|
},
|
|
246
281
|
{
|
|
282
|
+
id: 'row-actions',
|
|
247
283
|
label: '',
|
|
248
284
|
cellComponent: 'table/cell/dropdown',
|
|
249
285
|
ddButtonText: false,
|
|
@@ -254,33 +290,39 @@ export default class MaintenanceSchedulesIndexController extends Controller {
|
|
|
254
290
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
255
291
|
actions: [
|
|
256
292
|
{
|
|
293
|
+
id: 'view',
|
|
257
294
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.maintenance-schedule') }),
|
|
258
295
|
fn: this.maintenanceScheduleActions.transition.view,
|
|
259
296
|
permission: 'fleet-ops view maintenance-schedule',
|
|
260
297
|
},
|
|
261
298
|
{
|
|
299
|
+
id: 'edit',
|
|
262
300
|
label: this.intl.t('common.edit-resource', { resource: this.intl.t('resource.maintenance-schedule') }),
|
|
263
301
|
fn: this.maintenanceScheduleActions.transition.edit,
|
|
264
302
|
permission: 'fleet-ops update maintenance-schedule',
|
|
265
303
|
},
|
|
266
304
|
{
|
|
305
|
+
id: 'trigger-now',
|
|
267
306
|
label: this.intl.t('maintenance-schedule.actions.trigger-now'),
|
|
268
307
|
fn: this.maintenanceScheduleActions.triggerNow,
|
|
269
308
|
permission: 'fleet-ops update maintenance-schedule',
|
|
270
309
|
},
|
|
271
310
|
{ separator: true },
|
|
272
311
|
{
|
|
312
|
+
id: 'pause',
|
|
273
313
|
label: this.intl.t('maintenance-schedule.actions.pause'),
|
|
274
314
|
fn: this.maintenanceScheduleActions.pause,
|
|
275
315
|
permission: 'fleet-ops update maintenance-schedule',
|
|
276
316
|
},
|
|
277
317
|
{
|
|
318
|
+
id: 'resume',
|
|
278
319
|
label: this.intl.t('maintenance-schedule.actions.resume'),
|
|
279
320
|
fn: this.maintenanceScheduleActions.resume,
|
|
280
321
|
permission: 'fleet-ops update maintenance-schedule',
|
|
281
322
|
},
|
|
282
323
|
{ separator: true },
|
|
283
324
|
{
|
|
325
|
+
id: 'delete',
|
|
284
326
|
label: this.intl.t('common.delete-resource', { resource: this.intl.t('resource.maintenance-schedule') }),
|
|
285
327
|
fn: this.maintenanceScheduleActions.delete,
|
|
286
328
|
permission: 'fleet-ops delete maintenance-schedule',
|
|
@@ -19,9 +19,9 @@ export default class MaintenanceWorkOrdersIndexDetailsController extends Control
|
|
|
19
19
|
|
|
20
20
|
get actionButtons() {
|
|
21
21
|
return [
|
|
22
|
-
{ icon: 'paper-plane', fn: this.sendEmail, text: 'Send to Vendor', permission: 'fleet-ops update work-order' },
|
|
23
|
-
{ icon: 'edit', fn: this.edit, permission: 'fleet-ops update work-order' },
|
|
24
|
-
{ icon: 'trash', fn: this.delete, type: 'danger', permission: 'fleet-ops delete work-order' },
|
|
22
|
+
{ id: 'send-email', icon: 'paper-plane', fn: this.sendEmail, text: 'Send to Vendor', permission: 'fleet-ops update work-order' },
|
|
23
|
+
{ id: 'edit', icon: 'edit', fn: this.edit, permission: 'fleet-ops update work-order' },
|
|
24
|
+
{ id: 'delete', icon: 'trash', fn: this.delete, type: 'danger', permission: 'fleet-ops delete work-order' },
|
|
25
25
|
];
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -9,7 +9,7 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
9
9
|
@service workOrderActions;
|
|
10
10
|
@service intl;
|
|
11
11
|
|
|
12
|
-
@tracked queryParams = ['category', 'status', 'priority', 'page', 'limit', 'sort', 'query', 'public_id', 'created_at', 'updated_at'];
|
|
12
|
+
@tracked queryParams = this.workOrderActions.queryParamsFor(['category', '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';
|
|
@@ -20,20 +20,29 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
20
20
|
|
|
21
21
|
get actionButtons() {
|
|
22
22
|
return [
|
|
23
|
-
{ icon: 'refresh', onClick: this.workOrderActions.refresh, helpText: this.intl.t('common.refresh') },
|
|
24
|
-
{ text: this.intl.t('common.new'), type: 'primary', icon: 'plus', onClick: this.workOrderActions.transition.create },
|
|
25
|
-
{ text: this.intl.t('common.import'), type: 'magic', icon: 'upload', onClick: this.workOrderActions.import },
|
|
26
|
-
{
|
|
23
|
+
{ id: 'refresh', icon: 'refresh', onClick: this.workOrderActions.refresh, helpText: this.intl.t('common.refresh') },
|
|
24
|
+
{ id: 'create', text: this.intl.t('common.new'), type: 'primary', icon: 'plus', onClick: this.workOrderActions.transition.create, permission: 'fleet-ops create work-order' },
|
|
25
|
+
{ id: 'import', text: this.intl.t('common.import'), type: 'magic', icon: 'upload', onClick: this.workOrderActions.import, permission: 'fleet-ops import work-order' },
|
|
26
|
+
{
|
|
27
|
+
id: 'export',
|
|
28
|
+
text: this.intl.t('common.export'),
|
|
29
|
+
icon: 'long-arrow-up',
|
|
30
|
+
iconClass: 'rotate-icon-45',
|
|
31
|
+
wrapperClass: 'hidden md:flex',
|
|
32
|
+
onClick: this.workOrderActions.export,
|
|
33
|
+
permission: 'fleet-ops export work-order',
|
|
34
|
+
},
|
|
27
35
|
];
|
|
28
36
|
}
|
|
29
37
|
|
|
30
38
|
get bulkActions() {
|
|
31
|
-
return [{ label: 'Delete selected...', class: 'text-red-500', fn: this.workOrderActions.bulkDelete }];
|
|
39
|
+
return [{ id: 'bulk-delete', label: 'Delete selected...', class: 'text-red-500', fn: this.workOrderActions.bulkDelete, permission: 'fleet-ops delete work-order' }];
|
|
32
40
|
}
|
|
33
41
|
|
|
34
42
|
get columns() {
|
|
35
43
|
return [
|
|
36
44
|
{
|
|
45
|
+
id: 'code',
|
|
37
46
|
label: this.intl.t('column.code'),
|
|
38
47
|
valuePath: 'code',
|
|
39
48
|
cellComponent: 'table/cell/anchor',
|
|
@@ -46,8 +55,18 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
46
55
|
filterParam: 'code',
|
|
47
56
|
filterComponent: 'filter/string',
|
|
48
57
|
},
|
|
49
|
-
{ label: this.intl.t('column.subject'), valuePath: 'subject', resizable: true, sortable: true, filterable: true, filterParam: 'subject', filterComponent: 'filter/string' },
|
|
50
58
|
{
|
|
59
|
+
id: 'subject',
|
|
60
|
+
label: this.intl.t('column.subject'),
|
|
61
|
+
valuePath: 'subject',
|
|
62
|
+
resizable: true,
|
|
63
|
+
sortable: true,
|
|
64
|
+
filterable: true,
|
|
65
|
+
filterParam: 'subject',
|
|
66
|
+
filterComponent: 'filter/string',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: 'category',
|
|
51
70
|
label: this.intl.t('column.category'),
|
|
52
71
|
valuePath: 'category',
|
|
53
72
|
cellComponent: 'table/cell/base',
|
|
@@ -63,6 +82,7 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
63
82
|
placeholder: 'Select work order category',
|
|
64
83
|
},
|
|
65
84
|
{
|
|
85
|
+
id: 'status',
|
|
66
86
|
label: this.intl.t('column.status'),
|
|
67
87
|
valuePath: 'status',
|
|
68
88
|
cellComponent: 'table/cell/status',
|
|
@@ -73,6 +93,7 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
73
93
|
filterComponent: 'filter/string',
|
|
74
94
|
},
|
|
75
95
|
{
|
|
96
|
+
id: 'priority',
|
|
76
97
|
label: this.intl.t('column.priority'),
|
|
77
98
|
valuePath: 'priority',
|
|
78
99
|
cellComponent: 'table/cell/base',
|
|
@@ -84,6 +105,7 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
84
105
|
filterComponent: 'filter/string',
|
|
85
106
|
},
|
|
86
107
|
{
|
|
108
|
+
id: 'target-name',
|
|
87
109
|
label: this.intl.t('column.target'),
|
|
88
110
|
valuePath: 'target_name',
|
|
89
111
|
cellComponent: 'cell/maintenance-subject-identity',
|
|
@@ -93,6 +115,7 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
93
115
|
hidden: true,
|
|
94
116
|
},
|
|
95
117
|
{
|
|
118
|
+
id: 'assignee-name',
|
|
96
119
|
label: this.intl.t('column.assignee'),
|
|
97
120
|
valuePath: 'assignee_name',
|
|
98
121
|
cellComponent: 'cell/facilitator-identity',
|
|
@@ -100,9 +123,19 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
100
123
|
resizable: true,
|
|
101
124
|
sortable: false,
|
|
102
125
|
},
|
|
103
|
-
{ label: this.intl.t('column.due-at'), valuePath: 'dueAt', sortParam: 'due_at', resizable: true, sortable: true, filterable: true, filterComponent: 'filter/date' },
|
|
104
|
-
{
|
|
126
|
+
{ id: 'due-at', label: this.intl.t('column.due-at'), valuePath: 'dueAt', sortParam: 'due_at', resizable: true, sortable: true, filterable: true, filterComponent: 'filter/date' },
|
|
127
|
+
{
|
|
128
|
+
id: 'created-at',
|
|
129
|
+
label: this.intl.t('column.created-at'),
|
|
130
|
+
valuePath: 'createdAt',
|
|
131
|
+
sortParam: 'created_at',
|
|
132
|
+
resizable: true,
|
|
133
|
+
sortable: true,
|
|
134
|
+
filterable: true,
|
|
135
|
+
filterComponent: 'filter/date',
|
|
136
|
+
},
|
|
105
137
|
{
|
|
138
|
+
id: 'updated-at',
|
|
106
139
|
label: this.intl.t('column.updated-at'),
|
|
107
140
|
valuePath: 'updatedAt',
|
|
108
141
|
sortParam: 'updated_at',
|
|
@@ -113,6 +146,7 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
113
146
|
filterComponent: 'filter/date',
|
|
114
147
|
},
|
|
115
148
|
{
|
|
149
|
+
id: 'row-actions',
|
|
116
150
|
label: '',
|
|
117
151
|
cellComponent: 'table/cell/dropdown',
|
|
118
152
|
ddButtonText: false,
|
|
@@ -123,17 +157,20 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
123
157
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
124
158
|
actions: [
|
|
125
159
|
{
|
|
160
|
+
id: 'view',
|
|
126
161
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.work-order') }),
|
|
127
162
|
fn: this.workOrderActions.transition.view,
|
|
128
163
|
permission: 'fleet-ops view work-order',
|
|
129
164
|
},
|
|
130
165
|
{
|
|
166
|
+
id: 'edit',
|
|
131
167
|
label: this.intl.t('common.edit-resource', { resource: this.intl.t('resource.work-order') }),
|
|
132
168
|
fn: this.workOrderActions.transition.edit,
|
|
133
169
|
permission: 'fleet-ops update work-order',
|
|
134
170
|
},
|
|
135
171
|
{ separator: true },
|
|
136
172
|
{
|
|
173
|
+
id: 'send-email',
|
|
137
174
|
label: 'Send Work Order to Vendor',
|
|
138
175
|
fn: this.workOrderActions.sendEmail,
|
|
139
176
|
icon: 'paper-plane',
|
|
@@ -141,6 +178,7 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
141
178
|
},
|
|
142
179
|
{ separator: true },
|
|
143
180
|
{
|
|
181
|
+
id: 'delete',
|
|
144
182
|
label: this.intl.t('common.delete-resource', { resource: this.intl.t('resource.work-order') }),
|
|
145
183
|
fn: this.workOrderActions.delete,
|
|
146
184
|
permission: 'fleet-ops delete work-order',
|
|
@@ -18,6 +18,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
18
18
|
get columns() {
|
|
19
19
|
return [
|
|
20
20
|
{
|
|
21
|
+
id: 'name',
|
|
21
22
|
sticky: true,
|
|
22
23
|
label: this.intl.t('column.name'),
|
|
23
24
|
valuePath: 'name',
|
|
@@ -31,6 +32,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
31
32
|
filterComponent: 'filter/string',
|
|
32
33
|
},
|
|
33
34
|
{
|
|
35
|
+
id: 'public-id',
|
|
34
36
|
label: this.intl.t('column.id'),
|
|
35
37
|
valuePath: 'public_id',
|
|
36
38
|
cellComponent: 'click-to-copy',
|
|
@@ -41,6 +43,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
41
43
|
filterComponent: 'filter/string',
|
|
42
44
|
},
|
|
43
45
|
{
|
|
46
|
+
id: 'internal-id',
|
|
44
47
|
label: this.intl.t('column.internal-id'),
|
|
45
48
|
valuePath: 'internal_id',
|
|
46
49
|
cellComponent: 'click-to-copy',
|
|
@@ -51,6 +54,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
51
54
|
filterComponent: 'filter/string',
|
|
52
55
|
},
|
|
53
56
|
{
|
|
57
|
+
id: 'title',
|
|
54
58
|
label: this.intl.t('column.title'),
|
|
55
59
|
valuePath: 'title',
|
|
56
60
|
cellComponent: 'click-to-copy',
|
|
@@ -62,6 +66,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
62
66
|
filterComponent: 'filter/string',
|
|
63
67
|
},
|
|
64
68
|
{
|
|
69
|
+
id: 'email',
|
|
65
70
|
label: this.intl.t('column.email'),
|
|
66
71
|
valuePath: 'email',
|
|
67
72
|
cellComponent: 'click-to-copy',
|
|
@@ -72,6 +77,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
72
77
|
filterComponent: 'filter/string',
|
|
73
78
|
},
|
|
74
79
|
{
|
|
80
|
+
id: 'phone',
|
|
75
81
|
label: this.intl.t('column.phone'),
|
|
76
82
|
valuePath: 'phone',
|
|
77
83
|
cellComponent: 'click-to-copy',
|
|
@@ -82,6 +88,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
82
88
|
filterComponent: 'filter/string',
|
|
83
89
|
},
|
|
84
90
|
{
|
|
91
|
+
id: 'address',
|
|
85
92
|
label: this.intl.t('column.address'),
|
|
86
93
|
valuePath: 'address',
|
|
87
94
|
cellComponent: 'cell/place-identity',
|
|
@@ -94,6 +101,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
94
101
|
filterComponent: 'filter/string',
|
|
95
102
|
},
|
|
96
103
|
{
|
|
104
|
+
id: 'created-at',
|
|
97
105
|
label: this.intl.t('column.created'),
|
|
98
106
|
valuePath: 'createdAt',
|
|
99
107
|
sortParam: 'created_at',
|
|
@@ -104,6 +112,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
104
112
|
filterComponent: 'filter/date',
|
|
105
113
|
},
|
|
106
114
|
{
|
|
115
|
+
id: 'updated-at',
|
|
107
116
|
label: this.intl.t('column.updated'),
|
|
108
117
|
valuePath: 'updatedAt',
|
|
109
118
|
sortParam: 'updated_at',
|
|
@@ -115,6 +124,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
115
124
|
filterComponent: 'filter/date',
|
|
116
125
|
},
|
|
117
126
|
{
|
|
127
|
+
id: 'row-actions',
|
|
118
128
|
label: '',
|
|
119
129
|
cellComponent: 'table/cell/dropdown',
|
|
120
130
|
ddButtonText: false,
|
|
@@ -127,12 +137,14 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
127
137
|
width: 60,
|
|
128
138
|
actions: [
|
|
129
139
|
{
|
|
140
|
+
id: 'view',
|
|
130
141
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.customer') }),
|
|
131
142
|
icon: 'eye',
|
|
132
143
|
fn: this.customerActions.transition.view,
|
|
133
144
|
permission: 'fleet-ops view contact',
|
|
134
145
|
},
|
|
135
146
|
{
|
|
147
|
+
id: 'edit',
|
|
136
148
|
label: this.intl.t('common.edit-resource', { resource: this.intl.t('resource.customer') }),
|
|
137
149
|
icon: 'pencil',
|
|
138
150
|
fn: this.customerActions.transition.edit,
|
|
@@ -146,6 +158,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
146
158
|
separator: true,
|
|
147
159
|
},
|
|
148
160
|
{
|
|
161
|
+
id: 'delete',
|
|
149
162
|
label: this.intl.t('common.delete-resource', { resource: this.intl.t('resource.customer') }),
|
|
150
163
|
icon: 'trash',
|
|
151
164
|
fn: this.customerActions.delete,
|