-
-
- Description:
-
-
{problem.comments}
+ {problem.comments && (
+
+
+
+ Description:
+
+ {problem.comments}
+
+
+ )}
+ {problem.tags && problem.tags.length > 0 && (
+
+ {problem.tags &&
+ problem.tags.map((tag) => (
+
+ ))}
+
+ )}
+ {this.props.showTimeline && this.state.events.length > 0 && (
+
+ )}
+ {showAcknowledges && !wideLayout && (
+
+ )}
+
+ {showAcknowledges && wideLayout && (
+
- }
- {problem.tags && problem.tags.length > 0 &&
-
- {problem.tags && problem.tags.map(tag =>
- )
- }
-
- }
- {this.props.showTimeline && this.state.events.length > 0 &&
-
- }
- {showAcknowledges && !wideLayout &&
-
- }
-
- {showAcknowledges && wideLayout &&
-
-
+
{showName &&
{item.name}: }
{item.lastvalue}
@@ -252,10 +261,11 @@ interface ProblemItemsProps {
const ProblemItems: FC = ({ items }) => {
return (
- {items.length > 1 ?
- items.map(item =>
) :
-
- }
+ {items.length > 1 ? (
+ items.map((item) => )
+ ) : (
+
+ )}
);
};
@@ -267,9 +277,9 @@ interface ProblemGroupsProps {
class ProblemGroups extends PureComponent {
render() {
- return this.props.groups.map(g => (
+ return this.props.groups.map((g) => (
-
+
{g.name}
));
@@ -283,9 +293,9 @@ interface ProblemHostsProps {
class ProblemHosts extends PureComponent {
render() {
- return this.props.hosts.map(h => (
+ return this.props.hosts.map((h) => (
-
+
{h.name}
));
diff --git a/src/panel-triggers/components/Problems/ProblemStatusBar.tsx b/src/panel-triggers/components/Problems/ProblemStatusBar.tsx
index a58fbb7..2703cec 100644
--- a/src/panel-triggers/components/Problems/ProblemStatusBar.tsx
+++ b/src/panel-triggers/components/Problems/ProblemStatusBar.tsx
@@ -1,10 +1,10 @@
import React from 'react';
import { Tooltip } from '@grafana/ui';
import FAIcon from '../../../components/FAIcon/FAIcon';
-import { ZBXTrigger, ZBXAlert } from '../../types';
+import { ZBXAlert, ProblemDTO } from '../../../datasource-zabbix/types';
export interface ProblemStatusBarProps {
- problem: ZBXTrigger;
+ problem: ProblemDTO;
alerts?: ZBXAlert[];
className?: string;
}
@@ -26,7 +26,11 @@ export default function ProblemStatusBar(props: ProblemStatusBarProps) {
-
+
@@ -56,5 +60,11 @@ function ProblemStatusBarItem(props: ProblemStatusBarItemProps) {
);
}
- return link ?
{item} : item;
+ return link ? (
+
+ {item}
+
+ ) : (
+ item
+ );
}
diff --git a/src/panel-triggers/components/Problems/ProblemTimeline.tsx b/src/panel-triggers/components/Problems/ProblemTimeline.tsx
index 3270e1a..a71a4ff 100644
--- a/src/panel-triggers/components/Problems/ProblemTimeline.tsx
+++ b/src/panel-triggers/components/Problems/ProblemTimeline.tsx
@@ -1,7 +1,8 @@
import React, { PureComponent } from 'react';
import _ from 'lodash';
import moment from 'moment';
-import { GFTimeRange, ZBXEvent, ZBXAcknowledge } from '../../types';
+import { ZBXEvent, ZBXAcknowledge } from '../../../datasource-zabbix/types';
+import { TimeRange } from '@grafana/data';
const DEFAULT_OK_COLOR = 'rgb(56, 189, 113)';
const DEFAULT_PROBLEM_COLOR = 'rgb(215, 0, 0)';
@@ -12,7 +13,7 @@ const EVENT_REGION_HEIGHT = Math.round(EVENT_POINT_SIZE * 0.6);
export interface ProblemTimelineProps {
events: ZBXEvent[];
- timeRange: GFTimeRange;
+ timeRange: TimeRange;
okColor?: string;
problemColor?: string;
eventRegionHeight?: number;
@@ -51,7 +52,7 @@ export default class ProblemTimeline extends PureComponent
{
+ setRootRef = (ref) => {
this.rootRef = ref;
- const width = ref && ref.clientWidth || 0;
+ const width = (ref && ref.clientWidth) || 0;
this.setState({ width });
- }
+ };
handlePointHighlight = (index: number, secondIndex?: number) => {
const event: ZBXEvent = this.sortedEvents[index];
@@ -80,15 +81,15 @@ export default class ProblemTimeline extends PureComponent {
this.setState({ showEventInfo: false, highlightedRegion: null });
- }
+ };
handleAckHighlight = (ack: ZBXAcknowledge, index: number) => {
this.setState({
@@ -96,34 +97,34 @@ export default class ProblemTimeline extends PureComponent {
this.setState({ showEventInfo: false });
- }
+ };
showEventInfo = (event: ZBXEvent) => {
this.setState({ highlightedEvent: event, showEventInfo: true });
- }
+ };
hideEventInfo = () => {
this.setState({ showEventInfo: false });
- }
+ };
getRegionToHighlight = (index: number): number => {
const event = this.sortedEvents[index];
const regionToHighlight = event.value === '1' ? index + 1 : index;
return regionToHighlight;
- }
+ };
getEventDuration(firstIndex: number, secondIndex: number): number {
return Math.abs(Number(this.sortedEvents[firstIndex].clock) - Number(this.sortedEvents[secondIndex].clock)) * 1000;
}
sortEvents() {
- const events = _.sortBy(this.props.events, e => Number(e.clock));
+ const events = _.sortBy(this.props.events, (e) => Number(e.clock));
this.sortedEvents = events;
return events;
}
@@ -137,7 +138,7 @@ export default class ProblemTimeline extends PureComponent Number(ack.clock));
+ return _.sortBy(acks, (ack) => Number(ack.clock));
}
render() {
@@ -156,13 +157,14 @@ export default class ProblemTimeline extends PureComponent
-
+
+ />