From 347507b1480e8cda9ff1cbba1d4ce791588600d7 Mon Sep 17 00:00:00 2001 From: Eric Hulburd Date: Wed, 10 Feb 2016 19:07:37 -0600 Subject: [PATCH] leverage cash when no dates passed in --- client/dashboard/layout/layout.js | 1 - client/models/house.js | 2 ++ shared/utils/math.js | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/client/dashboard/layout/layout.js b/client/dashboard/layout/layout.js index 043519b..5c16cf9 100644 --- a/client/dashboard/layout/layout.js +++ b/client/dashboard/layout/layout.js @@ -61,7 +61,6 @@ var Layout = React.createClass({ request = house.ensureEnergyData(); } request.then(()=>{ - console.log('data retrieved') layout.setState({requesting_data: false}, ()=>{ console.log(layout.state.requesting_data); }); diff --git a/client/models/house.js b/client/models/house.js index c94a527..1fe1709 100644 --- a/client/models/house.js +++ b/client/models/house.js @@ -40,6 +40,7 @@ class House { } query_ranges = MathUtil.minusRange([opts.start_date, opts.end_date], [min_date, max_date]); + if (!query_ranges) return Promise.resolve(house.power_data); cache = ArrayUtil.selectMap(date_range, (datum_time)=>{ return ArrayUtil.all(query_ranges, (query_range)=>{ @@ -83,6 +84,7 @@ class House { if (date_range.length === 0) return house.getEnergyData({dates: [[opts.start_date, opts.end_date]]}) query_ranges = MathUtil.minusRange([opts.start_date, opts.end_date], [min_date, max_date]); + if (!query_ranges) return Promise.resolve(house.power_data); cache = ArrayUtil.selectMap(date_range, (datum_day)=>{ return ArrayUtil.all(query_ranges, (query_range)=>{ diff --git a/shared/utils/math.js b/shared/utils/math.js index ef78d36..b626ed1 100644 --- a/shared/utils/math.js +++ b/shared/utils/math.js @@ -12,6 +12,10 @@ export default class { // returns array of array length two, representing mins and maxes not within min_max2. static minusRange(min_max1, min_max2){ var minus = []; + + // return undefined if min_max1 not provided + if (!min_max1 || (!min_max1[0] && !min_max2[1])) return undefined; + if (min_max1[0] >= min_max2[0]){ if (min_max1[1] > min_max2[1]) minus.push([min_max2[1], min_max1[1]]); } else if (min_max1[1] <= min_max2[1]){