publish event to all models involved

Change-Id: I869692fbababaa881ce2a0fc8f2ef6add5c7c243
diff --git a/src/app/datasources/websocket/global.ts b/src/app/datasources/websocket/global.ts
index a5852c8..a820269 100644
--- a/src/app/datasources/websocket/global.ts
+++ b/src/app/datasources/websocket/global.ts
@@ -1,4 +1,5 @@
 import * as io from 'socket.io-client';
+import * as _ from 'lodash';
 import {Subject, Observable} from 'rxjs/Rx';
 import {IXosAppConfig} from '../../../index';
 
@@ -17,16 +18,31 @@
 
 export class WebSocketEvent {
 
-  static $inject = ['AppConfig'];
+  static $inject = [
+    'AppConfig',
+    '$log'
+  ];
 
   private _events: Subject<IWSEvent> = new Subject<IWSEvent>();
     private socket;
     constructor(
-      private AppConfig: IXosAppConfig
+      private AppConfig: IXosAppConfig,
+      private $log: ng.ILogService
     ) {
       this.socket = io(this.AppConfig.websocketClient);
       this.socket.on('event', (data: IWSEvent): void => {
+          this.$log.debug(`[WebSocket] Received Event for: ${data.model} [${data.msg.pk}]`);
           this._events.next(data);
+
+          // NOTE update observers of parent classes
+          if (data.msg.object.class_names && angular.isString(data.msg.object.class_names)) {
+            const models = data.msg.object.class_names.split(',');
+            _.forEach(models, (m: string) => {
+              data.model = m;
+              this._events.next(data);
+            });
+          }
+
         });
     }
     list() {