triggers panel: fix event acknowlenges

This commit is contained in:
Alexander Zobnin
2017-12-11 12:52:58 +03:00
parent 087a4de9a0
commit 1abe858c61
5 changed files with 38 additions and 13 deletions

View File

@@ -50,7 +50,7 @@
<i class="fa fa-question-circle"></i>
</span>
<ack-tooltip ack="trigger.acknowledges" trigger="trigger"
<ack-tooltip ng-if="trigger.lastEvent" ack="trigger.acknowledges" trigger="trigger"
on-ack="ctrl.acknowledgeTrigger" context="ctrl">
</ack-tooltip>
</div>

View File

@@ -246,6 +246,10 @@ export class TriggerPanelCtrl extends PanelCtrl {
return ack;
});
}
if (!trigger.lastEvent.eventid) {
trigger.lastEvent = null;
}
});
return triggerList;
@@ -353,15 +357,23 @@ export class TriggerPanelCtrl extends PanelCtrl {
}
acknowledgeTrigger(trigger, message) {
let eventid = trigger.lastEvent.eventid;
let eventid = trigger.lastEvent ? trigger.lastEvent.eventid : null;
let grafana_user = this.contextSrv.user.name;
let ack_message = grafana_user + ' (Grafana): ' + message;
return this.datasourceSrv.get(this.panel.datasource)
return this.datasourceSrv.get(trigger.datasource)
.then(datasource => {
let zabbixAPI = datasource.zabbix.zabbixAPI;
return zabbixAPI.acknowledgeEvent(eventid, ack_message);
if (eventid) {
return datasource.zabbix.zabbixAPI.acknowledgeEvent(eventid, ack_message);
} else {
return Promise.reject({message: 'Trigger has no events. Nothing to acknowledge.'});
}
})
.then(this.onRefresh.bind(this));
.then(this.onRefresh.bind(this))
.catch((err) => {
this.error = err.message || "Acknowledge Error";
this.events.emit('data-error', err);
console.log('Panel data error:', err);
});
}
getCurrentTriggersPage() {