If earlier dashboard refresh was supressed, force a new one on page becoming visible (#8076)

This commit is contained in:
Simen Bekkhus 2017-04-10 09:43:35 +02:00 committed by Torkel Ödegaard
parent 41171f8a5c
commit 21ae987bcd

View File

@ -15,6 +15,7 @@ class TimeSrv {
oldRefresh: boolean; oldRefresh: boolean;
dashboard: any; dashboard: any;
timeAtLoad: any; timeAtLoad: any;
private autoRefreshBlocked: boolean;
/** @ngInject **/ /** @ngInject **/
constructor(private $rootScope, private $timeout, private $location, private timer, private contextSrv) { constructor(private $rootScope, private $timeout, private $location, private timer, private contextSrv) {
@ -23,6 +24,14 @@ class TimeSrv {
$rootScope.$on('zoom-out', this.zoomOut.bind(this)); $rootScope.$on('zoom-out', this.zoomOut.bind(this));
$rootScope.$on('$routeUpdate', this.routeUpdated.bind(this)); $rootScope.$on('$routeUpdate', this.routeUpdated.bind(this));
document.addEventListener('visibilitychange', () => {
if (this.autoRefreshBlocked && document.visibilityState === 'visible') {
this.autoRefreshBlocked = false;
this.refreshDashboard();
}
});
} }
init(dashboard) { init(dashboard) {
@ -137,6 +146,8 @@ class TimeSrv {
this.startNextRefreshTimer(afterMs); this.startNextRefreshTimer(afterMs);
if (this.contextSrv.isGrafanaVisible()) { if (this.contextSrv.isGrafanaVisible()) {
this.refreshDashboard(); this.refreshDashboard();
} else {
this.autoRefreshBlocked = true;
} }
}, afterMs)); }, afterMs));
} }