Skip to content

Commit

Permalink
Problems: add ack field to table view, closes #946
Browse files Browse the repository at this point in the history
  • Loading branch information
alexanderzobnin committed May 18, 2020
1 parent 0df9023 commit 4f92024
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 3 deletions.
6 changes: 4 additions & 2 deletions src/panel-triggers/components/FAIcon.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ interface FAIconProps {
customClass?: string;
}

export default function FAIcon(props: FAIconProps) {
export const FAIcon: React.FC<FAIconProps> = (props: FAIconProps) => {
return (
<span className={`fa-icon-container ${props.customClass || ''}`}>
<i className={`fa fa-${props.icon}`}></i>
</span>
);
}
};

export default FAIcon;
34 changes: 34 additions & 0 deletions src/panel-triggers/components/Problems/AckCell.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import React from 'react';
import { css } from 'emotion';
import { RTCell } from '../../types';
import { ProblemDTO } from '../../../datasource-zabbix/types';
import { FAIcon } from '../FAIcon';
import { useTheme, stylesFactory } from '@grafana/ui';
import { GrafanaTheme } from '@grafana/data';

const getStyles = stylesFactory((theme: GrafanaTheme) => {
return {
countLabel: css`
font-size: ${theme.typography.size.sm};
`,
};
});

export const AckCell: React.FC<RTCell<ProblemDTO>> = (props: RTCell<ProblemDTO>) => {
const problem = props.original;
const theme = useTheme();
const styles = getStyles(theme);

return (
<div>
{problem.acknowledges?.length > 0 &&
<>
<FAIcon icon="comments" />
<span className={styles.countLabel}> ({problem.acknowledges?.length})</span>
</>
}
</div>
);
};

export default AckCell;
7 changes: 6 additions & 1 deletion src/panel-triggers/components/Problems/Problems.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ import { AckProblemData } from '../Modal';
import GFHeartIcon from '../GFHeartIcon';
import { ProblemsPanelOptions, GFTimeRange, RTCell, TriggerSeverity, RTResized } from '../../types';
import { ProblemDTO, ZBXEvent, ZBXTag, ZBXAlert } from '../../../datasource-zabbix/types';
import FAIcon from '../FAIcon';
import { FAIcon } from '../FAIcon';
import { AckCell } from './AckCell';

export interface ProblemListProps {
problems: ProblemDTO[];
Expand Down Expand Up @@ -110,6 +111,10 @@ export default class ProblemList extends PureComponent<ProblemListProps, Problem
},
{ Header: 'Status', accessor: 'value', show: options.statusField, width: 100, Cell: statusCell },
{ Header: 'Problem', accessor: 'description', minWidth: 200, Cell: ProblemCell},
{
Header: 'Ack', id: 'ack', show: options.ackField, width: 70,
Cell: props => <AckCell {...props} />
},
{
Header: 'Tags', accessor: 'tags', show: options.showTags, className: 'problem-tags',
Cell: props => <TagCell {...props} onTagClick={this.handleTagClick} />
Expand Down
6 changes: 6 additions & 0 deletions src/panel-triggers/partials/options_tab.html
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ <h5 class="section-heading">Fields</h5>
checked="ctrl.panel.severityField"
on-change="ctrl.render()">
</gf-form-switch>
<gf-form-switch class="gf-form"
label-class="width-9"
label="Ack"
checked="ctrl.panel.ackField"
on-change="ctrl.render()">
</gf-form-switch>
<gf-form-switch class="gf-form"
label-class="width-9"
label="Age"
Expand Down
1 change: 1 addition & 0 deletions src/panel-triggers/triggers_panel_ctrl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ export const PANEL_DEFAULTS = {
statusField: true,
statusIcon: false,
severityField: true,
ackField: true,
ageField: false,
descriptionField: true,
descriptionAtNewLine: false,
Expand Down
1 change: 1 addition & 0 deletions src/panel-triggers/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export interface ProblemsPanelOptions {
statusField?: boolean;
statusIcon?: boolean;
severityField?: boolean;
ackField?: boolean;
ageField?: boolean;
descriptionField?: boolean;
descriptionAtNewLine?: boolean;
Expand Down

0 comments on commit 4f92024

Please sign in to comment.