diff --git a/awx/ui_next/src/components/PaginatedDataList/ToolbarDeleteButton.jsx b/awx/ui_next/src/components/PaginatedDataList/ToolbarDeleteButton.jsx index 2dbf67dca4..9c8958db80 100644 --- a/awx/ui_next/src/components/PaginatedDataList/ToolbarDeleteButton.jsx +++ b/awx/ui_next/src/components/PaginatedDataList/ToolbarDeleteButton.jsx @@ -61,10 +61,6 @@ const ItemToDelete = shape({ }).isRequired, }); -function cannotDelete(item) { - return !item.summary_fields.user_capabilities.delete; -} - function ToolbarDeleteButton({ itemsToDelete, pluralizedItemName, @@ -72,6 +68,7 @@ function ToolbarDeleteButton({ onDelete, warningMessage, i18n, + cannotDelete, }) { const { isKebabified, onKebabModalChange } = useContext(KebabifiedContext); const [isModalOpen, setIsModalOpen] = useState(false); @@ -100,7 +97,7 @@ function ToolbarDeleteButton({ return (
{errorMessage.length > 0 - ? errorMessage + ? `${errorMessage}: ${itemsUnableToDelete}` : i18n._( t`You do not have permission to delete ${pluralizedItemName}: ${itemsUnableToDelete}` )} @@ -193,12 +190,14 @@ ToolbarDeleteButton.propTypes = { pluralizedItemName: string, errorMessage: string, warningMessage: node, + cannotDelete: func, }; ToolbarDeleteButton.defaultProps = { pluralizedItemName: 'Items', errorMessage: '', warningMessage: null, + cannotDelete: item => !item.summary_fields.user_capabilities.delete, }; export default withI18n()(ToolbarDeleteButton); diff --git a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalList.jsx b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalList.jsx index 097bc25375..7b348884e4 100644 --- a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalList.jsx +++ b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalList.jsx @@ -212,6 +212,13 @@ function WorkflowApprovalsList({ i18n }) { onDelete={handleDelete} itemsToDelete={selected} pluralizedItemName={i18n._(t`Workflow Approvals`)} + cannotDelete={item => + item.status === 'pending' || + !item.summary_fields.user_capabilities.delete + } + errorMessage={i18n._( + t`These approvals cannot be deleted due to insufficient permissions or a pending job status` + )} />, ]} />