Skip to content
This repository has been archived by the owner on Mar 31, 2024. It is now read-only.

Commit

Permalink
moved the adition of the start and end time of the series after the r…
Browse files Browse the repository at this point in the history
…educe function checks each data point from elastic search. This whould resolve elastic#422
  • Loading branch information
Spencer Alger committed Aug 27, 2013
1 parent 7252800 commit f5f7417
Showing 1 changed file with 21 additions and 10 deletions.
31 changes: 21 additions & 10 deletions panels/histogram/module.js
Original file line number Diff line number Diff line change
Expand Up @@ -471,6 +471,10 @@ angular.module('kibana.histogram', [])
return parseInt(val, 10);
}

function getDatesTime(date) {
return Math.floor(date.getTime() / 1000)*1000
}

/**
* Certain graphs require 0 entries to be specified for them to render
* properly (like the line graph). So with this we will caluclate all of
Expand All @@ -488,7 +492,7 @@ angular.module('kibana.histogram', [])
* the series.
*/
this.ZeroFilled = function (opts) {
this.opts = _.defaults(opts, {
opts = _.defaults(opts, {
interval: '10m',
start_date: null,
end_date: null,
Expand All @@ -500,13 +504,9 @@ angular.module('kibana.histogram', [])

// will keep all values here, keyed by their time
this._data = {};

if (opts.start_date) {
this.addValue(opts.start_date, null);
}
if (opts.end_date) {
this.addValue(opts.end_date, null);
}
this.start_time = opts.start_date && getDatesTime(opts.start_date);
this.end_time = opts.end_date && getDatesTime(opts.end_date);
this.opts = opts;
};

/**
Expand All @@ -516,7 +516,7 @@ angular.module('kibana.histogram', [])
*/
this.ZeroFilled.prototype.addValue = function (time, value) {
if (time instanceof Date) {
time = Math.floor(time.getTime() / 1000)*1000;
time = getDatesTime(time);
} else {
time = base10Int(time);
}
Expand Down Expand Up @@ -558,12 +558,23 @@ angular.module('kibana.histogram', [])
strategy = this._getMinFlotPairs;
}

return _.reduce(
pairs = _.reduce(
times, // what
strategy, // how
[], // where
this // context
);

// if the start and end of the pairs are inside either the start or end time,
// add those times to the series with null values so the graph will stretch to contain them.
if (this.start_time && pairs[0][0] > this.start_time) {
pairs.unshift([this.start_time, null]);
}
if (this.end_time && pairs[pairs.length -1][0] < this.end_time) {
pairs.push([this.end_time, null]);
}

return pairs;
};

/**
Expand Down

0 comments on commit f5f7417

Please sign in to comment.