blob: 28e4b6d22b56146d59e537f1366a50042c237c3b [file] [log] [blame]
'use strict';
angular.module('xos.ceilometerDashboard', [
'ngResource',
'ngCookies',
'ngLodash',
'ui.router',
'xos.helpers',
'angularCharts'
])
.config(($stateProvider) => {
$stateProvider
.state('ceilometerDashboard', {
url: '/',
template: '<ceilometer-dashboard></ceilometer-dashboard>'
});
})
.config(function($httpProvider){
$httpProvider.interceptors.push('NoHyperlinks');
})
.service('Ceilometer', function($http, $q, $timeout){
this.getMeters = () => {
let deferred = $q.defer();
$http.get('../mocks/meters.json')
.then((res) => {
$timeout(() => {
deferred.resolve(res.data)
}, 1000);
})
.catch((e) => {
deferred.reject(e);
});
return deferred.promise;
}
})
.directive('ceilometerDashboard', function(){
return {
restrict: 'E',
scope: {},
bindToController: true,
controllerAs: 'vm',
templateUrl: 'templates/ceilometer-dashboard.tpl.html',
controller: function(Ceilometer){
this.loadMeters = () => {
this.loader = true;
Ceilometer.getMeters()
.then(meters => {
this.meters = meters;
console.log(meters.length);
})
.catch(err => {
this.err = err;
})
.finally(() => {
this.loader = false;
});
}
this.loadMeters();
// //sample chart
// this.sampleChartData = {
// series: [
// 'VM',
// 'Containers',
// 'Instances'
// ],
// data: [
// {
// x: 0,
// y: [
// 479,
// 54,
// 213,
// ],
// tooltip: 'This is a tooltip'
// },
// {
// x: 1,
// y: [
// 64,
// 279,
// 10,
// ],
// tooltip: 'This is another tooltip'
// },
// {
// x: 2,
// y: [
// 136,
// 19,
// 259,
// ],
// tooltip: 'Third tooltip'
// }
// ]
// };
// this.sampleChartConfig = {
// title: false,
// tooltips: true,
// labels: false,
// legend: {
// display: true,
// //could be 'left, right'
// position: 'left'
// },
// lineLegend: 'lineEnd',
// waitForHeightAndWidth: true
// }
}
};
});