diff --git a/awx/ui/client/features/projects/projectsList.controller.js b/awx/ui/client/features/projects/projectsList.controller.js index e0de2a34be..c9f4ac95cf 100644 --- a/awx/ui/client/features/projects/projectsList.controller.js +++ b/awx/ui/client/features/projects/projectsList.controller.js @@ -13,6 +13,7 @@ function projectsListController ( ) { const vm = this || {}; const [ProjectModel] = resolvedModels; + let paginateQuerySet = null; $scope.canAdd = ProjectModel.options('actions.POST'); vm.strings = strings; @@ -75,14 +76,28 @@ function projectsListController ( vm.toolbarSortValue = toolbarSortDefault; + // Temporary hack to retrieve $scope.querySet from the paginate directive. + // Remove this event listener once the page and page_size params + // are represented in the url. + $scope.$on('updateDataset', (event, dataset, queryset) => { + paginateQuerySet = queryset; + }); + vm.onToolbarSort = (sort) => { vm.toolbarSortValue = sort; const queryParams = Object.assign( + {}, $state.params.project_search, + paginateQuerySet, { order_by: sort.value } ); + // Update URL with params + $state.go('.', { + project_search: queryParams + }, { notify: false, location: 'replace' }); + qs.search(GetBasePath(vm.list.basePath), queryParams) .then(({ data }) => { vm.dataset = data; diff --git a/awx/ui/client/src/shared/paginate/paginate.controller.js b/awx/ui/client/src/shared/paginate/paginate.controller.js index 6da86f4880..2f279784d8 100644 --- a/awx/ui/client/src/shared/paginate/paginate.controller.js +++ b/awx/ui/client/src/shared/paginate/paginate.controller.js @@ -55,7 +55,7 @@ export default ['$scope', '$stateParams', '$state', '$filter', 'GetBasePath', 'Q } $scope.dataset = res.data; $scope.collection = res.data.results; - $scope.$emit('updateDataset', res.data); + $scope.$emit('updateDataset', res.data, queryset); }); }; diff --git a/awx/ui/client/src/shared/paginate/paginate.directive.js b/awx/ui/client/src/shared/paginate/paginate.directive.js index 73d6eed26b..b07ad12212 100644 --- a/awx/ui/client/src/shared/paginate/paginate.directive.js +++ b/awx/ui/client/src/shared/paginate/paginate.directive.js @@ -8,7 +8,7 @@ export default ['templateUrl', dataset: '=', iterator: '@', basePath: '@', - querySet: '=', + querySet: '=?', maxVisiblePages: '@', hideViewPerPage: '=' },