diff --git a/awx/ui/client/src/inventories-hosts/inventories/related/sources/list/sources-list.controller.js b/awx/ui/client/src/inventories-hosts/inventories/related/sources/list/sources-list.controller.js
index c3b6448bfe..becf28c83b 100644
--- a/awx/ui/client/src/inventories-hosts/inventories/related/sources/list/sources-list.controller.js
+++ b/awx/ui/client/src/inventories-hosts/inventories/related/sources/list/sources-list.controller.js
@@ -117,16 +117,34 @@
$state.go('inventories.edit.inventory_sources.edit', {inventory_source_id: id});
};
$scope.deleteSource = function(inventory_source){
- var body = '
' + i18n._('Are you sure you want to permanently delete the inventory source below from the inventory? Groups and hosts associated with this inventory source will be deleted as well.') + '
' + $filter('sanitize')(inventory_source.name) + '
';
+ var body = '' + i18n._('Confirm that you want to permanently delete the inventory source below from the inventory. Deleting this inventory source also deletes its associated groups and hosts.') + '
' + $filter('sanitize')(inventory_source.name) + '
';
var action = function(){
$rootScope.promptActionBtnClass = "Modal-errorButton--sourcesDelete";
Wait('start');
- SourcesService.deleteHosts(inventory_source.id).then(() => {
- Wait('start');
- SourcesService.deleteGroups(inventory_source.id).then(() => {
- Wait('start');
+ let hostDelete = SourcesService.deleteHosts(inventory_source.id).catch(({data, status}) => {
+ $('#prompt-modal').modal('hide');
+ Wait('stop');
+ ProcessErrors($scope, data, status, null,
+ {
+ hdr: i18n._('Error!'),
+ msg: i18n._('There was an error deleting inventory source hosts. Returned status: ') +
+ status
+ });
+ });
+ let groupDelete = SourcesService.deleteGroups(inventory_source.id).catch(({data, status}) => {
+ $('#prompt-modal').modal('hide');
+ Wait('stop');
+ ProcessErrors($scope, data, status, null,
+ {
+ hdr: i18n._('Error!'),
+ msg: i18n._('There was an error deleting inventory source groups. Returned status: ') +
+ status
+ });
+ });
+ Promise.all([hostDelete, groupDelete]).then(() => {
SourcesService.delete(inventory_source.id).then(() => {
$('#prompt-modal').modal('hide');
+ delete $rootScope.promptActionBtnClass;
let reloadListStateParams = null;
if($scope.inventory_sources.length === 1 && $state.params.inventory_source_search && !_.isEmpty($state.params.inventory_source_search.page) && $state.params.inventory_source_search.page !== '1') {
@@ -150,28 +168,7 @@
status
});
});
- })
- .catch(({data, status}) => {
- $('#prompt-modal').modal('hide');
- Wait('stop');
- ProcessErrors($scope, data, status, null,
- {
- hdr: i18n._('Error!'),
- msg: i18n._('There was an error deleting inventory source groups. Returned status: ') +
- status
- });
});
- })
- .catch(({data, status}) => {
- $('#prompt-modal').modal('hide');
- Wait('stop');
- ProcessErrors($scope, data, status, null,
- {
- hdr: i18n._('Error!'),
- msg: i18n._('There was an error deleting inventory source hosts. Returned status: ') +
- status
- });
- });
};
// Prompt depends on having $rootScope.promptActionBtnClass available...
Prompt({