diff options
author | Idan Amit <ia096e@intl.att.com> | 2018-02-13 10:38:16 +0200 |
---|---|---|
committer | Idan Amit <ia096e@intl.att.com> | 2018-02-13 16:43:30 +0200 |
commit | 71904f241cd3047054dc0a36c04120a3f53205ae (patch) | |
tree | 4bc2a7de56d7737131ddab4f2d206a655dbc0d6d /catalog-ui/src/app/ng2 | |
parent | 332f0679fbd23532a058f0ff6a7cffaed3b5424e (diff) |
Plugin pubsub implementation
Added implementation for sdc-hub and plugin pubsub classes
Added timeout in the plugin head request health check
Passing parentUrl in query params to each plugin
Change-Id: Ie94aa4b398dd2fcfdf2d134f6c5785d3aa50d237
Issue-ID: SDC-1007
Signed-off-by: Idan Amit <ia096e@intl.att.com>
Diffstat (limited to 'catalog-ui/src/app/ng2')
-rw-r--r-- | catalog-ui/src/app/ng2/app.module.ts | 5 | ||||
-rw-r--r-- | catalog-ui/src/app/ng2/services/event-bus.service.ts | 39 |
2 files changed, 42 insertions, 2 deletions
diff --git a/catalog-ui/src/app/ng2/app.module.ts b/catalog-ui/src/app/ng2/app.module.ts index a5a2fed18b..0346b10915 100644 --- a/catalog-ui/src/app/ng2/app.module.ts +++ b/catalog-ui/src/app/ng2/app.module.ts @@ -48,6 +48,7 @@ import { TranslateModule } from "./shared/translator/translate.module"; import { TranslationServiceConfig } from "./config/translation.service.config"; import {PluginFrameModule} from "./components/ui/plugin/plugin-frame.module"; import {PluginsService} from "./services/plugins.service"; +import {EventBusService} from "./services/event-bus.service"; export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule)); @@ -99,6 +100,7 @@ export function configServiceFactory(config:ConfigService) { ComponentInstanceServiceNg2, TranslationServiceConfig, PluginsService, + EventBusService, { provide: APP_INITIALIZER, useFactory: configServiceFactory, @@ -112,7 +114,6 @@ export function configServiceFactory(config:ConfigService) { export class AppModule { - constructor(public upgrade:UpgradeModule) { - + constructor(public upgrade:UpgradeModule, eventBusService:EventBusService) { } } diff --git a/catalog-ui/src/app/ng2/services/event-bus.service.ts b/catalog-ui/src/app/ng2/services/event-bus.service.ts new file mode 100644 index 0000000000..7730a77f41 --- /dev/null +++ b/catalog-ui/src/app/ng2/services/event-bus.service.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@angular/core'; +import {BasePubSub, IPubSubEvent} from "../../models/base-pubsub"; + +@Injectable() +export class EventBusService extends BasePubSub { + + constructor() { + super("sdc-hub"); + } + + protected handlePluginRegistration(eventData: IPubSubEvent, event: any) { + if (eventData.type === 'PLUGIN_REGISTER') { + this.register(eventData.data.pluginId, event.source, event.origin); + } else if (eventData.type === 'PLUGIN_UNREGISTER') { + this.unregister(eventData.data.pluginId); + } + } + + public unregister(pluginId: string) { + const unregisterData = { + pluginId: pluginId + }; + + this.notify('PLUGIN_CLOSE', unregisterData); + super.unregister(pluginId); + } + + protected onMessage(event: any) { + if (event.data.type === 'PLUGIN_REGISTER') { + this.handlePluginRegistration(event.data, event); + } + + super.onMessage(event); + + if (event.data.type === 'PLUGIN_UNREGISTER') { + this.handlePluginRegistration(event.data, event); + } + } +} |