TimeSrv: Don't modify refresh interval when editing panel (#51718) (#51732)

(cherry picked from commit d4eef3bd76)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
This commit is contained in:
Grot (@grafanabot)
2022-07-05 05:40:49 -04:00
committed by GitHub
co-authored by kay delaney
parent 5860091328
commit d45e8fd6e7
4 changed files with 14 additions and 21 deletions
+1 -2
View File
@@ -4697,8 +4697,7 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "2"],
[0, 0, 0, "Unexpected any. Specify a different type.", "3"],
[0, 0, 0, "Unexpected any. Specify a different type.", "4"],
[0, 0, 0, "Unexpected any. Specify a different type.", "5"],
[0, 0, 0, "Unexpected any. Specify a different type.", "6"]
[0, 0, 0, "Unexpected any. Specify a different type.", "5"]
],
"public/app/features/dashboard/state/DashboardMigrator.test.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
@@ -255,24 +255,18 @@ describe('timeSrv', () => {
});
describe('pauseAutoRefresh', () => {
it('should set refresh to empty value', () => {
it('should set autoRefreshPaused to true', () => {
_dashboard.refresh = '10s';
timeSrv.pauseAutoRefresh();
expect(_dashboard.refresh).toBe('');
});
it('should set previousAutoRefresh value', () => {
_dashboard.refresh = '10s';
timeSrv.pauseAutoRefresh();
expect(timeSrv.previousAutoRefresh).toBe('10s');
expect(timeSrv.autoRefreshPaused).toBe(true);
});
});
describe('resumeAutoRefresh', () => {
it('should set refresh to empty value', () => {
timeSrv.previousAutoRefresh = '10s';
timeSrv.autoRefreshPaused = true;
timeSrv.resumeAutoRefresh();
expect(_dashboard.refresh).toBe('10s');
expect(timeSrv.autoRefreshPaused).toBe(false);
});
});
@@ -24,7 +24,7 @@ export class TimeSrv {
time: any;
refreshTimer: any;
refresh: any;
previousAutoRefresh: any;
autoRefreshPaused = false;
oldRefresh: string | null | undefined;
timeModel?: TimeModel;
timeAtLoad: any;
@@ -232,7 +232,7 @@ export class TimeSrv {
this.refreshTimer = setTimeout(() => {
this.startNextRefreshTimer(intervalMs);
this.refreshTimeModel();
!this.autoRefreshPaused && this.refreshTimeModel();
}, intervalMs);
const refresh = this.contextSrv.getValidInterval(interval);
@@ -250,7 +250,7 @@ export class TimeSrv {
this.refreshTimer = setTimeout(() => {
this.startNextRefreshTimer(afterMs);
if (this.contextSrv.isGrafanaVisible()) {
this.refreshTimeModel();
!this.autoRefreshPaused && this.refreshTimeModel();
} else {
this.autoRefreshBlocked = true;
}
@@ -264,13 +264,13 @@ export class TimeSrv {
// store timeModel refresh value and pause auto-refresh in some places
// i.e panel edit
pauseAutoRefresh() {
this.previousAutoRefresh = this.timeModel?.refresh;
this.setAutoRefresh('');
this.autoRefreshPaused = true;
}
// resume auto-refresh based on old dashboard refresh property
resumeAutoRefresh() {
this.setAutoRefresh(this.previousAutoRefresh);
this.autoRefreshPaused = false;
this.refreshTimeModel();
}
setTime(time: RawTimeRange, updateUrl = true) {
@@ -977,7 +977,7 @@ describe('exitViewPanel', () => {
});
describe('exitPanelEditor', () => {
function getTestContext(setPreviousAutoRefresh = false) {
function getTestContext(pauseAutoRefresh = false) {
const panel: any = { destroy: jest.fn() };
const dashboard = new DashboardModel({});
const timeSrvMock = {
@@ -987,8 +987,8 @@ describe('exitPanelEditor', () => {
} as unknown as TimeSrv;
dashboard.startRefresh = jest.fn();
dashboard.panelInEdit = panel;
if (setPreviousAutoRefresh) {
timeSrvMock.previousAutoRefresh = '5s';
if (pauseAutoRefresh) {
timeSrvMock.autoRefreshPaused = true;
}
setTimeSrv(timeSrvMock);
return { dashboard, panel, timeSrvMock };