Skip to content

Commit 1eb2252

Browse files
committed
refactor: Update to use refactored universe services
- Replace universe.getMenuItemsFromRegistry with registryService.getMenuItems - Replace universe.getMenuPanelsFromRegistry with registryService.getMenuPanels - Replace universe.lookupMenuItemFromRegistry with registryService.lookupMenuItem - Replace universe.createRegistryEvent with registryService.createEvent - Replace universe.registerHeaderMenuItem with menuService.registerHeaderMenuItem - Replace universe.registerMenuItem with menuService.registerMenuItem - Replace universe.registerAdminMenuPanel with menuService.registerAdminMenuPanel - Replace universe.registerDefaultDashboardWidgets with widgetService.registerDefaultWidgets - Replace universe.registerDashboardWidgets with widgetService.registerWidgets - Replace universe.afterBoot with extensionManager.afterBoot - Replace universe.createRegistries with registryService.createRegistries Updated files: - addon/components/layout/fleet-ops-sidebar.js - addon/components/map/drawer.js - addon/components/map/leaflet-live-map.js - addon/components/order-config-manager.js - addon/engine.js - addon/extension.js - addon/routes/virtual.js - addon/utils/setup-customer-portal.js This refactoring aligns with the universe service decomposition in ember-core, improving performance and maintainability by using specialized services instead of the monolithic universe service.
1 parent 350ebba commit 1eb2252

8 files changed

Lines changed: 40 additions & 22 deletions

File tree

addon/components/layout/fleet-ops-sidebar.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import DriverListingComponent from './fleet-ops-sidebar/driver-listing';
77

88
export default class LayoutFleetOpsSidebarComponent extends Component {
99
@service universe;
10+
@service('universe/registry-service') registryService;
1011
@service store;
1112
@service intl;
1213
@service abilities;
@@ -24,8 +25,8 @@ export default class LayoutFleetOpsSidebarComponent extends Component {
2425
}
2526

2627
createMenuItemsFromUniverseRegistry() {
27-
const registeredMenuItems = this.universe.getMenuItemsFromRegistry('engine:fleet-ops');
28-
this.universeMenuPanels = this.universe.getMenuPanelsFromRegistry('engine:fleet-ops');
28+
const registeredMenuItems = this.registryService.getMenuItems('engine:fleet-ops');
29+
this.universeMenuPanels = this.registryService.getMenuPanels('engine:fleet-ops');
2930
this.universeMenuItems = registeredMenuItems.filter((menuItem) => menuItem.section === undefined);
3031
this.universeSettingsMenuItems = registeredMenuItems.filter((menuItem) => menuItem.section === 'settings');
3132
}

addon/components/map/drawer.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ import { isArray } from '@ember/array';
66
export default class MapDrawerComponent extends Component {
77
@service mapDrawer;
88
@service universe;
9+
@service('universe/registry-service') registryService;
910

1011
get tabs() {
11-
const registeredTabs = this.universe.getMenuItemsFromRegistry('fleet-ops:component:map:drawer');
12+
const registeredTabs = this.registryService.getMenuItems('fleet-ops:component:map:drawer');
1213
return [
1314
this.universe._createMenuItem('Vehicles', null, { icon: 'car', component: 'map/drawer/vehicle-listing' }),
1415
this.universe._createMenuItem('Drivers', null, { icon: 'id-card', component: 'map/drawer/driver-listing' }),

addon/components/map/leaflet-live-map.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export default class MapLeafletLiveMapComponent extends Component {
2828
@service abilities;
2929
@service intl;
3030
@service universe;
31+
@service('universe/registry-service') registryService;
3132

3233
/** properties */
3334
id = guidFor(this);
@@ -315,7 +316,7 @@ export default class MapLeafletLiveMapComponent extends Component {
315316
].filter(Boolean);
316317

317318
const registry = this.leafletContextmenuManager.createContextMenu('map', map, items);
318-
this.universe.createRegistryEvent('fleet-ops:contextmenu:map', 'created', registry, this.leafletContextmenuManager);
319+
this.registryService.createEvent('fleet-ops:contextmenu:map', 'created', registry, this.leafletContextmenuManager);
319320

320321
return registry;
321322
}
@@ -341,7 +342,7 @@ export default class MapLeafletLiveMapComponent extends Component {
341342

342343
// create contextmenu registry
343344
const contextmenuRegistry = this.leafletContextmenuManager.createContextMenu(`zone:${zone.public_id}`, layer, items, { zone });
344-
this.universe.createRegistryEvent('fleet-ops:contextmenu:zone', 'created', contextmenuRegistry, this.leafletContextmenuManager);
345+
this.registryService.createEvent('fleet-ops:contextmenu:zone', 'created', contextmenuRegistry, this.leafletContextmenuManager);
345346

346347
return contextmenuRegistry;
347348
}
@@ -375,7 +376,7 @@ export default class MapLeafletLiveMapComponent extends Component {
375376

376377
// create contextmenu registry
377378
const contextmenuRegistry = this.leafletContextmenuManager.createContextMenu(`service-area:${serviceArea.public_id}`, layer, items, { serviceArea });
378-
this.universe.createRegistryEvent('fleet-ops:contextmenu:service-area', 'created', contextmenuRegistry, this.leafletContextmenuManager);
379+
this.registryService.createEvent('fleet-ops:contextmenu:service-area', 'created', contextmenuRegistry, this.leafletContextmenuManager);
379380

380381
return contextmenuRegistry;
381382
}
@@ -404,7 +405,7 @@ export default class MapLeafletLiveMapComponent extends Component {
404405
];
405406

406407
// append items from universe registry
407-
const registeredContextMenuItems = this.universe.getMenuItemsFromRegistry('fleet-ops:contextmenu:driver');
408+
const registeredContextMenuItems = this.registryService.getMenuItems('fleet-ops:contextmenu:driver');
408409
if (isArray(registeredContextMenuItems)) {
409410
items = [
410411
...items,
@@ -427,7 +428,7 @@ export default class MapLeafletLiveMapComponent extends Component {
427428

428429
// create contextmenu registry
429430
const contextmenuRegistry = this.leafletContextmenuManager.createContextMenu(`driver:${driver.public_id}`, layer, items, { driver });
430-
this.universe.createRegistryEvent('fleet-ops:contextmenu:driver', 'created', contextmenuRegistry, this.leafletContextmenuManager);
431+
this.registryService.createEvent('fleet-ops:contextmenu:driver', 'created', contextmenuRegistry, this.leafletContextmenuManager);
431432

432433
return contextmenuRegistry;
433434
}
@@ -452,7 +453,7 @@ export default class MapLeafletLiveMapComponent extends Component {
452453
];
453454

454455
// append items from universe registry
455-
const registeredContextMenuItems = this.universe.getMenuItemsFromRegistry('fleet-ops:contextmenu:vehicle');
456+
const registeredContextMenuItems = this.registryService.getMenuItems('fleet-ops:contextmenu:vehicle');
456457
if (isArray(registeredContextMenuItems)) {
457458
items = [
458459
...items,
@@ -475,7 +476,7 @@ export default class MapLeafletLiveMapComponent extends Component {
475476

476477
// create contextmenu registry
477478
const contextmenuRegistry = this.leafletContextmenuManager.createContextMenu(`vehicle:${vehicle.public_id}`, layer, items, { vehicle });
478-
this.universe.createRegistryEvent('fleet-ops:contextmenu:vehicle', 'created', contextmenuRegistry, this.leafletContextmenuManager);
479+
this.registryService.createEvent('fleet-ops:contextmenu:vehicle', 'created', contextmenuRegistry, this.leafletContextmenuManager);
479480

480481
return contextmenuRegistry;
481482
}

addon/components/order-config-manager.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import findActiveTab from '../utils/find-active-tab';
2020
const configManagerContext = EmberObject.extend(Evented);
2121
export default class OrderConfigManagerComponent extends Component {
2222
@service universe;
23+
@service('universe/registry-service') registryService;
2324
@service notifications;
2425
@service modalsManager;
2526
@service store;
@@ -39,7 +40,7 @@ export default class OrderConfigManagerComponent extends Component {
3940
* @type {Array}
4041
*/
4142
get tabs() {
42-
const registeredTabs = this.universe.getMenuItemsFromRegistry('fleet-ops:component:order-config-manager');
43+
const registeredTabs = this.registryService.getMenuItems('fleet-ops:component:order-config-manager');
4344
const defaultTabs = [
4445
this.universe._createMenuItem(this.intl.t('order-config-manager.tabs.details'), null, { icon: 'circle-info', component: OrderConfigManagerDetailsComponent }),
4546
this.universe._createMenuItem(this.intl.t('order-config-manager.tabs.custom-fields'), null, { icon: 'rectangle-list', component: OrderConfigManagerCustomFieldsComponent }),

addon/engine.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,16 @@ export default class FleetOpsEngine extends Engine {
2323
externalRoutes,
2424
};
2525
setupExtension = function (app, engine, universe) {
26+
// Get refactored services from universe facade
27+
const menuService = universe.getService('menuService');
28+
const widgetService = universe.getService('widgetService');
29+
const registryService = universe.getService('registryService');
30+
2631
// register menu item in header
27-
universe.registerHeaderMenuItem('Fleet-Ops', 'console.fleet-ops', { icon: 'route', priority: 0 });
32+
menuService.registerHeaderMenuItem('Fleet-Ops', 'console.fleet-ops', { icon: 'route', priority: 0 });
2833

2934
// register admin settings -- create a fleet-ops menu panel with it's own setting options
30-
universe.registerAdminMenuPanel(
35+
menuService.registerAdminMenuPanel(
3136
'Fleet-Ops Config',
3237
[
3338
{
@@ -47,7 +52,7 @@ export default class FleetOpsEngine extends Engine {
4752
);
4853

4954
// register menu item for tracking order
50-
universe.registerMenuItem('auth:login', 'Track Order', {
55+
menuService.registerMenuItem('auth:login', 'Track Order', {
5156
route: 'virtual',
5257
slug: 'track-order',
5358
icon: 'barcode',
@@ -96,11 +101,11 @@ export default class FleetOpsEngine extends Engine {
96101
};
97102

98103
// register widgets
99-
universe.registerDefaultDashboardWidgets([KeyMetricsWidgetDefinition]);
100-
universe.registerDashboardWidgets([KeyMetricsWidgetDefinition]);
104+
widgetService.registerDefaultWidgets('dashboard', [KeyMetricsWidgetDefinition]);
105+
widgetService.registerWidgets('dashboard', [KeyMetricsWidgetDefinition]);
101106

102107
// create all registries necessary
103-
universe.createRegistries([
108+
registryService.createRegistries([
104109
'engine:fleet-ops',
105110
'fleet-ops:component:live-map-drawer',
106111
'fleet-ops:component:vehicle:details',

addon/extension.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,9 @@ import { MenuItem, MenuPanel, Widget, ExtensionComponent, Hook } from '@fleetbas
33
export default function (app, universe) {
44
console.log('[FleetOps] Setting up extension...');
55

6-
universe.registerHeaderMenuItem('Fleet-Ops', 'console.fleet-ops', { icon: 'route', priority: 0 });
6+
// Get the menuService from the universe facade
7+
const menuService = universe.getService('menuService');
8+
9+
// Register header menu item using menuService
10+
menuService.registerHeaderMenuItem('Fleet-Ops', 'console.fleet-ops', { icon: 'route', priority: 0 });
711
}

addon/routes/virtual.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { inject as service } from '@ember/service';
33

44
export default class VirtualRoute extends Route {
55
@service universe;
6+
@service('universe/registry-service') registryService;
67

78
queryParams = {
89
view: {
@@ -12,6 +13,6 @@ export default class VirtualRoute extends Route {
1213

1314
model({ section = null, slug }, transition) {
1415
const view = this.universe.getViewFromTransition(transition);
15-
return this.universe.lookupMenuItemFromRegistry('engine:fleet-ops', slug, view, section);
16+
return this.registryService.lookupMenuItem('engine:fleet-ops', slug, view, section);
1617
}
1718
}

addon/utils/setup-customer-portal.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ import { debug } from '@ember/debug';
66
export default function setupCustomerPortal(app, engine, universe) {
77
if (!customerPortalInstalled(app)) return;
88

9-
universe.afterBoot(function (u) {
9+
// Get extensionManager from universe facade
10+
const extensionManager = universe.getService('extensionManager');
11+
const menuService = universe.getService('menuService');
12+
13+
extensionManager.afterBoot(function (u) {
1014
const portal = u.getEngineInstance('@fleetbase/customer-portal-engine');
1115
if (!portal) {
1216
debug('Could not resolve @fleetbase/customer-portal-engine');
@@ -16,8 +20,8 @@ export default function setupCustomerPortal(app, engine, universe) {
1620
// Alias FleetOps services into Customer Portal before rendering
1721
createServiceAlias(engine, portal, ['leaflet-map-manager', 'location', 'movement-tracker', 'leaflet-routing-control', 'order-config-actions', 'order-creation', 'order-validation']);
1822

19-
// Now its safe to wire menus + renderables that might use those services
20-
u.registerMenuItems('customer-portal:sidebar', [
23+
// Now it's safe to wire menus + renderables that might use those services
24+
menuService.registerMenuItems('customer-portal:sidebar', [
2125
u._createMenuItem('Orders', 'customer-portal.portal.virtual', {
2226
icon: 'boxes-packing',
2327
component: createEngineBoundComponent(portal, CustomerOrdersComponent),

0 commit comments

Comments
 (0)