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 28, 2013
1 parent dfd5f1b commit 2846297
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 @@ -457,6 +457,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 @@ -474,7 +478,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 @@ -486,13 +490,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 @@ -502,7 +502,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 @@ -544,12 +544,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 2846297

Please sign in to comment.