Problems: fix tags add/remove

This commit is contained in:
Alexander Zobnin
2020-05-08 15:11:55 +03:00
parent 0381d77519
commit 001d911282
3 changed files with 35 additions and 18 deletions

View File

@@ -456,8 +456,6 @@ export class ZabbixDatasource {
return problemsPromises.then(problems => { return problemsPromises.then(problems => {
const problemsDataFrame = problemsHandler.toDataFrame(problems); const problemsDataFrame = problemsHandler.toDataFrame(problems);
console.log(problems);
console.log(problemsDataFrame);
return problemsDataFrame; return problemsDataFrame;
}); });
} }

View File

@@ -1,10 +1,21 @@
import _ from 'lodash'; import _ from 'lodash';
import { getNextRefIdChar } from './utils'; import { getNextRefIdChar } from './utils';
import { getDefaultTarget } from './triggers_panel_ctrl';
// Actual schema version // Actual schema version
export const CURRENT_SCHEMA_VERSION = 8; export const CURRENT_SCHEMA_VERSION = 8;
export const getDefaultTarget = (targets?) => {
return {
group: {filter: ""},
host: {filter: ""},
application: {filter: ""},
trigger: {filter: ""},
tags: {filter: ""},
proxy: {filter: ""},
refId: getNextRefIdChar(targets),
};
};
export function getDefaultTargetOptions() { export function getDefaultTargetOptions() {
return { return {
hostsInMaintenance: true, hostsInMaintenance: true,
@@ -89,6 +100,7 @@ export function migratePanelSchema(panel) {
// set queryType to PROBLEMS // set queryType to PROBLEMS
target.queryType = 5; target.queryType = 5;
target.options = getDefaultTargetOptions(); target.options = getDefaultTargetOptions();
_.defaults(target, {tags: {filter: ""}});
} }
} }

View File

@@ -266,7 +266,8 @@ export class TriggerPanelCtrl extends MetricsPanelCtrl {
} }
addTagFilter(tag, datasource) { addTagFilter(tag, datasource) {
const target = this.panel.targets.find(t => t.datasource === datasource); for (const target of this.panel.targets) {
if (target.datasource === datasource || this.panel.datasource === datasource) {
let tagFilter = target.tags.filter; let tagFilter = target.tags.filter;
let targetTags = this.parseTags(tagFilter); let targetTags = this.parseTags(tagFilter);
let newTag = {tag: tag.tag, value: tag.value}; let newTag = {tag: tag.tag, value: tag.value};
@@ -274,17 +275,23 @@ export class TriggerPanelCtrl extends MetricsPanelCtrl {
targetTags = _.uniqWith(targetTags, _.isEqual); targetTags = _.uniqWith(targetTags, _.isEqual);
let newFilter = this.tagsToString(targetTags); let newFilter = this.tagsToString(targetTags);
target.tags.filter = newFilter; target.tags.filter = newFilter;
}
}
this.refresh(); this.refresh();
} }
removeTagFilter(tag, datasource) { removeTagFilter(tag, datasource) {
const target = this.panel.targets.find(t => t.datasource === datasource); const matchTag = t => t.tag === tag.tag && t.value === tag.value;
for (const target of this.panel.targets) {
if (target.datasource === datasource || this.panel.datasource === datasource) {
let tagFilter = target.tags.filter; let tagFilter = target.tags.filter;
let targetTags = this.parseTags(tagFilter); let targetTags = this.parseTags(tagFilter);
_.remove(targetTags, t => t.tag === tag.tag && t.value === tag.value); _.remove(targetTags, matchTag);
targetTags = _.uniqWith(targetTags, _.isEqual); targetTags = _.uniqWith(targetTags, _.isEqual);
let newFilter = this.tagsToString(targetTags); let newFilter = this.tagsToString(targetTags);
target.tags.filter = newFilter; target.tags.filter = newFilter;
}
}
this.refresh(); this.refresh();
} }