diff --git a/src/datasource-zabbix/zabbixAPI.service.js b/src/datasource-zabbix/zabbixAPI.service.js
index df8bcf4..f8dd3f1 100644
--- a/src/datasource-zabbix/zabbixAPI.service.js
+++ b/src/datasource-zabbix/zabbixAPI.service.js
@@ -47,6 +47,7 @@ function ZabbixAPIService($q, alertSrv, zabbixAPICoreService) {
},
// Handle API errors
function(error) {
+ console.log('Zabbix error: '+error.data);
if (isNotAuthorized(error.data)) {
return self.loginOnce().then(
function() {
@@ -113,6 +114,13 @@ function ZabbixAPIService($q, alertSrv, zabbixAPICoreService) {
////////////////////////////////
// Zabbix API method wrappers //
////////////////////////////////
+ acknowledgeEvent(eventid,message){
+ var params = {
+ eventids:eventid,
+ message:message
+ };
+ return this.request('event.acknowledge',params);
+ }
getGroups() {
var params = {
diff --git a/src/panel-triggers/module.html b/src/panel-triggers/module.html
index fddc004..e16046e 100644
--- a/src/panel-triggers/module.html
+++ b/src/panel-triggers/module.html
@@ -94,6 +94,15 @@
{{ack.message}}
+
+ |
+ {{trigger.newAct.time}}
+ |
+
+ {{trigger.newAct.user}}
+ |
+ |
+
@@ -127,6 +136,14 @@
bs-tooltip="'Acknowledges ({{trigger.acknowledges.length}})'">
+
+
+
+
+
diff --git a/src/panel-triggers/module.js b/src/panel-triggers/module.js
index 7de6390..1d952c9 100644
--- a/src/panel-triggers/module.js
+++ b/src/panel-triggers/module.js
@@ -59,10 +59,11 @@ var defaultTimeFormat = "DD MMM YYYY HH:mm:ss";
class TriggerPanelCtrl extends MetricsPanelCtrl {
/** @ngInject */
- constructor($scope, $injector, $q, $element, datasourceSrv, templateSrv) {
+ constructor($scope, $injector, $q, $element, datasourceSrv, templateSrv,contextSrv) {
super($scope, $injector);
this.datasourceSrv = datasourceSrv;
this.templateSrv = templateSrv;
+ this.contextSrv = contextSrv;
this.triggerStatusMap = triggerStatusMap;
this.defaultTimeFormat = defaultTimeFormat;
@@ -227,6 +228,41 @@ class TriggerPanelCtrl extends MetricsPanelCtrl {
switchAcknowledges(trigger) {
trigger.showAcknowledges = !trigger.showAcknowledges;
}
+ addAcknowledgeMessage(trigger){
+ trigger.showAcknowledges = true;
+ trigger.newAct={
+ time:new Date(),
+ user:this.contextSrv.user.name+'(Grafana)',
+ eventid:trigger.lastEvent.eventid,
+ message:''
+ };
+ }
+ acknowledgeTrigger($event,trigger,newAct){
+ if($event.keyCode!=13) return;
+ if(newAct.message.trim() === ""){
+ delete trigger.newAct;
+ trigger.showAcknowledges = false;
+ return;
+ }
+ this.datasourceSrv.get(this.panel.datasource).then(datasource => {
+ var zabbix = datasource.zabbixAPI;
+ zabbix.acknowledgeEvent(newAct.eventid,newAct.user+': '+newAct.message)
+ .then(rs=>{
+ zabbix.getAcknowledges(rs.eventids).then(events => {
+ _.each(events, event => {
+ trigger.acknowledges = _.map(event.acknowledges, ack => {
+ var time = new Date(+ack.clock * 1000);
+ ack.time = time.toLocaleString();
+ ack.user = ack.alias + ' (' + ack.name + ' ' + ack.surname + ')';
+ return ack;
+ });
+ });
+ delete trigger.newAct;
+ console.log('event id '+ rs.eventids.join() + ' new message added: ' + ack.message );
+ });
+ });
+ });
+ }
}
TriggerPanelCtrl.templateUrl = 'panel-triggers/module.html';