diff --git a/src/PresentationalComponents/Filters/SystemStaleFilter.js b/src/PresentationalComponents/Filters/SystemStaleFilter.js index 9a89ebee3..6b700f1d2 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 43ea8ce82..07f2d7f09 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,106 +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), - 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), - 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'] }, }, }, }; @@ -341,7 +247,7 @@ describe('SystemsTable', () => { expect(InventoryTable).toHaveBeenCalledWith( expect.objectContaining({ activeFiltersConfig: expect.objectContaining({ - deleteTitle: 'Reset filters', + deleteTitle: 'Clear filters', showDeleteButton: true, }), customFilters: expect.objectContaining({ @@ -360,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( () => @@ -381,7 +287,7 @@ describe('SystemsTable', () => { page: 1, per_page: 20, patchParams: { - filter: { stale: [true, false] }, + filter: {}, selectedTags: [], systemProfile: {}, }, @@ -399,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 525565e18..aa069f1bd 100644 --- a/src/SmartComponents/Systems/SystemsTable.js +++ b/src/SmartComponents/Systems/SystemsTable.js @@ -127,7 +127,8 @@ const SystemsTable = ({ return { ...config, - showDeleteButton: config.showDeleteButton || hasInventoryFilterDeviation, + showDeleteButton: + config.showDeleteButton || config.filters.length > 0 || hasInventoryFilterDeviation, }; }, [deleteFilters, 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], - }, }, };