Fixed observer in dashboard

Change-Id: Icdfde7f01a35e066c8a4658872f2d19614aa7df4
diff --git a/src/app/core/services/helpers/config.helpers.ts b/src/app/core/services/helpers/config.helpers.ts
index a9d23f3..9b8d63c 100644
--- a/src/app/core/services/helpers/config.helpers.ts
+++ b/src/app/core/services/helpers/config.helpers.ts
@@ -9,7 +9,7 @@
 
 export interface IXosConfigHelpersService {
   excluded_fields: string[];
-  modeldefToTableCfg(fields: IXosModelDefsField[], baseUrl: string): any[]; // TODO use a proper interface
+  modeldefToColumnsCfg(fields: IXosModelDefsField[], baseUrl: string): any[]; // TODO use a proper interface
   pluralize(string: string, quantity?: number, count?: boolean): string;
   toLabel(string: string, pluralize?: boolean): string;
   toLabels(string: string[], pluralize?: boolean): string[];
@@ -64,9 +64,9 @@
     return this.capitalizeFirst(string);
   }
 
-  modeldefToTableCfg(fields: IXosModelDefsField[], baseUrl: string): IXosTableColumn[] {
+  modeldefToColumnsCfg(fields: IXosModelDefsField[], baseUrl: string): IXosTableColumn[] {
 
-    const cfg =  _.map(fields, (f) => {
+    const columns =  _.map(fields, (f) => {
       if (this.excluded_fields.indexOf(f.name) > -1) {
         return;
       }
@@ -99,7 +99,7 @@
     })
       .filter(v => angular.isDefined(v));
 
-    return cfg;
+    return columns;
   };
 
   private fromCamelCase(string: string): string {
diff --git a/src/app/datasources/stores/model.store.ts b/src/app/datasources/stores/model.store.ts
index 91cdf24..34e2951 100644
--- a/src/app/datasources/stores/model.store.ts
+++ b/src/app/datasources/stores/model.store.ts
@@ -23,7 +23,6 @@
   }
 
   query(model: string) {
-
     // if there isn't already an observable for that item
     if (!this._collections[model]) {
       this._collections[model] = new BehaviorSubject([]); // NOTE maybe this can be created when we get response from the resource
diff --git a/src/app/views/dashboard/dashboard.ts b/src/app/views/dashboard/dashboard.ts
index dc4fc1d..72d7f28 100644
--- a/src/app/views/dashboard/dashboard.ts
+++ b/src/app/views/dashboard/dashboard.ts
@@ -1,13 +1,14 @@
 import {IModelStoreService} from '../../datasources/stores/model.store';
 import {IXosAuthService} from '../../datasources/rest/auth.rest';
 class DashboardController {
-  static $inject = ['$state', 'ModelStore', 'AuthService'];
+  static $inject = ['$scope', '$state', 'ModelStore', 'AuthService'];
 
   public nodes: number;
   public slices: number;
   public instances: number;
 
   constructor(
+    private $scope: ng.IScope,
     private $state: ng.ui.IStateService,
     private store: IModelStoreService,
     private auth: IXosAuthService
@@ -17,12 +18,24 @@
       this.$state.go('login');
     }
     else {
-      this.store.query('node')
-        .subscribe((event) => this.nodes = event.length);
-      this.store.query('slice')
-        .subscribe((event) => this.slices = event.length);
-      this.store.query('instance')
-        .subscribe((event) => this.instances = event.length);
+      this.store.query('Node')
+        .subscribe((event) => {
+          this.$scope.$evalAsync(() => {
+            this.nodes = event.length;
+          });
+        });
+      this.store.query('Instance')
+        .subscribe((event) => {
+          this.$scope.$evalAsync(() => {
+            this.instances = event.length;
+          });
+        });
+      this.store.query('Slice')
+        .subscribe((event) => {
+          this.$scope.$evalAsync(() => {
+            this.slices = event.length;
+          });
+        });
       this.instances = 0;
       this.nodes = 0;
       this.slices = 0;
diff --git a/src/index.ts b/src/index.ts
index 07cdead..0760b26 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -93,7 +93,7 @@
               model: m.name,
               related: m.relations,
               xosTableCfg: {
-                columns: ConfigHelpers.modeldefToTableCfg(m.fields, stateUrl),
+                columns: ConfigHelpers.modeldefToColumnsCfg(m.fields, stateUrl),
                 filter: 'fulltext',
                 order: {field: 'id', reverse: false}, // TODO understand dynamic interfaces
                 actions: [
@@ -134,8 +134,5 @@
 
         // after setting up dynamic routes, redirect to previous state
         $location.path(lastRoute);
-        // $state.get().forEach(s => {
-        //   console.log(s.name, $state.href(s.name), s);
-        // });
       });
   });