Problems: fix re-rendering

This commit is contained in:
Alexander Zobnin
2020-05-13 18:58:54 +03:00
parent 413bf583d6
commit 8c149e0b95
2 changed files with 10 additions and 10 deletions

View File

@@ -89,7 +89,7 @@
<select class="gf-form-input" <select class="gf-form-input"
ng-model="ctrl.panel.sortProblems" ng-model="ctrl.panel.sortProblems"
ng-options="f.value as f.text for f in editor.sortingOptions" ng-options="f.value as f.text for f in editor.sortingOptions"
ng-change="ctrl.render()"> ng-change="ctrl.reRenderProblems()">
</select> </select>
</div> </div>
</div> </div>
@@ -187,7 +187,7 @@
label-class="width-0" label-class="width-0"
label="Show" label="Show"
checked="trigger.show" checked="trigger.show"
on-change="ctrl.refresh()"> on-change="ctrl.reRenderProblems()">
</gf-form-switch> </gf-form-switch>
</div> </div>
@@ -209,7 +209,7 @@
label-class="width-0" label-class="width-0"
label="Show" label="Show"
checked="ctrl.panel.markAckEvents" checked="ctrl.panel.markAckEvents"
on-change="ctrl.refresh()"> on-change="ctrl.reRenderProblems()">
</gf-form-switch> </gf-form-switch>
</div> </div>
<div class="gf-form-inline"> <div class="gf-form-inline">

View File

@@ -82,6 +82,7 @@ export class TriggerPanelCtrl extends MetricsPanelCtrl {
defaultTimeFormat: string; defaultTimeFormat: string;
pageIndex: number; pageIndex: number;
renderData: any[]; renderData: any[];
problems: any[];
contextSrv: any; contextSrv: any;
static templateUrl: string; static templateUrl: string;
@@ -103,7 +104,7 @@ export class TriggerPanelCtrl extends MetricsPanelCtrl {
this.panel = migratePanelSchema(this.panel); this.panel = migratePanelSchema(this.panel);
_.defaultsDeep(this.panel, _.cloneDeep(PANEL_DEFAULTS)); _.defaultsDeep(this.panel, _.cloneDeep(PANEL_DEFAULTS));
this.events.on(PanelEvents.render, this.onRender.bind(this)); // this.events.on(PanelEvents.render, this.onRender.bind(this));
this.events.on('data-frames-received', this.onDataFramesReceived.bind(this)); this.events.on('data-frames-received', this.onDataFramesReceived.bind(this));
this.events.on(PanelEvents.dataSnapshotLoad, this.onDataSnapshotLoad.bind(this)); this.events.on(PanelEvents.dataSnapshotLoad, this.onDataSnapshotLoad.bind(this));
this.events.on(PanelEvents.editModeInitialized, this.onInitEditMode.bind(this)); this.events.on(PanelEvents.editModeInitialized, this.onInitEditMode.bind(this));
@@ -116,6 +117,7 @@ export class TriggerPanelCtrl extends MetricsPanelCtrl {
} }
onDataFramesReceived(data: any): Promise<any> { onDataFramesReceived(data: any): Promise<any> {
this.range = this.timeSrv.timeRange();
let problems = []; let problems = [];
if (data && data.length) { if (data && data.length) {
@@ -137,6 +139,7 @@ export class TriggerPanelCtrl extends MetricsPanelCtrl {
this.loading = false; this.loading = false;
problems = _.flatten(problems); problems = _.flatten(problems);
this.problems = problems;
return this.renderProblems(problems); return this.renderProblems(problems);
} }
@@ -144,10 +147,9 @@ export class TriggerPanelCtrl extends MetricsPanelCtrl {
return this.onDataFramesReceived(snapshotData); return this.onDataFramesReceived(snapshotData);
} }
onRender() { reRenderProblems() {
this.range = this.timeSrv.timeRange(); if (this.problems) {
if (this.renderData) { this.renderProblems(this.problems);
this.renderProblems(this.renderData);
} }
} }
@@ -432,9 +434,7 @@ export class TriggerPanelCtrl extends MetricsPanelCtrl {
link(scope, elem, attrs, ctrl) { link(scope, elem, attrs, ctrl) {
const panel = ctrl.panel; const panel = ctrl.panel;
// let problems = ctrl.problems;
// scope.$watchGroup(['ctrl.renderData'], renderPanel);
ctrl.events.on(PanelEvents.render, (renderData) => { ctrl.events.on(PanelEvents.render, (renderData) => {
renderData = renderData || this.renderData; renderData = renderData || this.renderData;
renderPanel(renderData); renderPanel(renderData);