diff --git a/CHANGELOG.md b/CHANGELOG.md index bf6ad182113..c0c8fe29f18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ vNext - Series names and column name typeahead cache fix (Fixes #522) - Fixed influxdb issue with raw query that caused wrong value column detection (Fixes #504) - Default property that marks which datasource is default in config.js is now optional (Fixes #526) +- Auto-refresh caused 2 refreshes (and hence mulitple queries) each time (at least in firefox) (Fixes #342) # 1.6.0 (2014-06-16) diff --git a/src/app/services/dashboard.js b/src/app/services/dashboard.js index a6faac89906..a12a8ad5aa1 100644 --- a/src/app/services/dashboard.js +++ b/src/app/services/dashboard.js @@ -445,20 +445,28 @@ function (angular, $, kbn, _, config, moment, Modernizr) { }); }; + this.start_scheduled_refresh = function (after_ms) { + this.cancel_scheduled_refresh(); + self.refresh_timer = timer.register($timeout(function () { + self.start_scheduled_refresh(after_ms); + self.refresh(); + }, after_ms)); + }; + + this.cancel_scheduled_refresh = function () { + timer.cancel(self.refresh_timer); + }; + this.set_interval = function (interval) { self.current.refresh = interval; - if(interval) { + if (interval) { var _i = kbn.interval_to_ms(interval); - timer.cancel(self.refresh_timer); - self.refresh_timer = timer.register($timeout(function() { - self.set_interval(interval); - self.refresh(); - },_i)); - self.refresh(); + this.start_scheduled_refresh(_i); } else { - timer.cancel(self.refresh_timer); + this.cancel_scheduled_refresh(); } }; + }); });