blob: 21fbbde96263f41ea90cf8b3bf6e55bd86237edf [file] [log] [blame]
import {IXosModelStoreService} from '../../datasources/stores/model.store';
import {IXosAuthService} from '../../datasources/rest/auth.rest';
class DashboardController {
static $inject = ['$scope', '$state', 'XosModelStore', 'AuthService'];
public nodes: number;
public slices: number;
public instances: number;
constructor(
private $scope: ng.IScope,
private $state: ng.ui.IStateService,
private store: IXosModelStoreService,
private auth: IXosAuthService
) {
if (!this.auth.isAuthenticated()) {
this.$state.go('login');
}
else {
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;
}
}
}
export const xosDashboard: angular.IComponentOptions = {
template: require('./dashboard.html'),
controllerAs: 'vm',
controller: DashboardController
};