Skip to content

Commit 216e87e

Browse files
LightOfHeaven1994red-hat-konflux
andauthored
feat(RHINENG-21983): Add 'Applies to OS' filter CVEs table (#2439)
Co-authored-by: red-hat-konflux <[email protected]>
1 parent d55c012 commit 216e87e

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

src/Components/SmartComponents/IoP/CveListTable.js

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import React, { Fragment, useRef, useState } from 'react';
22
import {
33
DeclarativeTable,
44
setupFilters,
5-
decodeRangeFilter
6-
} from '../../../Frameworks/DeclarativeTable';
7-
5+
decodeRangeFilter,
6+
hierarchyFilter
7+
} from 'declarative-table';
88
import {
99
BUSINESS_RISK_OPTIONS,
1010
DEFAULT_PAGE_SIZE,
@@ -45,6 +45,9 @@ import {
4545
import GroupedCVELabels from '../../PresentationalComponents/Snippets/GroupedCVELabels';
4646
import EditCveStatusModal from './EditCveStatusModal';
4747
import EditCveBusinessRiskModal from './EditCveBusinessRiskModal';
48+
import {
49+
convertOperatingSystemsToFilterGroupItems
50+
} from '../../PresentationalComponents/Filters/PrimaryToolbarFilters/AppliesToOSFilter';
4851

4952
const DEFAULT_PARAMS = {
5053
limit: DEFAULT_PAGE_SIZE,
@@ -80,6 +83,15 @@ const CveListTable = () => {
8083
enabled: areUrlParamsReady
8184
});
8285

86+
const { data: osVersionData } = useQuery({
87+
queryKey: ['OsVersions'],
88+
queryFn: () => axios.get(`${envContext.apiPaths.inventory}/system_profile/operating_system`),
89+
initialData: { data: { results: [] } }
90+
});
91+
92+
const osVersionFilterItems =
93+
convertOperatingSystemsToFilterGroupItems(osVersionData.data.results.map(version => version.value));
94+
8395
const [cvssMin, cvssMax] = decodeRangeFilter(params.cvss_score);
8496

8597
const filters = [
@@ -92,7 +104,16 @@ const CveListTable = () => {
92104
affectedSystemsFilter(envContext, params.affecting_host_type, apply),
93105
publishDateFilter(params.publish_date, apply),
94106
statusFilter(params.status_id, apply),
95-
advisoryAvailableFilter(params.advisory_available, apply)
107+
advisoryAvailableFilter(params.advisory_available, apply),
108+
hierarchyFilter({
109+
urlParam: 'rhel_version',
110+
label: 'Applies to OS',
111+
value: params.rhel_version,
112+
placeholder: 'Filter by Applies to OS',
113+
groups: osVersionFilterItems,
114+
chipLabel: 'Applies to OS',
115+
apply
116+
})
96117
];
97118

98119
const ENV_CONTEXT_FILTER_FILTER = (filter) => {

src/Helpers/constants.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1150,7 +1150,7 @@ export const IOP_ENVIRONMENT_CONTEXT = {
11501150
cveList: {
11511151
title: 'Vulnerabilities',
11521152
columns: ['synopsis', 'public_date', 'impact', 'cvss_score', 'systems_affected', 'rhel_versions'],
1153-
filters: ['filter', 'impact', 'publish_date', 'cvss_score', 'rule_presence', 'known_exploit', 'affecting_host_type'],
1153+
filters: ['filter', 'impact', 'publish_date', 'cvss_score', 'rule_presence', 'known_exploit', 'affecting_host_type', 'rhel_version'],
11541154
areColumnsManageable: false,
11551155
areParamsUrlBound: true
11561156
},

0 commit comments

Comments
 (0)