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`
+ )}
/>,
]}
/>