diff --git a/config/env/torrents.js b/config/env/torrents.js index 9a873c71..408e45fa 100644 --- a/config/env/torrents.js +++ b/config/env/torrents.js @@ -185,6 +185,7 @@ module.exports = { }, itemsPerPage: { topics_per_page: 10, + replies_per_page: 10, torrents_per_page: 15, torrents_comments_per_page: 10 }, diff --git a/modules/forums/client/controllers/forums-topic.client.controller.js b/modules/forums/client/controllers/forums-topic.client.controller.js index aa090941..3a669fea 100644 --- a/modules/forums/client/controllers/forums-topic.client.controller.js +++ b/modules/forums/client/controllers/forums-topic.client.controller.js @@ -12,11 +12,15 @@ marked, ModalConfirmService, $stateParams, TopicsService, localStorageService, $compile, RepliesService, $filter, Upload, DownloadService) { var vm = this; vm.forumsConfig = MeanTorrentConfig.meanTorrentConfig.forumsConfig; + vm.itemsPerPageConfig = MeanTorrentConfig.meanTorrentConfig.itemsPerPage; vm.appConfig = MeanTorrentConfig.meanTorrentConfig.app; vm.user = Authentication.user; vm.forumPath = []; vm.postReplyFields = {}; + vm.pagedItems = []; + vm.itemsPerPage = vm.itemsPerPageConfig.replies_per_page; + vm.currentPage = 1; /** * If user is not signed in then redirect back home */ @@ -24,6 +28,49 @@ $state.go('authentication.signin'); } + /** + * buildPager + * pagination init + */ + vm.buildPager = function () { + vm.figureOutItemsToDisplay(); + }; + + /** + * figureOutItemsToDisplay + * @param callback + */ + vm.figureOutItemsToDisplay = function (callback) { + vm.filterLength = vm.topic._replies.length; + var begin = ((vm.currentPage - 1) * vm.itemsPerPage); + var end = begin + vm.itemsPerPage; + vm.pagedItems = vm.topic._replies.slice(begin, end); + + if (callback) callback(); + }; + + /** + * pageChanged + */ + vm.pageChanged = function () { + var element = angular.element('#top_of_reply_list'); + + vm.figureOutItemsToDisplay(function () { + $timeout(function () { + $('html,body').animate({scrollTop: element[0].offsetTop - 60}, 200); + }, 10); + }); + }; + + /** + * $watch 'vm.torrentLocalInfo' + */ + $scope.$watch('vm.topic', function (newValue, oldValue) { + if (newValue) { + vm.pageChanged(); + } + }); + /** * init */ @@ -395,9 +442,10 @@ function successCallback(res) { vm.postReplyFields = {}; - vm.topic = res; $scope.uFiles = []; $scope.uImages = []; + vm.currentPage = Math.ceil(vm.topic._replies.length / vm.itemsPerPage); + vm.topic = res; $scope.$broadcast('show-errors-reset', 'vm.replyForm'); NotifycationService.showSuccessNotify('FORUMS.POST_REPLY_SUCCESSFULLY'); diff --git a/modules/forums/client/views/topic.client.view.html b/modules/forums/client/views/topic.client.view.html index 58048bee..f472f37e 100644 --- a/modules/forums/client/views/topic.client.view.html +++ b/modules/forums/client/views/topic.client.view.html @@ -37,7 +37,7 @@ -