Skip to content

Commit b636ce3

Browse files
red-hat-konfluxLightOfHeaven1994
authored andcommitted
feat(RHINENG-21983): Add 'Applies to OS' filter CVEs table
1 parent c4256fe commit b636ce3

File tree

2 files changed

+27
-5
lines changed

2 files changed

+27
-5
lines changed

src/Components/SmartComponents/IoP/CveListTable.js

Lines changed: 26 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) => {
@@ -238,6 +259,7 @@ const CveListTable = () => {
238259
refreshData={onDataUpdated}
239260
/>
240261
<DeclarativeTable
262+
ouiaId="cves-table"
241263
ref={declarativeTableRef}
242264
isLoading={isLoading}
243265
areColumnsManageable={envContext?.pages?.cveDetail?.areColumnsManageable}

src/Helpers/constants.js

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

0 commit comments

Comments
 (0)