Browse Source

feat(graph tooltip): refactoring PR #3063

Torkel Ödegaard 9 years ago
parent
commit
d95545b5d3
1 changed files with 14 additions and 13 deletions
  1. 14 13
      public/app/plugins/panel/graph/graph_tooltip.js

+ 14 - 13
public/app/plugins/panel/graph/graph_tooltip.js

@@ -41,9 +41,8 @@ function ($, _) {
     };
 
     this.getMultiSeriesPlotHoverInfo = function(seriesList, pos) {
-      var value, i, series, hoverIndex, hoverDistance;
+      var value, i, series, hoverIndex, hoverDistance, pointTime;
       var results = [];
-      var seriesTimes = new Array(seriesList.length);
 
       //now we know the current X (j) position for X and Y values
       var last_value = 0; //needed for stacked values
@@ -62,13 +61,8 @@ function ($, _) {
         }
 
         hoverIndex = this.findHoverIndexFromData(pos.x, series);
-
-        // Store distance for each highlighted point
         hoverDistance = Math.abs(pos.x - series.data[hoverIndex][0]);
-        seriesTimes[i] = {
-          time: series.data[hoverIndex][0],
-          distance: hoverDistance
-        };
+        pointTime = series.data[hoverIndex][0];
 
         if (series.stack) {
           if (panel.tooltip.value_type === 'individual') {
@@ -88,15 +82,22 @@ function ($, _) {
           // stacked and steppedLine plots can have series with different length.
           // Stacked series can increase its length on each new stacked serie if null points found,
           // to speed the index search we begin always on the last found hoverIndex.
-          var newhoverIndex = this.findHoverIndexFromDataPoints(pos.x, series, hoverIndex);
-          results.push({ value: value, hoverIndex: newhoverIndex, color: series.color, label: series.label });
-        } else {
-          results.push({ value: value, hoverIndex: hoverIndex, color: series.color, label: series.label });
+          hoverIndex = this.findHoverIndexFromDataPoints(pos.x, series, hoverIndex);
+          hoverDistance = Math.abs(pos.x - series.data[hoverIndex][0]);
         }
+
+        results.push({
+          value: value,
+          hoverIndex: hoverIndex,
+          color: series.color,
+          label: series.label,
+          time: pointTime,
+          distance: hoverDistance
+        });
       }
 
       // Find point which closer to pointer
-      results.time = _.min(seriesTimes, 'distance').time;
+      results.time = _.min(results, 'distance').time;
 
       return results;
     };