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> <i class="fa fa-question-circle"></i>
</span> </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"> on-ack="ctrl.acknowledgeTrigger" context="ctrl">
</ack-tooltip> </ack-tooltip>
</div> </div>

View File

@@ -369,6 +369,10 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
return ack; return ack;
}); });
} }
if (!trigger.lastEvent.eventid) {
trigger.lastEvent = null;
}
}); });
return triggerList; return triggerList;
@@ -487,13 +491,22 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
}, { }, {
key: 'acknowledgeTrigger', key: 'acknowledgeTrigger',
value: function acknowledgeTrigger(trigger, message) { value: function acknowledgeTrigger(trigger, message) {
var eventid = trigger.lastEvent.eventid; var _this8 = this;
var eventid = trigger.lastEvent ? trigger.lastEvent.eventid : null;
var grafana_user = this.contextSrv.user.name; var grafana_user = this.contextSrv.user.name;
var ack_message = grafana_user + ' (Grafana): ' + message; var ack_message = grafana_user + ' (Grafana): ' + message;
return this.datasourceSrv.get(this.panel.datasource).then(function (datasource) { return this.datasourceSrv.get(trigger.datasource).then(function (datasource) {
var zabbixAPI = datasource.zabbix.zabbixAPI; if (eventid) {
return zabbixAPI.acknowledgeEvent(eventid, ack_message); return datasource.zabbix.zabbixAPI.acknowledgeEvent(eventid, ack_message);
}).then(this.onRefresh.bind(this)); } else {
return Promise.reject({ message: 'Trigger has no events. Nothing to acknowledge.' });
}
}).then(this.onRefresh.bind(this)).catch(function (err) {
_this8.error = err.message || "Acknowledge Error";
_this8.events.emit('data-error', err);
console.log('Panel data error:', err);
});
} }
}, { }, {
key: 'getCurrentTriggersPage', key: 'getCurrentTriggersPage',

File diff suppressed because one or more lines are too long

View File

@@ -50,7 +50,7 @@
<i class="fa fa-question-circle"></i> <i class="fa fa-question-circle"></i>
</span> </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"> on-ack="ctrl.acknowledgeTrigger" context="ctrl">
</ack-tooltip> </ack-tooltip>
</div> </div>

View File

@@ -246,6 +246,10 @@ export class TriggerPanelCtrl extends PanelCtrl {
return ack; return ack;
}); });
} }
if (!trigger.lastEvent.eventid) {
trigger.lastEvent = null;
}
}); });
return triggerList; return triggerList;
@@ -353,15 +357,23 @@ export class TriggerPanelCtrl extends PanelCtrl {
} }
acknowledgeTrigger(trigger, message) { acknowledgeTrigger(trigger, message) {
let eventid = trigger.lastEvent.eventid; let eventid = trigger.lastEvent ? trigger.lastEvent.eventid : null;
let grafana_user = this.contextSrv.user.name; let grafana_user = this.contextSrv.user.name;
let ack_message = grafana_user + ' (Grafana): ' + message; let ack_message = grafana_user + ' (Grafana): ' + message;
return this.datasourceSrv.get(this.panel.datasource) return this.datasourceSrv.get(trigger.datasource)
.then(datasource => { .then(datasource => {
let zabbixAPI = datasource.zabbix.zabbixAPI; if (eventid) {
return zabbixAPI.acknowledgeEvent(eventid, ack_message); 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() { getCurrentTriggersPage() {