diff --git a/vipra-ui/app/html/directives/pagination.html b/vipra-ui/app/html/directives/pagination.html index 3947b26b1cfddd4bc94239ea0e32e10c816f72d2..7bd65a8d8a54188480f8f1a5ec9097c637174f61 100644 --- a/vipra-ui/app/html/directives/pagination.html +++ b/vipra-ui/app/html/directives/pagination.html @@ -1,14 +1,14 @@ <nav ng-show="total > limit"> <ul class="pagination"> <li ng-class="{disabled:page==1}"> - <a ui-sref="{page:page==2?null:page-1}" ng-show="page>1">«</a> + <a ui-sref="{page:page==2?null:page-1}" ng-show="page>1" ng-click="changePage(page-1)">«</a> <span ng-hide="page>1">«</span> </li> <li ng-class="{active:p==page}" ng-repeat="p in pages"> - <a ui-sref="{page:p===1?null:p}" ng-bind="p"></a> + <a ui-sref="{page:p===1?null:p}" ng-bind="p" ng-click="changePage(p)"></a> </li> <li ng-class="{disabled:page>=maxPage}"> - <a ui-sref="{page:page+1}" ng-show="page<maxPage">»</a> + <a ui-sref="{page:page+1}" ng-show="page<maxPage" ng-click="changePage(page+1)">»</a> <span ng-hide="page<maxPage">»</span> </li> </ul> diff --git a/vipra-ui/app/js/app.js b/vipra-ui/app/js/app.js index 9b679b93edd12d6f3eb45f804241e0b959a0aff4..6b6456a299d79b789abb2e9bf0a08a4144c29620 100644 --- a/vipra-ui/app/js/app.js +++ b/vipra-ui/app/js/app.js @@ -48,7 +48,8 @@ $stateProvider.state('articles.index', { url: '?page', templateUrl: tplBase + '/articles/index.html', - controller: 'ArticlesIndexController' + controller: 'ArticlesIndexController', + reloadOnSearch: false }); $stateProvider.state('articles.show', { @@ -68,7 +69,8 @@ $stateProvider.state('topics.index', { url: '?page', templateUrl: tplBase + '/topics/index.html', - controller: 'TopicsIndexController' + controller: 'TopicsIndexController', + reloadOnSearch: false }); $stateProvider.state('topics.show', { @@ -88,7 +90,8 @@ $stateProvider.state('words.index', { url: '?page', templateUrl: tplBase + '/words/index.html', - controller: 'WordsIndexController' + controller: 'WordsIndexController', + reloadOnSearch: false }); $stateProvider.state('words.show', { diff --git a/vipra-ui/app/js/controllers.js b/vipra-ui/app/js/controllers.js index 120db44780b75cb43199b234e174a34d5fa63e3b..ddfd22e2af1b6ee2b77f9e09784bfdba42aa76a2 100644 --- a/vipra-ui/app/js/controllers.js +++ b/vipra-ui/app/js/controllers.js @@ -79,13 +79,19 @@ $scope.page = Math.max($stateParams.page || 1, 1); $scope.limit = pageSize; - ArticleFactory.query({ - skip: ($scope.page-1)*pageSize, - limit: pageSize - }, function(response) { - $scope.articles = response.data; - $scope.articlesMeta = response.meta; - $scope.queryTime = response.$queryTime; + var loadedOnce = false; + $scope.$watch('page', function(newVal, oldVal) { + if(newVal != oldVal || !loadedOnce) { + loadedOnce = true; + ArticleFactory.query({ + skip: ($scope.page-1)*pageSize, + limit: pageSize + }, function(response) { + $scope.articles = response.data; + $scope.articlesMeta = response.meta; + $scope.queryTime = response.$queryTime; + }); + } }); }]); @@ -214,6 +220,9 @@ $scope.calculatePages(); + $scope.changePage = function(page) { + $scope.page = page; + }; }]); })(); \ No newline at end of file