fix event severity change (#872)
* fixed panel trigger severity if it is changed in event * fixed panel trigger severity if it is changed in event * fixed lastEvent check * removed a comment * fixed lastEvent check not empty
This commit is contained in:
@@ -3,7 +3,7 @@ import classNames from 'classnames';
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import { isNewProblem, formatLastChange } from '../../utils';
|
import { isNewProblem, formatLastChange } from '../../utils';
|
||||||
import { ProblemsPanelOptions, ZBXTrigger, ZBXTag } from '../../types';
|
import { ProblemsPanelOptions, ZBXTrigger, TriggerSeverity, ZBXTag } from '../../types';
|
||||||
import { AckProblemData, Modal } from '.././Modal';
|
import { AckProblemData, Modal } from '.././Modal';
|
||||||
import EventTag from '../EventTag';
|
import EventTag from '../EventTag';
|
||||||
import Tooltip from '.././Tooltip/Tooltip';
|
import Tooltip from '.././Tooltip/Tooltip';
|
||||||
@@ -59,7 +59,13 @@ export default class AlertCard extends PureComponent<AlertCardProps, AlertCardSt
|
|||||||
const showDatasourceName = panelOptions.targets && panelOptions.targets.length > 1;
|
const showDatasourceName = panelOptions.targets && panelOptions.targets.length > 1;
|
||||||
const cardClass = classNames('alert-rule-item', 'zbx-trigger-card', { 'zbx-trigger-highlighted': panelOptions.highlightBackground });
|
const cardClass = classNames('alert-rule-item', 'zbx-trigger-card', { 'zbx-trigger-highlighted': panelOptions.highlightBackground });
|
||||||
const descriptionClass = classNames('alert-rule-item__text', { 'zbx-description--newline': panelOptions.descriptionAtNewLine });
|
const descriptionClass = classNames('alert-rule-item__text', { 'zbx-description--newline': panelOptions.descriptionAtNewLine });
|
||||||
const severityDesc = _.find(panelOptions.triggerSeverity, s => s.priority === Number(problem.priority));
|
|
||||||
|
let severityDesc: TriggerSeverity;
|
||||||
|
severityDesc = _.find(panelOptions.triggerSeverity, s => s.priority === Number(problem.priority));
|
||||||
|
if (problem.lastEvent && problem.lastEvent.severity) {
|
||||||
|
severityDesc = _.find(panelOptions.triggerSeverity, s => s.priority === Number(problem.lastEvent.severity));
|
||||||
|
}
|
||||||
|
|
||||||
const lastchange = formatLastChange(problem.lastchangeUnix, panelOptions.customLastChangeFormat && panelOptions.lastChangeFormat);
|
const lastchange = formatLastChange(problem.lastchangeUnix, panelOptions.customLastChangeFormat && panelOptions.lastChangeFormat);
|
||||||
const age = moment.unix(problem.lastchangeUnix).fromNow(true);
|
const age = moment.unix(problem.lastchangeUnix).fromNow(true);
|
||||||
|
|
||||||
|
|||||||
@@ -179,7 +179,13 @@ export default class ProblemList extends PureComponent<ProblemListProps, Problem
|
|||||||
function SeverityCell(props: RTCell<ZBXTrigger>, problemSeverityDesc: TriggerSeverity[], markAckEvents?: boolean, ackEventColor?: string) {
|
function SeverityCell(props: RTCell<ZBXTrigger>, problemSeverityDesc: TriggerSeverity[], markAckEvents?: boolean, ackEventColor?: string) {
|
||||||
const problem = props.original;
|
const problem = props.original;
|
||||||
let color: string;
|
let color: string;
|
||||||
const severityDesc = _.find(problemSeverityDesc, s => s.priority === Number(props.original.priority));
|
|
||||||
|
let severityDesc: TriggerSeverity;
|
||||||
|
severityDesc = _.find(problemSeverityDesc, s => s.priority === Number(props.original.priority));
|
||||||
|
if (problem.lastEvent && problem.lastEvent.severity) {
|
||||||
|
severityDesc = _.find(problemSeverityDesc, s => s.priority === Number(problem.lastEvent.severity));
|
||||||
|
}
|
||||||
|
|
||||||
color = severityDesc.color;
|
color = severityDesc.color;
|
||||||
|
|
||||||
// Mark acknowledged triggers with different color
|
// Mark acknowledged triggers with different color
|
||||||
|
|||||||
@@ -398,7 +398,11 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
|
|
||||||
// Filter triggers by severity
|
// Filter triggers by severity
|
||||||
triggerList = _.filter(triggerList, trigger => {
|
triggerList = _.filter(triggerList, trigger => {
|
||||||
return this.panel.triggerSeverity[trigger.priority].show;
|
if (trigger.lastEvent && trigger.lastEvent.severity) {
|
||||||
|
return this.panel.triggerSeverity[trigger.lastEvent.severity].show;
|
||||||
|
} else {
|
||||||
|
return this.panel.triggerSeverity[trigger.priority].show;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return triggerList;
|
return triggerList;
|
||||||
|
|||||||
@@ -140,6 +140,7 @@ export interface ZBXEvent {
|
|||||||
object?: string;
|
object?: string;
|
||||||
objectid?: string;
|
objectid?: string;
|
||||||
acknowledged?: string;
|
acknowledged?: string;
|
||||||
|
severity?: string;
|
||||||
hosts?: ZBXHost[];
|
hosts?: ZBXHost[];
|
||||||
acknowledges?: ZBXAcknowledge[];
|
acknowledges?: ZBXAcknowledge[];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user