heatmap: add show legend option

This commit is contained in:
Alexander Zobnin 2017-08-01 14:07:52 +03:00
parent e72baca4a7
commit 91a921e12d
4 changed files with 24 additions and 3 deletions

View File

@ -46,7 +46,12 @@ module.directive('heatmapLegend', function() {
let ctrl = scope.ctrl;
let panel = scope.ctrl.panel;
render();
ctrl.events.on('render', function() {
render();
});
function render() {
if (!_.isEmpty(ctrl.data)) {
let legendElem = $(elem).find('svg');
let legendWidth = Math.floor(legendElem.outerWidth());
@ -66,7 +71,7 @@ module.directive('heatmapLegend', function() {
drawOpacityLegend(elem, colorOptions, rangeFrom, rangeTo, maxValue, minValue);
}
}
});
}
}
};
});
@ -241,7 +246,12 @@ function getOpacityScale(options, maxValue, minValue = 0) {
}
function getSvgElemX(elem) {
return elem.get(0).x.baseVal.value;
let svgElem = elem.get(0);
if (svgElem && svgElem.x && svgElem.x.baseVal) {
return elem.get(0).x.baseVal.value;
} else {
return 0;
}
}
function buildLegendTicks(rangeFrom, rangeTo, maxValue, minValue) {

View File

@ -26,6 +26,9 @@ let panelDefaults = {
exponent: 0.5,
colorScheme: 'interpolateOranges',
},
legend: {
show: false
},
dataFormat: 'timeseries',
xAxis: {
show: true,

View File

@ -8,7 +8,7 @@
<div class="heatmap-panel" ng-dblclick="ctrl.zoomOut()"></div>
</div>
<div class="heatmap-legend-wrapper">
<heatmap-legend></heatmap-legend>
<heatmap-legend ng-if="ctrl.panel.legend.show"></heatmap-legend>
</div>
</div>
<div class="clearfix"></div>

View File

@ -53,6 +53,14 @@
</div>
</div>
<div class="section gf-form-group">
<h5 class="section-heading">Legend</h5>
<gf-form-switch class="gf-form" label-class="width-8"
label="Show legend"
checked="ctrl.panel.legend.show" on-change="ctrl.render()">
</gf-form-switch>
</div>
<div class="section gf-form-group">
<h5 class="section-heading">Buckets</h5>
<div class="gf-form">