Do not render graph when width is zero, avoids plot errors

This commit is contained in:
Torkel Ödegaard 2014-09-11 14:25:20 +02:00
parent 762dab618a
commit 6ca73f6df0

View File

@ -15,7 +15,7 @@ function (angular, $, kbn, moment, _) {
restrict: 'A',
template: '<div> </div>',
link: function(scope, elem) {
var data, plot, annotations;
var data, annotations;
var hiddenData = {};
var dashboard = scope.dashboard;
var legendSideLastValue = null;
@ -82,6 +82,10 @@ function (angular, $, kbn, moment, _) {
render_panel_as_graphite_png(data);
return true;
}
if (elem.width() === 0) {
return;
}
}
// Function for rendering panel
@ -165,18 +169,22 @@ function (angular, $, kbn, moment, _) {
var sortedSeries = _.sortBy(data, function(series) { return series.zindex; });
// if legend is to the right delay plot draw a few milliseconds
// so the legend width calculation can be done
function callPlot() {
try {
$.plot(elem, sortedSeries, options);
} catch (e) {
console.log('flotcharts error', e);
}
addAxisLabels();
}
if (shouldDelayDraw(panel)) {
setTimeout(callPlot, 50);
legendSideLastValue = panel.legend.rightSide;
setTimeout(function() {
plot = $.plot(elem, sortedSeries, options);
addAxisLabels();
}, 50);
}
else {
plot = $.plot(elem, sortedSeries, options);
addAxisLabels();
callPlot();
}
}