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({