From bcd0064e3536aa6e5f9d7b86481f9212488bb609 Mon Sep 17 00:00:00 2001 From: Manus AI Date: Tue, 10 Feb 2026 21:08:30 -0500 Subject: [PATCH] feat: Add event tracking to FleetOps controllers - Added @service events injection to 30 controllers - Track resource created events in NEW controllers - Track resource updated events in EDIT controllers - Added standard event tracking to customer/create-order-form component - Maintains backward compatibility with existing custom events Controllers updated: - Analytics: reports (2) - Connectivity: devices, sensors, telematics (6) - Management: contacts, drivers, fleets, fuel-reports, issues, places, vehicles, vendors (16) - Operations: orders, service-rates (4) Events emitted: - Generic: resource.created, resource.updated - Specific: {model}.created, {model}.updated These events will be consumed by internals analytics-listener for PostHog tracking in cloud deployments. --- EVENTS_TRACKING_SUMMARY.md | 169 ++++++++++++++++++ .../components/customer/create-order-form.js | 5 + .../analytics/reports/index/edit.js | 2 + .../analytics/reports/index/new.js | 2 + .../connectivity/devices/index/edit.js | 2 + .../connectivity/devices/index/new.js | 2 + .../connectivity/sensors/index/edit.js | 2 + .../connectivity/sensors/index/new.js | 2 + .../connectivity/telematics/index/edit.js | 2 + .../connectivity/telematics/index/new.js | 2 + .../management/contacts/customers/edit.js | 2 + .../management/contacts/customers/new.js | 2 + .../management/contacts/index/edit.js | 2 + .../management/contacts/index/new.js | 2 + .../management/drivers/index/edit.js | 2 + .../management/drivers/index/new.js | 2 + .../management/fleets/index/edit.js | 2 + .../management/fleets/index/new.js | 2 + .../management/fuel-reports/index/edit.js | 2 + .../management/fuel-reports/index/new.js | 2 + .../management/issues/index/edit.js | 2 + .../management/issues/index/new.js | 2 + .../management/places/index/edit.js | 2 + .../management/places/index/new.js | 2 + .../management/vehicles/index/edit.js | 2 + .../management/vehicles/index/new.js | 2 + .../management/vendors/index/edit.js | 2 + .../management/vendors/index/new.js | 2 + .../operations/orders/index/new.js | 2 + .../operations/routes/index/new.js | 1 + .../operations/service-rates/index/edit.js | 2 + .../operations/service-rates/index/new.js | 2 + 32 files changed, 233 insertions(+) create mode 100644 EVENTS_TRACKING_SUMMARY.md diff --git a/EVENTS_TRACKING_SUMMARY.md b/EVENTS_TRACKING_SUMMARY.md new file mode 100644 index 00000000..eecfd231 --- /dev/null +++ b/EVENTS_TRACKING_SUMMARY.md @@ -0,0 +1,169 @@ +# FleetOps Event Tracking Implementation Summary + +## Overview +Added event tracking to FleetOps controllers using the `events` service from `@fleetbase/ember-core`. + +## Controllers Updated + +### Total: 30 controllers with active save tasks + +#### Analytics (2) +- ✅ `analytics/reports/index/new.js` - Track report created +- ✅ `analytics/reports/index/edit.js` - Track report updated + +#### Connectivity (6) +- ✅ `connectivity/devices/index/new.js` - Track device created +- ✅ `connectivity/devices/index/edit.js` - Track device updated +- ✅ `connectivity/sensors/index/new.js` - Track sensor created +- ✅ `connectivity/sensors/index/edit.js` - Track sensor updated +- ✅ `connectivity/telematics/index/new.js` - Track telematics created +- ✅ `connectivity/telematics/index/edit.js` - Track telematics updated + +#### Management (16) +- ✅ `management/contacts/customers/new.js` - Track customer created +- ✅ `management/contacts/customers/edit.js` - Track customer updated +- ✅ `management/contacts/index/new.js` - Track contact created +- ✅ `management/contacts/index/edit.js` - Track contact updated +- ✅ `management/drivers/index/new.js` - Track driver created +- ✅ `management/drivers/index/edit.js` - Track driver updated +- ✅ `management/fleets/index/new.js` - Track fleet created +- ✅ `management/fleets/index/edit.js` - Track fleet updated +- ✅ `management/fuel-reports/index/new.js` - Track fuel report created +- ✅ `management/fuel-reports/index/edit.js` - Track fuel report updated +- ✅ `management/issues/index/new.js` - Track issue created +- ✅ `management/issues/index/edit.js` - Track issue updated +- ✅ `management/places/index/new.js` - Track place created +- ✅ `management/places/index/edit.js` - Track place updated +- ✅ `management/vehicles/index/new.js` - Track vehicle created +- ✅ `management/vehicles/index/edit.js` - Track vehicle updated +- ✅ `management/vendors/index/new.js` - Track vendor created +- ✅ `management/vendors/index/edit.js` - Track vendor updated + +#### Operations (4) +- ✅ `operations/orders/index/new.js` - Track order created +- ✅ `operations/service-rates/index/new.js` - Track service rate created +- ✅ `operations/service-rates/index/edit.js` - Track service rate updated + +## Components Updated + +### Total: 1 component + +- ✅ `customer/create-order-form.js` - Added standard event tracking alongside existing custom events + +## Controllers Skipped (Empty/No Save Task) + +### Maintenance (6) +- ⏭️ `maintenance/equipment/index/new.js` - Empty controller +- ⏭️ `maintenance/equipment/index/edit.js` - Empty controller +- ⏭️ `maintenance/parts/index/new.js` - Empty controller +- ⏭️ `maintenance/parts/index/edit.js` - Empty controller +- ⏭️ `maintenance/work-orders/index/new.js` - Empty controller +- ⏭️ `maintenance/work-orders/index/edit.js` - Empty controller + +### Management (2) +- ⏭️ `management/vendors/integrated/new.js` - Empty controller +- ⏭️ `management/vendors/integrated/edit.js` - Empty controller + +### Operations (1) +- ⏭️ `operations/routes/index/new.js` - No save task + +## Implementation Pattern + +### NEW Controllers (Create) +```javascript +@service events; + +@task *save(resource) { + try { + yield resource.save(); + this.events.trackResourceCreated(resource); + // ... rest of code + } catch (err) { + this.notifications.serverError(err); + } +} +``` + +### EDIT Controllers (Update) +```javascript +@service events; + +@task *save(resource) { + try { + yield resource.save(); + this.events.trackResourceUpdated(resource); + // ... rest of code + } catch (err) { + this.notifications.serverError(err); + } +} +``` + +### Component (Dual Tracking) +```javascript +@service events; + +yield order.save(); + +// Standard event tracking +this.events.trackResourceCreated(order); + +// Keep existing custom event +this.universe.trigger('fleet-ops.order.created', order); +``` + +## Events Emitted + +For each tracked resource, two events are emitted: + +1. **Generic event**: `resource.created` or `resource.updated` +2. **Specific event**: `{model}.created` or `{model}.updated` + +### Examples +- `resource.created` + `order.created` +- `resource.updated` + `vehicle.updated` +- `resource.created` + `driver.created` +- `resource.updated` + `place.updated` + +## Resource Types Tracked + +- `report` (analytics) +- `device`, `sensor`, `telematic` (connectivity) +- `customer`, `contact`, `driver`, `fleet`, `fuel-report`, `issue`, `place`, `vehicle`, `vendor` (management) +- `order`, `service-rate` (operations) + +## Integration with Internals + +These events will be consumed by the `internals` analytics-listener for PostHog tracking: + +```javascript +// In internals/addon/instance-initializers/analytics-listener.js +universe.on('order.created', (order) => { + posthog.trackEvent('order_created', { + order_id: order.id, + // ... other properties + }); +}); +``` + +## Testing + +To verify events are firing: + +1. **In development console:** +```javascript +// Listen to all events +window.universe = owner.lookup('service:universe'); +universe.on('resource.created', (resource) => console.log('Created:', resource)); +universe.on('resource.updated', (resource) => console.log('Updated:', resource)); +``` + +2. **Check PostHog (in cloud):** +- Events should appear in PostHog Activity tab +- Event names will be snake_case: `order_created`, `vehicle_updated`, etc. + +## Dependencies + +Requires: +- `@fleetbase/ember-core` with `events` service +- `@fleetbase/internals` with analytics-listener (for PostHog tracking in cloud) diff --git a/addon/components/customer/create-order-form.js b/addon/components/customer/create-order-form.js index 059c753d..177aa2f7 100644 --- a/addon/components/customer/create-order-form.js +++ b/addon/components/customer/create-order-form.js @@ -31,6 +31,7 @@ export default class CustomerCreateOrderFormComponent extends Component { @service fetch; @service intl; @service universe; + @service events; @tracked order; @tracked customer; @tracked payload = this.store.createRecord('payload'); @@ -194,6 +195,10 @@ export default class CustomerCreateOrderFormComponent extends Component { try { yield order.save(); + + // Track with standard events service + this.events.trackResourceCreated(order); + // trigger event that fleet-ops created an order this.universe.trigger('fleet-ops.order.created', order); diff --git a/addon/controllers/analytics/reports/index/edit.js b/addon/controllers/analytics/reports/index/edit.js index feab9b4f..e046ac8e 100644 --- a/addon/controllers/analytics/reports/index/edit.js +++ b/addon/controllers/analytics/reports/index/edit.js @@ -9,6 +9,7 @@ export default class AnalyticsReportsIndexEditController extends Controller { @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; @tracked actionButtons = [ { @@ -26,6 +27,7 @@ export default class AnalyticsReportsIndexEditController extends Controller { report.fillResult(result); yield report.save(); + this.events.trackResourceUpdated(report); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.analytics.reports.index.details', report); diff --git a/addon/controllers/analytics/reports/index/new.js b/addon/controllers/analytics/reports/index/new.js index 440ef610..4163e0b2 100644 --- a/addon/controllers/analytics/reports/index/new.js +++ b/addon/controllers/analytics/reports/index/new.js @@ -9,6 +9,7 @@ export default class AnalyticsReportsIndexNewController extends Controller { @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked validationErrors = []; @tracked report = this.reportActions.createNewInstance({ type: 'fleet-ops' }); @@ -22,6 +23,7 @@ export default class AnalyticsReportsIndexNewController extends Controller { report.fillResult(result); yield report.save(); + this.events.trackResourceCreated(report); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/connectivity/devices/index/edit.js b/addon/controllers/connectivity/devices/index/edit.js index 862cdc9e..de450044 100644 --- a/addon/controllers/connectivity/devices/index/edit.js +++ b/addon/controllers/connectivity/devices/index/edit.js @@ -9,6 +9,7 @@ export default class ConnectivityDevicesIndexEditController extends Controller { @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; get actionButtons() { @@ -23,6 +24,7 @@ export default class ConnectivityDevicesIndexEditController extends Controller { @task *save(device) { try { yield device.save(); + this.events.trackResourceUpdated(device); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.connectivity.devices.index.details', device); diff --git a/addon/controllers/connectivity/devices/index/new.js b/addon/controllers/connectivity/devices/index/new.js index 7cfc15e1..0c64641c 100644 --- a/addon/controllers/connectivity/devices/index/new.js +++ b/addon/controllers/connectivity/devices/index/new.js @@ -9,12 +9,14 @@ export default class ConnectivityDevicesIndexNewController extends Controller { @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked device = this.deviceActions.createNewInstance(); @task *save(device) { try { yield device.save(); + this.events.trackResourceCreated(device); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/connectivity/sensors/index/edit.js b/addon/controllers/connectivity/sensors/index/edit.js index 9d7755ac..97730a97 100644 --- a/addon/controllers/connectivity/sensors/index/edit.js +++ b/addon/controllers/connectivity/sensors/index/edit.js @@ -9,6 +9,7 @@ export default class ConnectivitySensorsIndexEditController extends Controller { @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; get actionButtons() { @@ -23,6 +24,7 @@ export default class ConnectivitySensorsIndexEditController extends Controller { @task *save(sensor) { try { yield sensor.save(); + this.events.trackResourceUpdated(sensor); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.connectivity.sensors.index.details', sensor); diff --git a/addon/controllers/connectivity/sensors/index/new.js b/addon/controllers/connectivity/sensors/index/new.js index 79f84cc3..fee7b449 100644 --- a/addon/controllers/connectivity/sensors/index/new.js +++ b/addon/controllers/connectivity/sensors/index/new.js @@ -9,12 +9,14 @@ export default class ConnectivitySensorsIndexNewController extends Controller { @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked sensor = this.sensorActions.createNewInstance(); @task *save(sensor) { try { yield sensor.save(); + this.events.trackResourceCreated(sensor); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/connectivity/telematics/index/edit.js b/addon/controllers/connectivity/telematics/index/edit.js index 4cee97da..868be04b 100644 --- a/addon/controllers/connectivity/telematics/index/edit.js +++ b/addon/controllers/connectivity/telematics/index/edit.js @@ -9,6 +9,7 @@ export default class ConnectivityTelematicsIndexEditController extends Controlle @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; get actionButtons() { @@ -23,6 +24,7 @@ export default class ConnectivityTelematicsIndexEditController extends Controlle @task *save(telematic) { try { yield telematic.save(); + this.events.trackResourceUpdated(telematic); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.connectivity.telematics.index.details', telematic); diff --git a/addon/controllers/connectivity/telematics/index/new.js b/addon/controllers/connectivity/telematics/index/new.js index 72684c30..9e34b310 100644 --- a/addon/controllers/connectivity/telematics/index/new.js +++ b/addon/controllers/connectivity/telematics/index/new.js @@ -9,12 +9,14 @@ export default class ConnectivityTelematicsIndexNewController extends Controller @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked telematic = this.telematicActions.createNewInstance(); @task *save(telematic) { try { yield telematic.save(); + this.events.trackResourceCreated(telematic); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/management/contacts/customers/edit.js b/addon/controllers/management/contacts/customers/edit.js index 9ede4b24..0a0aa3af 100644 --- a/addon/controllers/management/contacts/customers/edit.js +++ b/addon/controllers/management/contacts/customers/edit.js @@ -9,6 +9,7 @@ export default class ManagementContactsCustomersEditController extends Controlle @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; @tracked actionButtons = [ { @@ -20,6 +21,7 @@ export default class ManagementContactsCustomersEditController extends Controlle @task *save(customer) { try { yield customer.save(); + this.events.trackResourceUpdated(customer); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.management.contacts.customers.details', customer); diff --git a/addon/controllers/management/contacts/customers/new.js b/addon/controllers/management/contacts/customers/new.js index ce42d2bf..c9ae6058 100644 --- a/addon/controllers/management/contacts/customers/new.js +++ b/addon/controllers/management/contacts/customers/new.js @@ -9,12 +9,14 @@ export default class ManagementContactsCustomersNewController extends Controller @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked customer = this.customerActions.createNewInstance(); @task *save(customer) { try { yield customer.save(); + this.events.trackResourceCreated(customer); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/management/contacts/index/edit.js b/addon/controllers/management/contacts/index/edit.js index 808b8e1e..25cb8376 100644 --- a/addon/controllers/management/contacts/index/edit.js +++ b/addon/controllers/management/contacts/index/edit.js @@ -9,6 +9,7 @@ export default class ManagementContactsIndexEditController extends Controller { @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; @tracked actionButtons = [ { @@ -20,6 +21,7 @@ export default class ManagementContactsIndexEditController extends Controller { @task *save(contact) { try { yield contact.save(); + this.events.trackResourceUpdated(contact); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.management.contacts.index.details', contact); diff --git a/addon/controllers/management/contacts/index/new.js b/addon/controllers/management/contacts/index/new.js index e73d7ccc..d78b8e30 100644 --- a/addon/controllers/management/contacts/index/new.js +++ b/addon/controllers/management/contacts/index/new.js @@ -9,12 +9,14 @@ export default class ManagementContactsIndexNewController extends Controller { @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked contact = this.contactActions.createNewInstance(); @task *save(contact) { try { yield contact.save(); + this.events.trackResourceCreated(contact); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/management/drivers/index/edit.js b/addon/controllers/management/drivers/index/edit.js index dbc462ae..24169bc4 100644 --- a/addon/controllers/management/drivers/index/edit.js +++ b/addon/controllers/management/drivers/index/edit.js @@ -9,6 +9,7 @@ export default class ManagementDriversIndexEditController extends Controller { @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; @tracked actionButtons = [ { @@ -20,6 +21,7 @@ export default class ManagementDriversIndexEditController extends Controller { @task *save(driver) { try { yield driver.save(); + this.events.trackResourceUpdated(driver); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.management.drivers.index.details', driver); diff --git a/addon/controllers/management/drivers/index/new.js b/addon/controllers/management/drivers/index/new.js index b959547c..6cc8fd01 100644 --- a/addon/controllers/management/drivers/index/new.js +++ b/addon/controllers/management/drivers/index/new.js @@ -9,12 +9,14 @@ export default class ManagementDriversIndexNewController extends Controller { @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked driver = this.driverActions.createNewInstance(); @task *save(driver) { try { yield driver.save(); + this.events.trackResourceCreated(driver); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/management/fleets/index/edit.js b/addon/controllers/management/fleets/index/edit.js index c0abd404..321bc138 100644 --- a/addon/controllers/management/fleets/index/edit.js +++ b/addon/controllers/management/fleets/index/edit.js @@ -9,6 +9,7 @@ export default class ManagementFleetsIndexEditController extends Controller { @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; get actionButtons() { @@ -23,6 +24,7 @@ export default class ManagementFleetsIndexEditController extends Controller { @task *save(fleet) { try { yield fleet.save(); + this.events.trackResourceUpdated(fleet); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.management.fleets.index.details', fleet); diff --git a/addon/controllers/management/fleets/index/new.js b/addon/controllers/management/fleets/index/new.js index 9e7c6c52..7b92ca70 100644 --- a/addon/controllers/management/fleets/index/new.js +++ b/addon/controllers/management/fleets/index/new.js @@ -9,12 +9,14 @@ export default class ManagementFleetsIndexNewController extends Controller { @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked fleet = this.fleetActions.createNewInstance(); @task *save(fleet) { try { yield fleet.save(); + this.events.trackResourceCreated(fleet); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/management/fuel-reports/index/edit.js b/addon/controllers/management/fuel-reports/index/edit.js index d8da2ea9..0aba2638 100644 --- a/addon/controllers/management/fuel-reports/index/edit.js +++ b/addon/controllers/management/fuel-reports/index/edit.js @@ -9,6 +9,7 @@ export default class ManagementFuelReportsIndexEditController extends Controller @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; @tracked actionButtons = [ { @@ -20,6 +21,7 @@ export default class ManagementFuelReportsIndexEditController extends Controller @task *save(fuelReport) { try { yield fuelReport.save(); + this.events.trackResourceUpdated(fuelReport); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.management.fuel-reports.index.details', fuelReport); diff --git a/addon/controllers/management/fuel-reports/index/new.js b/addon/controllers/management/fuel-reports/index/new.js index fafdb41c..ba3df6d9 100644 --- a/addon/controllers/management/fuel-reports/index/new.js +++ b/addon/controllers/management/fuel-reports/index/new.js @@ -10,12 +10,14 @@ export default class ManagementFuelReportsIndexNewController extends Controller @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked fuelReport = this.fuelReportActions.createNewInstance({ reporter: this.currentUser.user }); @task *save(fuelReport) { try { yield fuelReport.save(); + this.events.trackResourceCreated(fuelReport); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/management/issues/index/edit.js b/addon/controllers/management/issues/index/edit.js index 50434d65..6c36540e 100644 --- a/addon/controllers/management/issues/index/edit.js +++ b/addon/controllers/management/issues/index/edit.js @@ -9,6 +9,7 @@ export default class ManagementIssuesIndexEditController extends Controller { @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; @tracked actionButtons = [ { @@ -20,6 +21,7 @@ export default class ManagementIssuesIndexEditController extends Controller { @task *save(issue) { try { yield issue.save(); + this.events.trackResourceUpdated(issue); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.management.issues.index.details', issue); diff --git a/addon/controllers/management/issues/index/new.js b/addon/controllers/management/issues/index/new.js index e5cfc6ff..831889c0 100644 --- a/addon/controllers/management/issues/index/new.js +++ b/addon/controllers/management/issues/index/new.js @@ -10,12 +10,14 @@ export default class ManagementIssuesIndexNewController extends Controller { @service intl; @service currentUser; @service notifications; + @service events; @tracked overlay; @tracked issue = this.issueActions.createNewInstance({ reporter: this.currentUser.user }); @task *save(issue) { try { yield issue.save(); + this.events.trackResourceCreated(issue); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/management/places/index/edit.js b/addon/controllers/management/places/index/edit.js index ffecadff..f802cc45 100644 --- a/addon/controllers/management/places/index/edit.js +++ b/addon/controllers/management/places/index/edit.js @@ -9,6 +9,7 @@ export default class ManagementPlacesIndexEditController extends Controller { @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; @tracked actionButtons = [ { @@ -20,6 +21,7 @@ export default class ManagementPlacesIndexEditController extends Controller { @task *save(place) { try { yield place.save(); + this.events.trackResourceUpdated(place); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.management.places.index.details', place); diff --git a/addon/controllers/management/places/index/new.js b/addon/controllers/management/places/index/new.js index ae9b5cc3..283818aa 100644 --- a/addon/controllers/management/places/index/new.js +++ b/addon/controllers/management/places/index/new.js @@ -9,12 +9,14 @@ export default class ManagementPlacesIndexNewController extends Controller { @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked place = this.placeActions.createNewInstance(); @task *save(place) { try { yield place.save(); + this.events.trackResourceCreated(place); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/management/vehicles/index/edit.js b/addon/controllers/management/vehicles/index/edit.js index 8fc0ef4a..aae9781b 100644 --- a/addon/controllers/management/vehicles/index/edit.js +++ b/addon/controllers/management/vehicles/index/edit.js @@ -9,6 +9,7 @@ export default class ManagementVehiclesIndexEditController extends Controller { @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; @tracked actionButtons = [ { @@ -20,6 +21,7 @@ export default class ManagementVehiclesIndexEditController extends Controller { @task *save(vehicle) { try { yield vehicle.save(); + this.events.trackResourceUpdated(vehicle); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.management.vehicles.index.details', vehicle); diff --git a/addon/controllers/management/vehicles/index/new.js b/addon/controllers/management/vehicles/index/new.js index b42568c2..3c225e60 100644 --- a/addon/controllers/management/vehicles/index/new.js +++ b/addon/controllers/management/vehicles/index/new.js @@ -11,12 +11,14 @@ export default class ManagementVehiclesIndexNewController extends Controller { @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked vehicle = this.store.createRecord('vehicle', DEFAULT_PROPERTIES); @task *save(vehicle) { try { yield vehicle.save(); + this.events.trackResourceCreated(vehicle); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/management/vendors/index/edit.js b/addon/controllers/management/vendors/index/edit.js index 0c286abe..4323276d 100644 --- a/addon/controllers/management/vendors/index/edit.js +++ b/addon/controllers/management/vendors/index/edit.js @@ -9,6 +9,7 @@ export default class ManagementVendorsIndexEditController extends Controller { @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; @tracked actionButtons = [ { @@ -20,6 +21,7 @@ export default class ManagementVendorsIndexEditController extends Controller { @task *save(vendor) { try { yield vendor.save(); + this.events.trackResourceUpdated(vendor); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.management.vendors.index.details', vendor); diff --git a/addon/controllers/management/vendors/index/new.js b/addon/controllers/management/vendors/index/new.js index 40bd75e6..ff3d0acc 100644 --- a/addon/controllers/management/vendors/index/new.js +++ b/addon/controllers/management/vendors/index/new.js @@ -9,6 +9,7 @@ export default class ManagementVendorsIndexNewController extends Controller { @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked vendor = this.vendorActions.createNewInstance(); @tracked integratedVendor; @@ -18,6 +19,7 @@ export default class ManagementVendorsIndexNewController extends Controller { try { yield vendor.save(); + this.events.trackResourceCreated(vendor); this.overlay?.close(); yield this.hostRouter.refresh(); diff --git a/addon/controllers/operations/orders/index/new.js b/addon/controllers/operations/orders/index/new.js index 3732c48f..a49f69ed 100644 --- a/addon/controllers/operations/orders/index/new.js +++ b/addon/controllers/operations/orders/index/new.js @@ -19,6 +19,7 @@ export default class OperationsOrdersIndexNewController extends Controller { @service orderImport; @service orderCreation; @service orderValidation; + @service events; @tracked order = this.orderCreation.newOrder(); @tracked overlay; @@ -73,6 +74,7 @@ export default class OperationsOrdersIndexNewController extends Controller { // Save order const createdOrder = yield order.save(); + this.events.trackResourceCreated(order); // Trigger created event this.universe.trigger('fleet-ops.order.created', createdOrder); diff --git a/addon/controllers/operations/routes/index/new.js b/addon/controllers/operations/routes/index/new.js index cdc46df8..ca3ec786 100644 --- a/addon/controllers/operations/routes/index/new.js +++ b/addon/controllers/operations/routes/index/new.js @@ -6,6 +6,7 @@ import { task } from 'ember-concurrency'; export default class OperationsRoutesIndexNewController extends Controller { @service store; + @service events; @tracked panel; @tracked selectedOrders = ''; @tracked waypoints = []; diff --git a/addon/controllers/operations/service-rates/index/edit.js b/addon/controllers/operations/service-rates/index/edit.js index 2d212306..4d2d39ce 100644 --- a/addon/controllers/operations/service-rates/index/edit.js +++ b/addon/controllers/operations/service-rates/index/edit.js @@ -10,6 +10,7 @@ export default class OperationsServiceRatesIndexEditController extends Controlle @service intl; @service notifications; @service modalsManager; + @service events; @tracked overlay; @tracked actionButtons = [ { @@ -21,6 +22,7 @@ export default class OperationsServiceRatesIndexEditController extends Controlle @task *save(serviceRate) { try { yield serviceRate.save(); + this.events.trackResourceUpdated(serviceRate); this.overlay?.close(); yield this.hostRouter.transitionTo('console.fleet-ops.operations.service-rates.index.details', serviceRate); diff --git a/addon/controllers/operations/service-rates/index/new.js b/addon/controllers/operations/service-rates/index/new.js index 86951005..eac50956 100644 --- a/addon/controllers/operations/service-rates/index/new.js +++ b/addon/controllers/operations/service-rates/index/new.js @@ -9,12 +9,14 @@ export default class OperationsServiceRatesIndexNewController extends Controller @service hostRouter; @service intl; @service notifications; + @service events; @tracked overlay; @tracked serviceRate = this.serviceRateActions.createNewInstance(); @task *save(serviceRate) { try { yield serviceRate.save(); + this.events.trackResourceCreated(serviceRate); this.overlay?.close(); yield this.hostRouter.refresh();