Skip to content

Commit 9059e35

Browse files
committed
Fixes #39540 - Host actions are disabled after bulk action
1 parent 60835d1 commit 9059e35

10 files changed

Lines changed: 28 additions & 24 deletions

File tree

webpack/src/Extends/Hosts/BulkActions/BulkChangeProxyCommon/index.js

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,11 @@ import {
1515
} from '@patternfly/react-core';
1616
import { addToast } from 'foremanReact/components/ToastsList/slice';
1717
import { sprintf, translate as __ } from 'foremanReact/common/I18n';
18-
import { foremanUrl } from 'foremanReact/common/helpers';
19-
import { APIActions } from 'foremanReact/redux/API';
2018
import { STATUS } from 'foremanReact/constants';
2119
import {
2220
selectAPIStatus,
2321
selectAPIResponse,
2422
} from 'foremanReact/redux/API/APISelectors';
25-
import {
26-
HOSTS_API_PATH,
27-
API_REQUEST_KEY,
28-
} from 'foremanReact/routes/Hosts/constants';
2923
import {
3024
fetchSmartProxies,
3125
SMART_PROXY_KEY,
@@ -47,6 +41,7 @@ const BulkChangeProxyCommon = ({
4741
allHostsMessage,
4842
someHostsMessage,
4943
isCAProxy,
44+
onSuccess: onSuccessCallback,
5045
}) => {
5146
const dispatch = useDispatch();
5247
const [smartProxyId, setSmartProxyId] = useState('');
@@ -112,12 +107,7 @@ const BulkChangeProxyCommon = ({
112107
message: response.data.message,
113108
})
114109
);
115-
dispatch(
116-
APIActions.get({
117-
key: API_REQUEST_KEY,
118-
url: foremanUrl(HOSTS_API_PATH),
119-
})
120-
);
110+
if (onSuccessCallback) onSuccessCallback();
121111
handleModalClose();
122112
};
123113

@@ -242,11 +232,13 @@ BulkChangeProxyCommon.propTypes = {
242232
allHostsMessage: PropTypes.string.isRequired,
243233
someHostsMessage: PropTypes.string.isRequired,
244234
isCAProxy: PropTypes.bool.isRequired,
235+
onSuccess: PropTypes.func,
245236
};
246237

247238
BulkChangeProxyCommon.defaultProps = {
248239
isOpen: false,
249240
closeModal: () => {},
241+
onSuccess: undefined,
250242
};
251243

252244
export default BulkChangeProxyCommon;

webpack/src/Extends/Hosts/BulkActions/BulkChangePuppetCAProxy/__tests__/index.test.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@ jest.mock('../../BulkChangeProxyCommon', () => ({
1818

1919
describe('BulkChangePuppetCAProxyScene', () => {
2020
const fetchBulkParams = jest.fn();
21+
const refreshTableData = jest.fn();
2122
const contextValue = {
2223
selectAllHostsMode: false,
2324
selectedCount: 2,
2425
selectedResults: [1, 2],
2526
fetchBulkParams,
27+
refreshTableData,
2628
};
2729

2830
beforeEach(() => {
@@ -51,6 +53,7 @@ describe('BulkChangePuppetCAProxyScene', () => {
5153
selectAllHostsMode: false,
5254
isOpen: true,
5355
closeModal: expect.any(Function),
56+
onSuccess: refreshTableData,
5457
selectMessage: 'Select a Puppet CA Proxy',
5558
handleErrorMessage: 'Failed to change Puppet CA Proxy',
5659
changeMessage: 'Change Puppet CA Proxy',

webpack/src/Extends/Hosts/BulkActions/BulkChangePuppetCAProxy/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const BulkChangePuppetCAProxyScene = () => {
1111
selectedCount,
1212
selectedResults,
1313
fetchBulkParams,
14+
refreshTableData,
1415
} = useContext(ForemanActionsBarContext);
1516
const { isOpen, close: closeModal } = useBulkModalOpen(
1617
'bulk-change-puppet-ca-proxy'
@@ -24,6 +25,7 @@ const BulkChangePuppetCAProxyScene = () => {
2425
selectAllHostsMode={selectAllHostsMode}
2526
isOpen={isOpen}
2627
closeModal={closeModal}
28+
onSuccess={refreshTableData}
2729
selectMessage={__('Select a Puppet CA Proxy')}
2830
handleErrorMessage={__('Failed to change Puppet CA Proxy')}
2931
changeMessage={__('Change Puppet CA Proxy')}

webpack/src/Extends/Hosts/BulkActions/BulkChangePuppetProxy/__tests__/index.test.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@ jest.mock('../../BulkChangeProxyCommon', () => ({
1818

1919
describe('BulkChangePuppetProxyScene', () => {
2020
const fetchBulkParams = jest.fn();
21+
const refreshTableData = jest.fn();
2122
const contextValue = {
2223
selectAllHostsMode: false,
2324
selectedCount: 2,
2425
selectedResults: [1, 2],
2526
fetchBulkParams,
27+
refreshTableData,
2628
};
2729

2830
beforeEach(() => {
@@ -51,6 +53,7 @@ describe('BulkChangePuppetProxyScene', () => {
5153
selectAllHostsMode: false,
5254
isOpen: true,
5355
closeModal: expect.any(Function),
56+
onSuccess: refreshTableData,
5457
selectMessage: 'Select a Puppet Proxy',
5558
handleErrorMessage: 'Failed to change Puppet Proxy',
5659
changeMessage: 'Change Puppet Proxy',

webpack/src/Extends/Hosts/BulkActions/BulkChangePuppetProxy/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const BulkChangePuppetProxyScene = () => {
1111
selectedCount,
1212
selectedResults,
1313
fetchBulkParams,
14+
refreshTableData,
1415
} = useContext(ForemanActionsBarContext);
1516
const { isOpen, close: closeModal } = useBulkModalOpen(
1617
'bulk-change-puppet-proxy'
@@ -24,6 +25,7 @@ const BulkChangePuppetProxyScene = () => {
2425
selectAllHostsMode={selectAllHostsMode}
2526
isOpen={isOpen}
2627
closeModal={closeModal}
28+
onSuccess={refreshTableData}
2729
selectMessage={__('Select a Puppet Proxy')}
2830
handleErrorMessage={__('Failed to change Puppet Proxy')}
2931
changeMessage={__('Change Puppet Proxy')}

webpack/src/Extends/Hosts/BulkActions/BulkRemoveProxyCommon/index.js

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,6 @@ import { useDispatch } from 'react-redux';
55
import { Modal, Button, TextContent, Text } from '@patternfly/react-core';
66
import { addToast } from 'foremanReact/components/ToastsList/slice';
77
import { translate as __ } from 'foremanReact/common/I18n';
8-
import { foremanUrl } from 'foremanReact/common/helpers';
9-
import { APIActions } from 'foremanReact/redux/API';
10-
import {
11-
HOSTS_API_PATH,
12-
API_REQUEST_KEY,
13-
} from 'foremanReact/routes/Hosts/constants';
148

159
import {
1610
BULK_REMOVE_PUPPET_PROXY_KEY,
@@ -30,6 +24,7 @@ const BulkRemoveProxyCommon = ({
3024
removeMessage,
3125
allHostsMessage,
3226
someHostsMessage,
27+
onSuccess: onSuccessCallback,
3328
}) => {
3429
const actionKey = isCAProxy
3530
? BULK_REMOVE_PUPPET_CA_PROXY_KEY
@@ -57,12 +52,7 @@ const BulkRemoveProxyCommon = ({
5752
message: response.data.message,
5853
})
5954
);
60-
dispatch(
61-
APIActions.get({
62-
key: API_REQUEST_KEY,
63-
url: foremanUrl(HOSTS_API_PATH),
64-
})
65-
);
55+
if (onSuccessCallback) onSuccessCallback();
6656
handleModalClose();
6757
};
6858

@@ -153,12 +143,14 @@ BulkRemoveProxyCommon.propTypes = {
153143
removeMessage: PropTypes.string,
154144
allHostsMessage: PropTypes.string.isRequired,
155145
someHostsMessage: PropTypes.string.isRequired,
146+
onSuccess: PropTypes.func,
156147
};
157148

158149
BulkRemoveProxyCommon.defaultProps = {
159150
isOpen: false,
160151
closeModal: () => {},
161152
removeMessage: 'Remove Puppet (CA) Proxy',
153+
onSuccess: undefined,
162154
};
163155

164156
export default BulkRemoveProxyCommon;

webpack/src/Extends/Hosts/BulkActions/BulkRemovePuppetCAProxy/__tests__/index.test.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@ jest.mock('../../BulkRemoveProxyCommon', () => ({
1818

1919
describe('BulkRemovePuppetCAProxyScene', () => {
2020
const fetchBulkParams = jest.fn();
21+
const refreshTableData = jest.fn();
2122
const contextValue = {
2223
selectAllHostsMode: false,
2324
selectedCount: 2,
2425
selectedResults: [1, 2],
2526
fetchBulkParams,
27+
refreshTableData,
2628
};
2729

2830
beforeEach(() => {
@@ -51,6 +53,7 @@ describe('BulkRemovePuppetCAProxyScene', () => {
5153
fetchBulkParams,
5254
isOpen: true,
5355
closeModal: expect.any(Function),
56+
onSuccess: refreshTableData,
5457
handleErrorMessage: 'Failed to remove Puppet CA Proxy',
5558
allHostsMessage:
5659
'Removing the Puppet CA proxy will affect {boldCount} selected hosts. Warning: If a Puppet Proxy is still set, the Puppet CA Proxy will fall back to that value after removal!',

webpack/src/Extends/Hosts/BulkActions/BulkRemovePuppetCAProxy/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const BulkRemovePuppetCAProxyScene = () => {
1010
selectedCount,
1111
selectedResults,
1212
fetchBulkParams,
13+
refreshTableData,
1314
} = useContext(ForemanActionsBarContext);
1415
const { isOpen, close: closeModal } = useBulkModalOpen(
1516
'bulk-remove-puppet-ca-proxy'
@@ -24,6 +25,7 @@ const BulkRemovePuppetCAProxyScene = () => {
2425
fetchBulkParams={fetchBulkParams}
2526
isOpen={isOpen}
2627
closeModal={closeModal}
28+
onSuccess={refreshTableData}
2729
handleErrorMessage={__('Failed to remove Puppet CA Proxy')}
2830
allHostsMessage={__(
2931
'Removing the Puppet CA proxy will affect {boldCount} selected hosts. Warning: If a Puppet Proxy is still set, the Puppet CA Proxy will fall back to that value after removal!'

webpack/src/Extends/Hosts/BulkActions/BulkRemovePuppetProxy/__tests__/index.test.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@ jest.mock('../../BulkRemoveProxyCommon', () => ({
1818

1919
describe('BulkRemovePuppetProxyScene', () => {
2020
const fetchBulkParams = jest.fn();
21+
const refreshTableData = jest.fn();
2122
const contextValue = {
2223
selectAllHostsMode: false,
2324
selectedCount: 2,
2425
selectedResults: [1, 2],
2526
fetchBulkParams,
27+
refreshTableData,
2628
};
2729

2830
beforeEach(() => {
@@ -51,6 +53,7 @@ describe('BulkRemovePuppetProxyScene', () => {
5153
fetchBulkParams,
5254
isOpen: true,
5355
closeModal: expect.any(Function),
56+
onSuccess: refreshTableData,
5457
handleErrorMessage: 'Failed to remove Puppet Proxy',
5558
removeMessage: 'Remove Puppet Proxy',
5659
})

webpack/src/Extends/Hosts/BulkActions/BulkRemovePuppetProxy/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const BulkRemovePuppetProxyScene = () => {
1010
selectedCount,
1111
selectedResults,
1212
fetchBulkParams,
13+
refreshTableData,
1314
} = useContext(ForemanActionsBarContext);
1415
const { isOpen, close: closeModal } = useBulkModalOpen(
1516
'bulk-remove-puppet-proxy'
@@ -24,6 +25,7 @@ const BulkRemovePuppetProxyScene = () => {
2425
fetchBulkParams={fetchBulkParams}
2526
isOpen={isOpen}
2627
closeModal={closeModal}
28+
onSuccess={refreshTableData}
2729
handleErrorMessage={__('Failed to remove Puppet Proxy')}
2830
allHostsMessage={__(
2931
'Removing the Puppet proxy will affect {boldCount} selected hosts.'

0 commit comments

Comments
 (0)