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