From 3ea6171b5440a09d8a34d7e36424446f554b1641 Mon Sep 17 00:00:00 2001 From: mabashian Date: Tue, 11 Jun 2019 13:56:05 -0400 Subject: [PATCH] Fixes bug where the delete inventory event would wipe or reset inventory form fields --- .../list/inventory-list.controller.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/awx/ui/client/src/inventories-hosts/inventories/list/inventory-list.controller.js b/awx/ui/client/src/inventories-hosts/inventories/list/inventory-list.controller.js index d60962a492..85174c2652 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/list/inventory-list.controller.js +++ b/awx/ui/client/src/inventories-hosts/inventories/list/inventory-list.controller.js @@ -11,7 +11,7 @@ */ function InventoriesList($scope, - $filter, Rest, InventoryList, Prompt, + $filter, qs, InventoryList, Prompt, ProcessErrors, GetBasePath, Wait, $state, Dataset, canAdd, i18n, Inventory, InventoryHostsStrings, ngToast) { @@ -168,24 +168,31 @@ function InventoriesList($scope, inventory.pending_deletion = true; } if (data.status === 'deleted') { - let reloadListStateParams = null; + let reloadListStateParams = _.cloneDeep($state.params); - if($scope.inventories.length === 1 && $state.params.inventory_search && _.has($state, 'params.inventory_search.page') && $state.params.inventory_search.page !== '1') { - reloadListStateParams = _.cloneDeep($state.params); + if($scope.inventories.length === 1 && $state.params.inventory_search && _.hasIn($state, 'params.inventory_search.page') && $state.params.inventory_search.page !== '1') { reloadListStateParams.inventory_search.page = (parseInt(reloadListStateParams.inventory_search.page)-1).toString(); } if (parseInt($state.params.inventory_id) === data.inventory_id || parseInt($state.params.smartinventory_id) === data.inventory_id) { $state.go("inventories", reloadListStateParams, {reload: true}); } else { - $state.go('.', reloadListStateParams, {reload: true}); + Wait('start'); + $state.go('.', reloadListStateParams); + const path = GetBasePath($scope.list.basePath) || GetBasePath($scope.list.name); + qs.search(path, reloadListStateParams.inventory_search) + .then((searchResponse) => { + $scope.inventories_dataset = searchResponse.data; + $scope.inventories = searchResponse.data.results; + }) + .finally(() => Wait('stop')); } } }); } export default ['$scope', - '$filter', 'Rest', 'InventoryList', 'Prompt', + '$filter', 'QuerySet', 'InventoryList', 'Prompt', 'ProcessErrors', 'GetBasePath', 'Wait', '$state', 'Dataset', 'canAdd', 'i18n', 'InventoryModel', 'InventoryHostsStrings', 'ngToast', InventoriesList