diff --git a/src/PresentationalComponents/Filters/SystemStaleFilter.js b/src/PresentationalComponents/Filters/SystemStaleFilter.js index a0a712e6b..ef4d7703c 100644 --- a/src/PresentationalComponents/Filters/SystemStaleFilter.js +++ b/src/PresentationalComponents/Filters/SystemStaleFilter.js @@ -28,7 +28,7 @@ const systemsStaleFilter = (apply, currentFilter = {}) => { return { label: intl.formatMessage(messages.labelsFiltersStale), - type: conditionalFilterType.checkbox, + type: conditionalFilterType.singleSelect, filterValues: { onChange: (event, value) => { filterByStale(value); diff --git a/src/PresentationalComponents/Filters/SystemStaleFilter.test.js b/src/PresentationalComponents/Filters/SystemStaleFilter.test.js index b2f3717d7..1c1f76926 100644 --- a/src/PresentationalComponents/Filters/SystemStaleFilter.test.js +++ b/src/PresentationalComponents/Filters/SystemStaleFilter.test.js @@ -13,7 +13,7 @@ describe('SystemStaleFilter', () => { const response = systemStaleFilter(apply, currentFilter); expect(response.filterValues.value).toEqual(['filter']); expect(response.label).toEqual('Status'); - expect(response.type).toEqual('checkbox'); + expect(response.type).toEqual('singleSelect'); }); it('Should call apply with a test value', () => { diff --git a/src/PresentationalComponents/StatusReports/SystemsStatusReport.js b/src/PresentationalComponents/StatusReports/SystemsStatusReport.js index 80879c7d7..b85576e6e 100644 --- a/src/PresentationalComponents/StatusReports/SystemsStatusReport.js +++ b/src/PresentationalComponents/StatusReports/SystemsStatusReport.js @@ -44,7 +44,6 @@ const SystemsStatusReport = ({ apply, queryParams }) => { selectedTags: [...selectedTags, ...selectedGlobalTags], systemProfile, limit: 1, - 'filter[stale]': 'in:true,false', }).then((result) => { setSubtotals(result.meta?.subtotals); }); @@ -77,14 +76,14 @@ const SystemsStatusReport = ({ apply, queryParams }) => { color='var(--pf-t--global--icon--color--status--success--default)' value={subtotals?.patched} apply={apply} - filter={{ filter: { packages_updatable: 'eq:0', stale: false } }} // TODO: remove `stale: false` once default filter is gone + filter={{ filter: { packages_updatable: 'eq:0', stale: false } }} /> { value: undefined, }, label: 'Status', - type: 'checkbox', + type: 'singleSelect', }, { filterValues: { @@ -232,108 +232,12 @@ describe('SystemsTable', () => { ); }); - it('should keep default systems filters visible while hiding reset at baseline', async () => { - const filteredState = { - ...mockState, - SystemsStore: { - queryParams: { - filter: { stale: [true, false] }, - }, - }, - }; - - await renderComponent(filteredState); - expect(InventoryTable).toHaveBeenCalledWith( - expect.objectContaining({ - activeFiltersConfig: { - deleteTitle: 'Reset filters', - filters: [ - { - category: 'Status', - chips: [ - { - id: true, - name: 'Stale', - value: true, - }, - { - id: false, - name: 'Fresh', - value: false, - }, - ], - id: 'stale', - }, - ], - onDelete: expect.any(Function), - onDeleteGroup: expect.any(Function), - showDeleteButton: false, - }, - }), - {}, - ); - }); - - it('should show reset only when at least one filter differs from defaults', async () => { - const filteredState = { - ...mockState, - SystemsStore: { - queryParams: { - filter: { packages_updatable: 'eq:0', stale: [true, false] }, - }, - }, - }; - - await renderComponent(filteredState); - - expect(InventoryTable).toHaveBeenCalledWith( - expect.objectContaining({ - activeFiltersConfig: { - deleteTitle: 'Reset filters', - filters: [ - { - category: 'Patch status', - chips: [ - { - id: 'eq:0', - name: 'Systems up to date', - value: 'eq:0', - }, - ], - id: 'packages_updatable', - }, - { - category: 'Status', - chips: [ - { - id: true, - name: 'Stale', - value: true, - }, - { - id: false, - name: 'Fresh', - value: false, - }, - ], - id: 'stale', - }, - ], - onDelete: expect.any(Function), - onDeleteGroup: expect.any(Function), - showDeleteButton: true, - }, - }), - {}, - ); - }); - - it('should show reset when inventory-based operating system filters are active', async () => { + it('should show clear when inventory-based operating system filters are active', async () => { const filteredState = { ...mockState, SystemsStore: { queryParams: { - filter: { os: ['RHEL 8.8'], stale: [true, false] }, + filter: { os: ['RHEL 8.8'] }, }, }, }; @@ -343,7 +247,7 @@ describe('SystemsTable', () => { expect(InventoryTable).toHaveBeenCalledWith( expect.objectContaining({ activeFiltersConfig: expect.objectContaining({ - deleteTitle: 'Reset filters', + deleteTitle: 'Clear filters', showDeleteButton: true, }), customFilters: expect.objectContaining({ @@ -362,7 +266,7 @@ describe('SystemsTable', () => { ); }); - it('should show reset before an inventory-backed fetch resolves', async () => { + it('should show clear before an inventory-backed fetch resolves', async () => { let resolveFetch; fetchSystems.mockImplementationOnce( () => @@ -383,7 +287,7 @@ describe('SystemsTable', () => { page: 1, per_page: 20, patchParams: { - filter: { stale: [true, false] }, + filter: {}, selectedTags: [], systemProfile: {}, }, @@ -401,7 +305,7 @@ describe('SystemsTable', () => { expect(InventoryTable).toHaveBeenLastCalledWith( expect.objectContaining({ activeFiltersConfig: expect.objectContaining({ - deleteTitle: 'Reset filters', + deleteTitle: 'Clear filters', showDeleteButton: true, }), }), diff --git a/src/SmartComponents/Systems/SystemsTable.js b/src/SmartComponents/Systems/SystemsTable.js index 2601abe80..0d1390f43 100644 --- a/src/SmartComponents/Systems/SystemsTable.js +++ b/src/SmartComponents/Systems/SystemsTable.js @@ -144,7 +144,8 @@ const SystemsTable = ({ return { ...config, - showDeleteButton: config.showDeleteButton || hasInventoryFilterDeviation, + showDeleteButton: + config.showDeleteButton || config.filters.length > 0 || hasInventoryFilterDeviation, }; }, [deleteFilters, deleteFilterGroup, filter, hasInventoryFilterDeviation]); diff --git a/src/Utilities/constants.js b/src/Utilities/constants.js index 5a66178d0..14b28b39e 100644 --- a/src/Utilities/constants.js +++ b/src/Utilities/constants.js @@ -54,7 +54,7 @@ export const packagesListDefaultFilters = { }; export const systemsListDefaultFilters = { - filter: { stale: [true, false] }, + filter: {}, }; export const emptyDefaultFilters = { diff --git a/src/store/Reducers/SystemsStore.js b/src/store/Reducers/SystemsStore.js index 1f07aa7f3..bf0edaeb8 100644 --- a/src/store/Reducers/SystemsStore.js +++ b/src/store/Reducers/SystemsStore.js @@ -8,9 +8,6 @@ const initialState = { queryParams: { page: 1, perPage: 20, - filter: { - stale: [true, false], - }, }, };