diff --git a/lib/cartodb/models/dataview/histograms/base-histogram.js b/lib/cartodb/models/dataview/histograms/base-histogram.js index 2089e0c5..9b3f3759 100644 --- a/lib/cartodb/models/dataview/histograms/base-histogram.js +++ b/lib/cartodb/models/dataview/histograms/base-histogram.js @@ -59,17 +59,23 @@ module.exports = class BaseHistogram extends BaseDataview { }); } + _hasOverridenRange (override) { + return override && override.hasOwnProperty('start') && override.hasOwnProperty('end'); + } + _getBinStart (override = {}) { - if (override.hasOwnProperty('start') && override.hasOwnProperty('end')) { + if (this._hasOverridenRange(override)) { return Math.min(override.start, override.end); } + return override.start || 0; } _getBinEnd (override = {}) { - if (override.hasOwnProperty('start') && override.hasOwnProperty('end')) { + if (this._hasOverridenRange(override)) { return Math.max(override.start, override.end); } + return override.end || 0; } diff --git a/lib/cartodb/models/dataview/histograms/date-histogram.js b/lib/cartodb/models/dataview/histograms/date-histogram.js index e4176146..8124f2db 100644 --- a/lib/cartodb/models/dataview/histograms/date-histogram.js +++ b/lib/cartodb/models/dataview/histograms/date-histogram.js @@ -177,9 +177,7 @@ module.exports = class DateHistogram extends BaseHistogram { _buildQueryTpl (ctx) { return ` WITH - ${ctx._override && ctx._override.hasOwnProperty('start') && ctx._override.hasOwnProperty('end') ? - dateOverrideBasicsQueryTpl(ctx) : - dateBasicsQueryTpl(ctx)}, + ${this._hasOverridenRange(ctx._override) ? dateOverrideBasicsQueryTpl(ctx) : dateBasicsQueryTpl(ctx)}, ${dateBinsQueryTpl(ctx)}, ${nullsQueryTpl(ctx)} ${dateHistogramQueryTpl(ctx)} diff --git a/lib/cartodb/models/dataview/histograms/numeric-histogram.js b/lib/cartodb/models/dataview/histograms/numeric-histogram.js index 7a562ec7..638d3f0a 100644 --- a/lib/cartodb/models/dataview/histograms/numeric-histogram.js +++ b/lib/cartodb/models/dataview/histograms/numeric-histogram.js @@ -186,8 +186,8 @@ module.exports = class NumericHistogram extends BaseHistogram { return ` WITH ${filteredQueryTpl(ctx)}, - ${this._shouldOverrideRange(ctx._override) ? overrideBasicsQueryTpl(ctx) : basicsQueryTpl(ctx)}, - ${this._shouldOverrideBins(ctx._override) ? + ${this._hasOverridenRange(ctx._override) ? overrideBasicsQueryTpl(ctx) : basicsQueryTpl(ctx)}, + ${this._hasOverridenBins(ctx._override) ? overrideBinsQueryTpl(ctx) : `${iqrQueryTpl(ctx)}, ${binsQueryTpl(ctx)}` }, @@ -197,11 +197,7 @@ module.exports = class NumericHistogram extends BaseHistogram { `; } - _shouldOverrideRange (override) { - return override && override.hasOwnProperty('start') && override.hasOwnProperty('end'); - } - - _shouldOverrideBins (override) { + _hasOverridenBins (override) { return override && override.hasOwnProperty('bins'); }