etcd/mod/dashboard/app/ui/latency-graph.js
2014-04-14 12:16:18 -07:00

46 lines
904 B
JavaScript

'use strict';
angular.module('etcd.ui').directive('coLatencyGraph', function(etcdApiSvc,
$, d3, _, graphConfig) {
return {
templateUrl: '/ui/latency-graph.html',
restrict: 'E',
replace: true,
scope: {
peerData: '='
},
link: function postLink(scope, elem, attrs) {
var padding = 60;
function updateGraph() {
var width = elem.width() - padding,
height = 300;
vg.parse.spec(graphConfig, function(chart) {
chart({
el: elem[0],
data: {
'stats': scope.peerData
}
})
.width(width)
.height(height)
.update();
});
}
scope.$watch('peerData', function(peerData) {
if (!_.isEmpty(peerData)) {
updateGraph();
}
});
elem.on('$destroy', function() {
});
}
};
});