Procházet zdrojové kódy

heatmap: add show legend option

Alexander Zobnin před 8 roky
rodič
revize
91a921e12d

+ 12 - 2
public/app/plugins/panel/heatmap/color_legend.ts

@@ -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) {

+ 3 - 0
public/app/plugins/panel/heatmap/heatmap_ctrl.ts

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

+ 1 - 1
public/app/plugins/panel/heatmap/module.html

@@ -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>

+ 8 - 0
public/app/plugins/panel/heatmap/partials/display_editor.html

@@ -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">