From f399f5b5c5d022b2f97add68f2832c296f6979f2 Mon Sep 17 00:00:00 2001 From: Boaz Leskes Date: Thu, 9 Jan 2014 15:16:05 +0100 Subject: [PATCH] refresh was called twice with every timer expiry Also unpacked dashboard.set_interval to simplify logic a bit. Note: set_interval used to call refresh() when called. This is un-expected when setting a long refresh interval. --- src/app/services/dashboard.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/app/services/dashboard.js b/src/app/services/dashboard.js index 6f7a3bbeb2283..d3690afa8b3be 100644 --- a/src/app/services/dashboard.js +++ b/src/app/services/dashboard.js @@ -488,18 +488,25 @@ function (angular, $, kbn, _, config, moment, Modernizr) { }); }; + this.start_scheduled_refresh = function (after_ms) { + timer.cancel(self.refresh_timer); + 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(); } };