Add tag filter by click at trigger tag icon, #487

This commit is contained in:
Alexander Zobnin
2017-12-16 14:39:53 +03:00
parent 401ad69687
commit b7dab30a74
5 changed files with 36 additions and 3 deletions

View File

@@ -18,7 +18,8 @@
</span>
<span class="zbx-trigger-tags" ng-if="ctrl.panel.showTags && trigger.tags">
<span ng-repeat="tag in trigger.tags" tag-color-from-name="tag.tag+tag.value" class="label label-tag zbx-tag">
<span ng-repeat="tag in trigger.tags" ng-click="ctrl.addTagFilter(tag, trigger.datasource)"
tag-color-from-name="tag.tag+tag.value" class="label label-tag zbx-tag">
{{tag.tag}}: {{tag.value}}
</span>
</span>

View File

@@ -548,6 +548,10 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
}, {
key: 'parseTags',
value: function parseTags(tagStr) {
if (!tagStr) {
return [];
}
var tags = _.map(tagStr.split(','), function (tag) {
return tag.trim();
});
@@ -564,6 +568,18 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
return tag.tag + ':' + tag.value;
}).join(', ');
}
}, {
key: 'addTagFilter',
value: function addTagFilter(tag, ds) {
var tagFilter = this.panel.targets[ds].tags.filter;
var targetTags = this.parseTags(tagFilter);
var newTag = { tag: tag.tag, value: tag.value };
targetTags.push(newTag);
targetTags = _.uniqWith(targetTags, _.isEqual);
var newFilter = this.tagsToString(targetTags);
this.panel.targets[ds].tags.filter = newFilter;
this.refresh();
}
}, {
key: 'switchComment',
value: function switchComment(trigger) {

File diff suppressed because one or more lines are too long

View File

@@ -18,7 +18,8 @@
</span>
<span class="zbx-trigger-tags" ng-if="ctrl.panel.showTags && trigger.tags">
<span ng-repeat="tag in trigger.tags" tag-color-from-name="tag.tag+tag.value" class="label label-tag zbx-tag">
<span ng-repeat="tag in trigger.tags" ng-click="ctrl.addTagFilter(tag, trigger.datasource)"
tag-color-from-name="tag.tag+tag.value" class="label label-tag zbx-tag">
{{tag.tag}}: {{tag.value}}
</span>
</span>

View File

@@ -408,6 +408,10 @@ export class TriggerPanelCtrl extends PanelCtrl {
}
parseTags(tagStr) {
if (!tagStr) {
return [];
}
let tags = _.map(tagStr.split(','), (tag) => tag.trim());
tags = _.map(tags, (tag) => {
const tagParts = tag.split(':');
@@ -420,6 +424,17 @@ export class TriggerPanelCtrl extends PanelCtrl {
return _.map(tags, (tag) => `${tag.tag}:${tag.value}`).join(', ');
}
addTagFilter(tag, ds) {
let tagFilter = this.panel.targets[ds].tags.filter;
let targetTags = this.parseTags(tagFilter);
let newTag = {tag: tag.tag, value: tag.value};
targetTags.push(newTag);
targetTags = _.uniqWith(targetTags, _.isEqual);
let newFilter = this.tagsToString(targetTags);
this.panel.targets[ds].tags.filter = newFilter;
this.refresh();
}
switchComment(trigger) {
trigger.showComment = !trigger.showComment;
}