Merge branch 'panel-triggers' into develop

This commit is contained in:
Alexander Zobnin
2016-03-28 20:20:25 +03:00
2 changed files with 31 additions and 16 deletions

View File

@@ -50,10 +50,10 @@
<div> <div>
{{trigger.description}} {{trigger.description}}
<a ng-if="trigger.comments" <a ng-if="trigger.comments"
role="button"
ng-click="ctrl.switchComment(trigger)"
class="pointer" class="pointer"
style="float: right; padding-right: 8px" style="float: right; padding-right: 8px"
data-toggle="collapse"
data-target="#comments-{{trigger.triggerid}}"
bs-tooltip="'Show additional trigger description'" bs-tooltip="'Show additional trigger description'"
data-placement="top"> data-placement="top">
<i class="fa fa-file-text-o"></i> <i class="fa fa-file-text-o"></i>
@@ -63,7 +63,7 @@
<!-- Trigger comments --> <!-- Trigger comments -->
<div class="collapse" <div class="collapse"
id="comments-{{trigger.triggerid}}" id="comments-{{trigger.triggerid}}"
ng-if="trigger.comments"> ng-if="trigger.showComment">
<div> <div>
<small>{{trigger.comments}}</small> <small>{{trigger.comments}}</small>
</div> </div>
@@ -72,7 +72,7 @@
<!-- Trigger acknowledges --> <!-- Trigger acknowledges -->
<div class="collapse" <div class="collapse"
id="acknowledges-{{trigger.triggerid}}" id="acknowledges-{{trigger.triggerid}}"
ng-if="trigger.acknowledges"> ng-if="trigger.showAcknowledges">
<div style="padding-top: 12px;"> <div style="padding-top: 12px;">
<table class="table table-condensed"> <table class="table table-condensed">
<thead> <thead>
@@ -122,9 +122,9 @@
<!-- Trigger acknowledges --> <!-- Trigger acknowledges -->
<a ng-if="trigger.acknowledges" <a ng-if="trigger.acknowledges"
bs-tooltip="'Acknowledges ({{trigger.acknowledges.length}})'" role="button"
data-toggle="collapse" ng-click="ctrl.switchAcknowledges(trigger)"
data-target="#acknowledges-{{trigger.triggerid}}"> bs-tooltip="'Acknowledges ({{trigger.acknowledges.length}})'">
<i class="fa fa-comments"></i> <i class="fa fa-comments"></i>
</a> </a>
</td> </td>

View File

@@ -13,7 +13,7 @@
import _ from 'lodash'; import _ from 'lodash';
import moment from 'moment'; import moment from 'moment';
import {PanelCtrl} from 'app/plugins/sdk'; import {MetricsPanelCtrl} from 'app/plugins/sdk';
import {triggerPanelEditor} from './editor'; import {triggerPanelEditor} from './editor';
import './css/panel_triggers.css!'; import './css/panel_triggers.css!';
@@ -45,7 +45,7 @@ var panelDefaults = {
sortTriggersBy: { text: 'last change', value: 'lastchange' }, sortTriggersBy: { text: 'last change', value: 'lastchange' },
showEvents: { text: 'Problem events', value: '1' }, showEvents: { text: 'Problem events', value: '1' },
triggerSeverity: defaultSeverity, triggerSeverity: defaultSeverity,
okEventColor: '#890F02', okEventColor: 'rgba(0, 245, 153, 0.45)',
}; };
var triggerStatusMap = { var triggerStatusMap = {
@@ -55,12 +55,13 @@ var triggerStatusMap = {
var defaultTimeFormat = "DD MMM YYYY HH:mm:ss"; var defaultTimeFormat = "DD MMM YYYY HH:mm:ss";
class TriggerPanelCtrl extends PanelCtrl { class TriggerPanelCtrl extends MetricsPanelCtrl {
/** @ngInject */ /** @ngInject */
constructor($scope, $injector, $q, $element, datasourceSrv) { constructor($scope, $injector, $q, $element, datasourceSrv, templateSrv) {
super($scope, $injector); super($scope, $injector);
this.datasourceSrv = datasourceSrv; this.datasourceSrv = datasourceSrv;
this.templateSrv = templateSrv;
this.triggerStatusMap = triggerStatusMap; this.triggerStatusMap = triggerStatusMap;
this.defaultTimeFormat = defaultTimeFormat; this.defaultTimeFormat = defaultTimeFormat;
@@ -73,9 +74,14 @@ class TriggerPanelCtrl extends PanelCtrl {
// Add panel editor // Add panel editor
initEditMode() { initEditMode() {
super.initEditMode(); // Use initialize method from PanelCtrl instead MetricsPanelCtrl.
// We don't need metric editor from Metrics Panel.
this.editorTabs = [];
this.addEditorTab('General', 'public/app/partials/panelgeneral.html');
this.icon = "fa fa-lightbulb-o"; this.icon = "fa fa-lightbulb-o";
this.addEditorTab('Options', triggerPanelEditor, 2); this.addEditorTab('Options', triggerPanelEditor, 2);
this.editModeInitiated = true;
} }
refreshData() { refreshData() {
@@ -85,11 +91,12 @@ class TriggerPanelCtrl extends PanelCtrl {
return this.datasourceSrv.get(this.panel.datasource).then(datasource => { return this.datasourceSrv.get(this.panel.datasource).then(datasource => {
var zabbix = datasource.zabbixAPI; var zabbix = datasource.zabbixAPI;
var queryProcessor = datasource.queryProcessor; var queryProcessor = datasource.queryProcessor;
var triggerFilter = self.panel.triggers;
var showEvents = self.panel.showEvents.value; var showEvents = self.panel.showEvents.value;
var buildQuery = queryProcessor.buildTriggerQuery(triggerFilter.group.filter, var triggerFilter = self.panel.triggers;
triggerFilter.host.filter, var groupFilter = self.templateSrv.replace(triggerFilter.group.filter);
triggerFilter.application.filter); var hostFilter = self.templateSrv.replace(triggerFilter.host.filter);
var appFilter = self.templateSrv.replace(triggerFilter.application.filter);
var buildQuery = queryProcessor.buildTriggerQuery(groupFilter, hostFilter, appFilter);
return buildQuery.then(query => { return buildQuery.then(query => {
return zabbix.getTriggers(query.groupids, return zabbix.getTriggers(query.groupids,
query.hostids, query.hostids,
@@ -185,6 +192,14 @@ class TriggerPanelCtrl extends PanelCtrl {
}); });
}); });
} }
switchComment(trigger) {
trigger.showComment = !trigger.showComment;
}
switchAcknowledges(trigger) {
trigger.showAcknowledges = !trigger.showAcknowledges;
}
} }
TriggerPanelCtrl.templateUrl = 'module.html'; TriggerPanelCtrl.templateUrl = 'module.html';