mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Dashboards: Fixes issue where panels would not refresh if time range updated while in panel view mode (#83418)
This commit is contained in:
parent
d6eefc7303
commit
a8574226bb
@ -90,7 +90,7 @@ export class DashboardModel implements TimeModel {
|
||||
private panelsAffectedByVariableChange: number[] | null;
|
||||
private appEventsSubscription: Subscription;
|
||||
private lastRefresh: number;
|
||||
private timeRangeUpdatedDuringEdit = false;
|
||||
private timeRangeUpdatedDuringEditOrView = false;
|
||||
private originalDashboard: Dashboard | null = null;
|
||||
|
||||
// ------------------
|
||||
@ -426,8 +426,8 @@ export class DashboardModel implements TimeModel {
|
||||
this.events.publish(new TimeRangeUpdatedEvent(timeRange));
|
||||
dispatch(onTimeRangeUpdated(this.uid, timeRange));
|
||||
|
||||
if (this.panelInEdit) {
|
||||
this.timeRangeUpdatedDuringEdit = true;
|
||||
if (this.panelInEdit || this.panelInView) {
|
||||
this.timeRangeUpdatedDuringEditOrView = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -469,7 +469,7 @@ export class DashboardModel implements TimeModel {
|
||||
initEditPanel(sourcePanel: PanelModel): PanelModel {
|
||||
getTimeSrv().stopAutoRefresh();
|
||||
this.panelInEdit = sourcePanel.getEditClone();
|
||||
this.timeRangeUpdatedDuringEdit = false;
|
||||
this.timeRangeUpdatedDuringEditOrView = false;
|
||||
return this.panelInEdit;
|
||||
}
|
||||
|
||||
@ -479,34 +479,30 @@ export class DashboardModel implements TimeModel {
|
||||
|
||||
getTimeSrv().resumeAutoRefresh();
|
||||
|
||||
if (this.panelsAffectedByVariableChange || this.timeRangeUpdatedDuringEdit) {
|
||||
this.startRefresh({
|
||||
panelIds: this.panelsAffectedByVariableChange ?? [],
|
||||
refreshAll: this.timeRangeUpdatedDuringEdit,
|
||||
});
|
||||
this.panelsAffectedByVariableChange = null;
|
||||
this.timeRangeUpdatedDuringEdit = false;
|
||||
}
|
||||
this.refreshIfPanelsAffectedByVariableChangeOrTimeRangeChanged();
|
||||
}
|
||||
|
||||
initViewPanel(panel: PanelModel) {
|
||||
this.panelInView = panel;
|
||||
this.timeRangeUpdatedDuringEditOrView = false;
|
||||
panel.setIsViewing(true);
|
||||
}
|
||||
|
||||
exitViewPanel(panel: PanelModel) {
|
||||
this.panelInView = undefined;
|
||||
panel.setIsViewing(false);
|
||||
this.refreshIfPanelsAffectedByVariableChange();
|
||||
this.refreshIfPanelsAffectedByVariableChangeOrTimeRangeChanged();
|
||||
}
|
||||
|
||||
private refreshIfPanelsAffectedByVariableChange() {
|
||||
if (!this.panelsAffectedByVariableChange) {
|
||||
return;
|
||||
private refreshIfPanelsAffectedByVariableChangeOrTimeRangeChanged() {
|
||||
if (this.panelsAffectedByVariableChange || this.timeRangeUpdatedDuringEditOrView) {
|
||||
this.startRefresh({
|
||||
panelIds: this.panelsAffectedByVariableChange ?? [],
|
||||
refreshAll: this.timeRangeUpdatedDuringEditOrView,
|
||||
});
|
||||
this.panelsAffectedByVariableChange = null;
|
||||
this.timeRangeUpdatedDuringEditOrView = false;
|
||||
}
|
||||
|
||||
this.startRefresh({ panelIds: this.panelsAffectedByVariableChange, refreshAll: false });
|
||||
this.panelsAffectedByVariableChange = null;
|
||||
}
|
||||
|
||||
private ensurePanelsHaveUniqueIds() {
|
||||
|
Loading…
Reference in New Issue
Block a user