aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/ng2/services/event-bus.service.ts
diff options
context:
space:
mode:
authorIdan Amit <ia096e@intl.att.com>2018-04-15 19:19:08 +0300
committerIdan Amit <ia096e@intl.att.com>2018-04-15 19:19:08 +0300
commit6187c942bedebeb2f452ed0856652f90cd5c5772 (patch)
tree9c3463873e34d9097f2119b9ed35900f6ecab733 /catalog-ui/src/app/ng2/services/event-bus.service.ts
parent821b76c6b81ebf96e8fd8340ac5f6ed79f8ed22a (diff)
New observable notify design in pubsub
Implemented the new subscription mechanism for the pub sub notify function Change-Id: I5e6484adf1a0413d48b54b55048cda1a59b387ee Issue-ID: SDC-1178 Signed-off-by: Idan Amit <ia096e@intl.att.com>
Diffstat (limited to 'catalog-ui/src/app/ng2/services/event-bus.service.ts')
-rw-r--r--catalog-ui/src/app/ng2/services/event-bus.service.ts17
1 files changed, 15 insertions, 2 deletions
diff --git a/catalog-ui/src/app/ng2/services/event-bus.service.ts b/catalog-ui/src/app/ng2/services/event-bus.service.ts
index 7730a77f41..438437d193 100644
--- a/catalog-ui/src/app/ng2/services/event-bus.service.ts
+++ b/catalog-ui/src/app/ng2/services/event-bus.service.ts
@@ -11,6 +11,18 @@ export class EventBusService extends BasePubSub {
protected handlePluginRegistration(eventData: IPubSubEvent, event: any) {
if (eventData.type === 'PLUGIN_REGISTER') {
this.register(eventData.data.pluginId, event.source, event.origin);
+
+ let newEventsList = [];
+
+ if (this.eventsToWait.has(eventData.data.pluginId)) {
+ newEventsList = _.union(this.eventsToWait.get(eventData.data.pluginId), eventData.data.eventsToWait);
+ }
+ else {
+ newEventsList = eventData.data.eventsToWait;
+ }
+
+ this.eventsToWait.set(eventData.data.pluginId, newEventsList);
+
} else if (eventData.type === 'PLUGIN_UNREGISTER') {
this.unregister(eventData.data.pluginId);
}
@@ -21,8 +33,9 @@ export class EventBusService extends BasePubSub {
pluginId: pluginId
};
- this.notify('PLUGIN_CLOSE', unregisterData);
- super.unregister(pluginId);
+ this.notify('PLUGIN_CLOSE', unregisterData).subscribe(() => {
+ super.unregister(pluginId);
+ });
}
protected onMessage(event: any) {