AngularPanels: Fixed loading state indication for angular panels (#17900)

pull/17909/head
Torkel Ödegaard 6 years ago committed by GitHub
parent 98147fd52b
commit b1126cb0ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2213
      devenv/dev-dashboards/panel-common/lazy_loading.json
  2. 26
      public/app/features/panel/metrics_panel_ctrl.ts

File diff suppressed because it is too large Load Diff

@ -89,16 +89,13 @@ class MetricsPanelCtrl extends PanelCtrl {
this.loading = true;
// load datasource service
return (
this.datasourceSrv
.get(this.panel.datasource, this.panel.scopedVars)
.then(this.updateTimeRange.bind(this))
.then(this.issueQueries.bind(this))
// NOTE handleQueryResult is called by panelDataObserver
.catch((err: any) => {
this.processDataError(err);
})
);
return this.datasourceSrv
.get(this.panel.datasource, this.panel.scopedVars)
.then(this.updateTimeRange.bind(this))
.then(this.issueQueries.bind(this))
.catch((err: any) => {
this.processDataError(err);
});
}
processDataError(err: any) {
@ -134,7 +131,11 @@ class MetricsPanelCtrl extends PanelCtrl {
return;
}
this.loading = false;
// Ignore data in loading state
if (data.state === LoadingState.Loading) {
this.loading = true;
return;
}
if (data.request) {
const { range, timeInfo } = data.request;
@ -223,12 +224,9 @@ class MetricsPanelCtrl extends PanelCtrl {
}
handleDataFrame(data: DataFrame[]) {
this.loading = false;
if (this.dashboard && this.dashboard.snapshot) {
this.panel.snapshotData = data;
}
// Subclasses that asked for DataFrame will override
}

Loading…
Cancel
Save