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);
- // });
});
});