mirror of
https://github.com/ansible/awx.git
synced 2026-01-15 03:40:42 -03:30
adds instance group warnings
This commit is contained in:
parent
652e7a500b
commit
06ce1c2a92
@ -258,6 +258,7 @@ function ToolbarDeleteButton({
|
||||
onClose={() => toggleModal(false)}
|
||||
actions={[
|
||||
<Button
|
||||
ouiaId="delete-modal-confirm"
|
||||
key="delete"
|
||||
variant="danger"
|
||||
aria-label={i18n._(t`confirm delete`)}
|
||||
|
||||
@ -16,6 +16,7 @@ import {
|
||||
import useRequest, { useDismissableError } from '../../../util/useRequest';
|
||||
import { jsonToYaml, isJsonString } from '../../../util/yaml';
|
||||
import { InstanceGroupsAPI } from '../../../api';
|
||||
import { relatedResourceDeleteRequests } from '../../../util/getRelatedResourceDeleteDetails';
|
||||
|
||||
function ContainerGroupDetails({ instanceGroup, i18n }) {
|
||||
const { id, name } = instanceGroup;
|
||||
@ -34,7 +35,10 @@ function ContainerGroupDetails({ instanceGroup, i18n }) {
|
||||
);
|
||||
|
||||
const { error, dismissError } = useDismissableError(deleteError);
|
||||
|
||||
const deleteDetailsRequests = relatedResourceDeleteRequests.instanceGroup(
|
||||
instanceGroup,
|
||||
i18n
|
||||
);
|
||||
return (
|
||||
<CardBody>
|
||||
<DetailList>
|
||||
@ -101,6 +105,10 @@ function ContainerGroupDetails({ instanceGroup, i18n }) {
|
||||
modalTitle={i18n._(t`Delete instance group`)}
|
||||
onConfirm={deleteInstanceGroup}
|
||||
isDisabled={isLoading}
|
||||
deleteDetailsRequests={deleteDetailsRequests}
|
||||
deleteMessage={i18n._(
|
||||
t`This container group is currently being by other resources. Are you sure you want to delete it?`
|
||||
)}
|
||||
>
|
||||
{i18n._(t`Delete`)}
|
||||
</DeleteButton>
|
||||
|
||||
@ -16,6 +16,7 @@ import {
|
||||
} from '../../../components/DetailList';
|
||||
import useRequest, { useDismissableError } from '../../../util/useRequest';
|
||||
import { InstanceGroupsAPI } from '../../../api';
|
||||
import { relatedResourceDeleteRequests } from '../../../util/getRelatedResourceDeleteDetails';
|
||||
|
||||
const Unavailable = styled.span`
|
||||
color: var(--pf-global--danger-color--200);
|
||||
@ -38,7 +39,10 @@ function InstanceGroupDetails({ instanceGroup, i18n }) {
|
||||
);
|
||||
|
||||
const { error, dismissError } = useDismissableError(deleteError);
|
||||
|
||||
const deleteDetailsRequests = relatedResourceDeleteRequests.instanceGroup(
|
||||
instanceGroup,
|
||||
i18n
|
||||
);
|
||||
const verifyInstanceGroup = item => {
|
||||
if (item.is_isolated) {
|
||||
return (
|
||||
@ -142,6 +146,10 @@ function InstanceGroupDetails({ instanceGroup, i18n }) {
|
||||
modalTitle={i18n._(t`Delete instance group`)}
|
||||
onConfirm={deleteInstanceGroup}
|
||||
isDisabled={isLoading}
|
||||
deleteDetailsRequests={deleteDetailsRequests}
|
||||
deleteMessage={i18n._(
|
||||
t`This instance group is currently being by other resources. Are you sure you want to delete it?`
|
||||
)}
|
||||
>
|
||||
{i18n._(t`Delete`)}
|
||||
</DeleteButton>
|
||||
|
||||
@ -17,7 +17,7 @@ import ErrorDetail from '../../../components/ErrorDetail';
|
||||
import AlertModal from '../../../components/AlertModal';
|
||||
import DatalistToolbar from '../../../components/DataListToolbar';
|
||||
import AddDropDownButton from '../../../components/AddDropDownButton';
|
||||
|
||||
import { relatedResourceDeleteRequests } from '../../../util/getRelatedResourceDeleteDetails';
|
||||
import InstanceGroupListItem from './InstanceGroupListItem';
|
||||
|
||||
const QS_CONFIG = getQSConfig('instance-group', {
|
||||
@ -186,7 +186,10 @@ function InstanceGroupList({ i18n }) {
|
||||
? `${match.url}/container_group/${item.id}/details`
|
||||
: `${match.url}/${item.id}/details`;
|
||||
};
|
||||
|
||||
const deleteDetailsRequests = relatedResourceDeleteRequests.instanceGroup(
|
||||
selected[0],
|
||||
i18n
|
||||
);
|
||||
return (
|
||||
<>
|
||||
<PageSection>
|
||||
@ -218,6 +221,11 @@ function InstanceGroupList({ i18n }) {
|
||||
itemsToDelete={modifiedSelected}
|
||||
pluralizedItemName={i18n._(t`Instance Groups`)}
|
||||
errorMessage={errorMessageDelete}
|
||||
deleteDetailsRequests={deleteDetailsRequests}
|
||||
deleteMessage={i18n._(
|
||||
'{numItemsToDelete, plural, one {This instance group is currently being by other resources. Are you sure you want to delete it?} other {Deleting these instance groups could impact other resources that rely on them. Are you sure you want to delete anyway?}}',
|
||||
{ numItemsToDelete: selected.length }
|
||||
)}
|
||||
/>,
|
||||
]}
|
||||
/>
|
||||
|
||||
@ -6,10 +6,18 @@ import {
|
||||
waitForElement,
|
||||
} from '../../../../testUtils/enzymeHelpers';
|
||||
|
||||
import { InstanceGroupsAPI } from '../../../api';
|
||||
import {
|
||||
InstanceGroupsAPI,
|
||||
OrganizationsAPI,
|
||||
InventoriesAPI,
|
||||
UnifiedJobTemplatesAPI,
|
||||
} from '../../../api';
|
||||
import InstanceGroupList from './InstanceGroupList';
|
||||
|
||||
jest.mock('../../../api/models/InstanceGroups');
|
||||
jest.mock('../../../api/models/Organizations');
|
||||
jest.mock('../../../api/models/Inventories');
|
||||
jest.mock('../../../api/models/UnifiedJobTemplates');
|
||||
|
||||
const instanceGroups = {
|
||||
data: {
|
||||
@ -44,6 +52,9 @@ const instanceGroups = {
|
||||
};
|
||||
|
||||
const options = { data: { actions: { POST: true } } };
|
||||
OrganizationsAPI.read.mockResolvedValue({ data: { count: 0 } });
|
||||
InventoriesAPI.read.mockResolvedValue({ data: { count: 0 } });
|
||||
UnifiedJobTemplatesAPI.read.mockResolvedValue({ data: { count: 0 } });
|
||||
|
||||
describe('<InstanceGroupList />', () => {
|
||||
let wrapper;
|
||||
|
||||
@ -283,4 +283,19 @@ export const relatedResourceDeleteRequests = {
|
||||
label: [i18n._(t`Workflow Job Template Nodes`)],
|
||||
},
|
||||
],
|
||||
instanceGroup: (selected, i18n) => [
|
||||
{
|
||||
request: () => OrganizationsAPI.read({ instance_groups: selected.id }),
|
||||
label: i18n._(t`Organizations`),
|
||||
},
|
||||
{
|
||||
request: () => InventoriesAPI.read({ instance_groups: selected.id }),
|
||||
label: i18n._(t`Inventories`),
|
||||
},
|
||||
{
|
||||
request: () =>
|
||||
UnifiedJobTemplatesAPI.read({ instance_groups: selected.id }),
|
||||
label: i18n._(t`Templates`),
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user