diff --git a/awx/ui/client/features/jobs/jobsList.controller.js b/awx/ui/client/features/jobs/jobsList.controller.js index 77be97e72d..2780e63ce1 100644 --- a/awx/ui/client/features/jobs/jobsList.controller.js +++ b/awx/ui/client/features/jobs/jobsList.controller.js @@ -102,12 +102,11 @@ function ListJobsController ( let reloadListStateParams = null; if ($scope.jobs.length === 1 && $state.params.job_search && - !_.isEmpty($state.params.job_search.page) && + _.has($state, 'params.job_search.page') && $state.params.job_search.page !== '1') { - const page = `${(parseInt(reloadListStateParams - .job_search.page, 10) - 1)}`; reloadListStateParams = _.cloneDeep($state.params); - reloadListStateParams.job_search.page = page; + reloadListStateParams.job_search.page = + (parseInt(reloadListStateParams.job_search.page, 10) - 1).toString(); } $state.go('.', reloadListStateParams, { reload: true }); diff --git a/awx/ui/client/features/templates/templatesList.controller.js b/awx/ui/client/features/templates/templatesList.controller.js index b8a29f4db8..ede54116c4 100644 --- a/awx/ui/client/features/templates/templatesList.controller.js +++ b/awx/ui/client/features/templates/templatesList.controller.js @@ -164,7 +164,7 @@ function ListTemplatesController( return html; }; - + vm.buildCredentialTags = (credentials) => { return credentials.map(credential => { const icon = `${credential.kind}`; @@ -265,7 +265,7 @@ function ListTemplatesController( const { page } = _.get($state.params, 'template_search'); let reloadListStateParams = null; - if ($scope.templates.length === 1 && !_.isEmpty(page) && page !== '1') { + if ($scope.templates.length === 1 && page && page !== '1') { reloadListStateParams = _.cloneDeep($state.params); const pageNumber = (parseInt(reloadListStateParams.template_search.page, 0) - 1); reloadListStateParams.template_search.page = pageNumber.toString(); diff --git a/awx/ui/client/src/credential-types/list/list.controller.js b/awx/ui/client/src/credential-types/list/list.controller.js index 6e10b5cb34..d4ecde7d6f 100644 --- a/awx/ui/client/src/credential-types/list/list.controller.js +++ b/awx/ui/client/src/credential-types/list/list.controller.js @@ -68,7 +68,7 @@ export default ['$rootScope', '$scope', 'Wait', 'CredentialTypesList', let reloadListStateParams = null; - if($scope.credential_types.length === 1 && $state.params.credential_type_search && !_.isEmpty($state.params.credential_type_search.page) && $state.params.credential_type_search.page !== '1') { + if($scope.credential_types.length === 1 && $state.params.credential_type_search && _.has($state, 'params.credential_type_search.page') && $state.params.credential_type_search.page !== '1') { reloadListStateParams = _.cloneDeep($state.params); reloadListStateParams.credential_type_search.page = (parseInt(reloadListStateParams.credential_type_search.page)-1).toString(); } diff --git a/awx/ui/client/src/credentials/list/credentials-list.controller.js b/awx/ui/client/src/credentials/list/credentials-list.controller.js index 2e8c6e87e8..1f088dbcdc 100644 --- a/awx/ui/client/src/credentials/list/credentials-list.controller.js +++ b/awx/ui/client/src/credentials/list/credentials-list.controller.js @@ -122,7 +122,7 @@ export default ['$scope', 'Rest', 'CredentialList', 'Prompt', 'ProcessErrors', ' let reloadListStateParams = null; - if($scope.credentials.length === 1 && $state.params.credential_search && !_.isEmpty($state.params.credential_search.page) && $state.params.credential_search.page !== '1') { + if($scope.credentials.length === 1 && $state.params.credential_search && _.has($state, 'params.credential_search.page') && $state.params.credential_search.page !== '1') { reloadListStateParams = _.cloneDeep($state.params); reloadListStateParams.credential_search.page = (parseInt(reloadListStateParams.credential_search.page)-1).toString(); } diff --git a/awx/ui/client/src/instance-groups/list/instance-groups-list.controller.js b/awx/ui/client/src/instance-groups/list/instance-groups-list.controller.js index 8568919616..ac569e4b8d 100644 --- a/awx/ui/client/src/instance-groups/list/instance-groups-list.controller.js +++ b/awx/ui/client/src/instance-groups/list/instance-groups-list.controller.js @@ -66,10 +66,17 @@ export default ['$scope', '$filter', '$state', 'Alert', 'resolvedModels', 'Datas }; function handleSuccessfulDelete(instance_group) { + let reloadListStateParams = null; + + if($scope.instance_groups.length === 1 && $state.params.instance_group_search && _.has($state, 'params.instance_group_search.page') && $state.params.instance_group_search.page !== '1') { + reloadListStateParams = _.cloneDeep($state.params); + reloadListStateParams.instance_group_search.page = (parseInt(reloadListStateParams.instance_group_search.page)-1).toString(); + } + if (parseInt($state.params.instance_group_id, 0) === instance_group.id) { - $state.go('instanceGroups', $state.params, { reload: true }); + $state.go('instanceGroups', reloadListStateParams, { reload: true }); } else { - $state.go('.', $state.params, { reload: true }); + $state.go('.', reloadListStateParams, { reload: true }); } } 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 c656016b9b..f3f0736740 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 @@ -153,7 +153,7 @@ function InventoriesList($scope, if (data.status === 'deleted') { let reloadListStateParams = null; - if($scope.inventories.length === 1 && $state.params.inventory_search && !_.isEmpty($state.params.inventory_search.page) && $state.params.inventory_search.page !== '1') { + 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); reloadListStateParams.inventory_search.page = (parseInt(reloadListStateParams.inventory_search.page)-1).toString(); } diff --git a/awx/ui/client/src/inventories-hosts/inventories/related/groups/list/groups-list.controller.js b/awx/ui/client/src/inventories-hosts/inventories/related/groups/list/groups-list.controller.js index 120d09567b..daf0ab3e81 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/related/groups/list/groups-list.controller.js +++ b/awx/ui/client/src/inventories-hosts/inventories/related/groups/list/groups-list.controller.js @@ -127,7 +127,7 @@ $scope.confirmDelete = function(){ let reloadListStateParams = null; - if($scope.groups.length === 1 && $state.params.group_search && !_.isEmpty($state.params.group_search.page) && $state.params.group_search.page !== '1') { + if($scope.groups.length === 1 && $state.params.group_search && _.has($state, 'params.group_search.page') && $state.params.group_search.page !== '1') { reloadListStateParams = _.cloneDeep($state.params); reloadListStateParams.group_search.page = (parseInt(reloadListStateParams.group_search.page)-1).toString(); } diff --git a/awx/ui/client/src/inventories-hosts/inventories/related/hosts/list/host-list.controller.js b/awx/ui/client/src/inventories-hosts/inventories/related/hosts/list/host-list.controller.js index d1f32f366a..e0a49fc059 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/related/hosts/list/host-list.controller.js +++ b/awx/ui/client/src/inventories-hosts/inventories/related/hosts/list/host-list.controller.js @@ -112,7 +112,7 @@ export default ['$scope', 'ListDefinition', '$rootScope', 'GetBasePath', let reloadListStateParams = null; - if($scope.hosts.length === 1 && $state.params.host_search && !_.isEmpty($state.params.host_search.page) && $state.params.host_search.page !== '1') { + if($scope.hosts.length === 1 && $state.params.host_search && _.has($state, 'params.host_search.page') && $state.params.host_search.page !== '1') { reloadListStateParams = _.cloneDeep($state.params); reloadListStateParams.host_search.page = (parseInt(reloadListStateParams.host_search.page)-1).toString(); } diff --git a/awx/ui/client/src/inventory-scripts/list/list.controller.js b/awx/ui/client/src/inventory-scripts/list/list.controller.js index b4307b54c8..96c15c31d8 100644 --- a/awx/ui/client/src/inventory-scripts/list/list.controller.js +++ b/awx/ui/client/src/inventory-scripts/list/list.controller.js @@ -73,7 +73,7 @@ export default ['$rootScope', '$scope', 'Wait', 'InventoryScriptsList', let reloadListStateParams = null; - if($scope.inventory_scripts.length === 1 && $state.params.inventory_script_search && !_.isEmpty($state.params.inventory_script_search.page) && $state.params.inventory_script_search.page !== '1') { + if($scope.inventory_scripts.length === 1 && $state.params.inventory_script_search && _.has($state, 'params.inventory_script_search.page') && $state.params.inventory_script_search.page !== '1') { reloadListStateParams = _.cloneDeep($state.params); reloadListStateParams.inventory_script_search.page = (parseInt(reloadListStateParams.inventory_script_search.page)-1).toString(); } diff --git a/awx/ui/client/src/notifications/notification-templates-list/list.controller.js b/awx/ui/client/src/notifications/notification-templates-list/list.controller.js index 8e588d9671..f471a2aac6 100644 --- a/awx/ui/client/src/notifications/notification-templates-list/list.controller.js +++ b/awx/ui/client/src/notifications/notification-templates-list/list.controller.js @@ -193,7 +193,7 @@ let reloadListStateParams = null; - if($scope.notification_templates.length === 1 && $state.params.notification_template_search && !_.isEmpty($state.params.notification_template_search.page) && $state.params.notification_template_search.page !== '1') { + if($scope.notification_templates.length === 1 && $state.params.notification_template_search && _.has($state, 'params.notification_template_search.page') && $state.params.notification_template_search.page !== '1') { reloadListStateParams = _.cloneDeep($state.params); reloadListStateParams.notification_template_search.page = (parseInt(reloadListStateParams.notification_template_search.page)-1).toString(); } diff --git a/awx/ui/client/src/organizations/list/organizations-list.controller.js b/awx/ui/client/src/organizations/list/organizations-list.controller.js index 48a61b0397..6d86ab884b 100644 --- a/awx/ui/client/src/organizations/list/organizations-list.controller.js +++ b/awx/ui/client/src/organizations/list/organizations-list.controller.js @@ -149,7 +149,7 @@ export default ['$stateParams', '$scope', '$rootScope', let reloadListStateParams = null; - if($scope.organizations.length === 1 && $state.params.organization_search && !_.isEmpty($state.params.organization_search.page) && $state.params.organization_search.page !== '1') { + if($scope.organizations.length === 1 && $state.params.organization_search && _.has($state, 'params.organization_search.page') && parseInt($state.params.organization_search.page).toString() !== '1') { reloadListStateParams = _.cloneDeep($state.params); reloadListStateParams.organization_search.page = (parseInt(reloadListStateParams.organization_search.page)-1).toString(); } diff --git a/awx/ui/client/src/projects/list/projects-list.controller.js b/awx/ui/client/src/projects/list/projects-list.controller.js index c4aa5db6c8..6208a7c553 100644 --- a/awx/ui/client/src/projects/list/projects-list.controller.js +++ b/awx/ui/client/src/projects/list/projects-list.controller.js @@ -198,7 +198,7 @@ export default ['$scope', '$rootScope', '$log', 'Rest', 'Alert', let reloadListStateParams = null; - if($scope.projects.length === 1 && $state.params.project_search && !_.isEmpty($state.params.project_search.page) && $state.params.project_search.page !== '1') { + if($scope.projects.length === 1 && $state.params.project_search && _.has($state, 'params.project_search.page') && $state.params.project_search.page !== '1') { reloadListStateParams = _.cloneDeep($state.params); reloadListStateParams.project_search.page = (parseInt(reloadListStateParams.project_search.page)-1).toString(); } diff --git a/awx/ui/client/src/scheduler/factories/delete-schedule.factory.js b/awx/ui/client/src/scheduler/factories/delete-schedule.factory.js index 2321028055..d4526cab8b 100644 --- a/awx/ui/client/src/scheduler/factories/delete-schedule.factory.js +++ b/awx/ui/client/src/scheduler/factories/delete-schedule.factory.js @@ -28,7 +28,7 @@ export default let reloadListStateParams = null; - if(scope.schedules.length === 1 && $state.params.schedule_search && !_.isEmpty($state.params.schedule_search.page) && $state.params.schedule_search.page !== '1') { + if(scope.schedules.length === 1 && $state.params.schedule_search && _.has($state, 'params.schedule_search.page') && $state.params.schedule_search.page !== '1') { reloadListStateParams = _.cloneDeep($state.params); reloadListStateParams.schedule_search.page = (parseInt(reloadListStateParams.schedule_search.page)-1).toString(); } diff --git a/awx/ui/client/src/teams/list/teams-list.controller.js b/awx/ui/client/src/teams/list/teams-list.controller.js index 024f74361b..88df298f55 100644 --- a/awx/ui/client/src/teams/list/teams-list.controller.js +++ b/awx/ui/client/src/teams/list/teams-list.controller.js @@ -53,7 +53,7 @@ export default ['$scope', 'Rest', 'TeamList', 'Prompt', let reloadListStateParams = null; - if($scope.teams.length === 1 && $state.params.team_search && !_.isEmpty($state.params.team_search.page) && $state.params.team_search.page !== '1') { + if($scope.teams.length === 1 && $state.params.team_search && _.has($state, 'params.team_search.page') && $state.params.team_search.page !== '1') { reloadListStateParams = _.cloneDeep($state.params); reloadListStateParams.team_search.page = (parseInt(reloadListStateParams.team_search.page)-1).toString(); } diff --git a/awx/ui/client/src/users/list/users-list.controller.js b/awx/ui/client/src/users/list/users-list.controller.js index b684a5bbdb..96d01ebf04 100644 --- a/awx/ui/client/src/users/list/users-list.controller.js +++ b/awx/ui/client/src/users/list/users-list.controller.js @@ -68,7 +68,7 @@ export default ['$scope', '$rootScope', 'Rest', 'UserList', 'Prompt', let reloadListStateParams = null; - if($scope.users.length === 1 && $state.params.user_search && !_.isEmpty($state.params.user_search.page) && $state.params.user_search.page !== '1') { + if($scope.users.length === 1 && $state.params.user_search && _.has($state, 'params.user_search.page') && $state.params.user_search.page !== '1') { reloadListStateParams = _.cloneDeep($state.params); reloadListStateParams.user_search.page = (parseInt(reloadListStateParams.user_search.page)-1).toString(); }