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

This commit is contained in:
kay delaney
2022-07-05 10:25:07 +01:00
committed by GitHub
parent 920bd1e88d
commit d4eef3bd76
4 changed files with 14 additions and 21 deletions

View File

@ -4532,8 +4532,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"],

View File

@ -253,24 +253,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);
});
});

View File

@ -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) {

View File

@ -976,7 +976,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 = {
@ -986,8 +986,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 };