@@ -2,9 +2,9 @@ import React, { Fragment, useRef, useState } from 'react';
22import {
33 DeclarativeTable ,
44 setupFilters ,
5- decodeRangeFilter
6- } from '../../../Frameworks/DeclarativeTable' ;
7-
5+ decodeRangeFilter ,
6+ hierarchyFilter
7+ } from 'declarative-table' ;
88import {
99 BUSINESS_RISK_OPTIONS ,
1010 DEFAULT_PAGE_SIZE ,
@@ -45,6 +45,9 @@ import {
4545import GroupedCVELabels from '../../PresentationalComponents/Snippets/GroupedCVELabels' ;
4646import EditCveStatusModal from './EditCveStatusModal' ;
4747import EditCveBusinessRiskModal from './EditCveBusinessRiskModal' ;
48+ import {
49+ convertOperatingSystemsToFilterGroupItems
50+ } from '../../PresentationalComponents/Filters/PrimaryToolbarFilters/AppliesToOSFilter' ;
4851
4952const 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 ) => {
0 commit comments