From 2227901e40b5b1c19bcbdfc58637f6d44f55e3e2 Mon Sep 17 00:00:00 2001 From: Balazs Szabo Date: Mon, 13 Mar 2017 14:19:06 +0100 Subject: [PATCH] pagination done and mvoed to its own service --- .../settings/controllers/add.topics.js | 64 +---------------- .../settings/services/pagination.service.js | 68 +++++++++++++++++++ percolate-sync.php | 7 ++ 3 files changed, 78 insertions(+), 61 deletions(-) create mode 100644 frontend/scripts/settings/services/pagination.service.js diff --git a/frontend/scripts/settings/controllers/add.topics.js b/frontend/scripts/settings/controllers/add.topics.js index b43df9c..2ec850d 100644 --- a/frontend/scripts/settings/controllers/add.topics.js +++ b/frontend/scripts/settings/controllers/add.topics.js @@ -1,9 +1,9 @@ 'use strict'; -var PAGINATION_LIMIT = 1 +var PAGINATION_LIMIT = 10 angular.module('myApp') - .controller('AddTopicsCtr', function ($scope, $state, Api, Percolate) { + .controller('AddTopicsCtr', function ($scope, $state, Api, Percolate, Pagination) { console.log('Add New Channel - Topics state') /* -------------------------------------- @@ -45,64 +45,6 @@ angular.module('myApp') return } - function pagination(paginationData) { - if (!paginationData.total) { return false } - var _pagination = { - pages: Math.floor(paginationData.total/paginationData.limit) + 1, - offsets: [], - activePage: paginationData.offset / paginationData.limit, - } - if ( _pagination.activePage > 0) { - _pagination.prev = { - label: _pagination.activePage - 1, - offset: paginationData.offset - paginationData.limit, - limit: paginationData.limit - } - } - if (_pagination.activePage < _pagination.pages - 2) { - _pagination.next = { - label: _pagination.activePage + 1, - offset: paginationData.offset + paginationData.limit, - limit: paginationData.limit - } - } - - if (_pagination.pages > 10) { - var _start = 0 - if (_pagination.activePage - 4 > 0) { - _start = _pagination.activePage - 4 - } - - var _end = _start + 8 - if (_end > _pagination.pages - 1) { - _end = _pagination.pages - 1 - } - - for (var i = _start; i < _end; i++) { - _pagination.offsets.push({ - label: i+1, - offset: paginationData.limit * i, - limit: paginationData.limit, - active: paginationData.offset === paginationData.limit * i ? true : false - }) - } - - } else { - - for (var i = 0; i <_pagination.pages; i++) { - _pagination.offsets.push({ - label: i+1, - offset: paginationData.limit * i, - limit: paginationData.limit, - active: paginationData.offset === paginationData.limit * i ? true : false - }) - } - - } - console.log(_pagination); - return _pagination - } - function processWpUsers (res) { $scope.wpUsers = res.data if( !$scope.formData.wpUser ) { @@ -146,7 +88,7 @@ angular.module('myApp') $scope.showError('There was an error.') return } - $scope.userPagination = pagination(res.data.pagination) + $scope.userPagination = Pagination.build(res.data.pagination) $scope.percolateUsers = res.data.data } diff --git a/frontend/scripts/settings/services/pagination.service.js b/frontend/scripts/settings/services/pagination.service.js new file mode 100644 index 0000000..11e60ca --- /dev/null +++ b/frontend/scripts/settings/services/pagination.service.js @@ -0,0 +1,68 @@ +'use strict'; + +angular.module('myApp') + .service('Pagination', function() { + + function build(paginationData) { + if (!paginationData.total) { return false } + var _pagination = { + pages: Math.floor(paginationData.total/paginationData.limit) + 1, + offsets: [], + activePage: paginationData.offset / paginationData.limit, + } + + if (_pagination.pages > 10) { + var _start = 0 + if (_pagination.activePage - 4 > 0) { + _start = _pagination.activePage - 4 + } + + var _end = _start + 8 + if (_end > _pagination.pages - 1) { + _end = _pagination.pages - 1 + } + + for (var i = _start; i < _end; i++) { + _pagination.offsets.push({ + label: i+1, + offset: paginationData.limit * i, + limit: paginationData.limit, + active: paginationData.offset === paginationData.limit * i ? true : false + }) + } + + if ( _pagination.activePage > 4) { + _pagination.prev = { + label: _pagination.activePage - 1, + offset: _start, + limit: paginationData.limit + } + } + if (_pagination.activePage < _pagination.pages - 5) { + _pagination.next = { + label: _pagination.activePage + 1, + offset: _end, + limit: paginationData.limit + } + } + + } else { + + for (var i = 0; i <_pagination.pages; i++) { + _pagination.offsets.push({ + label: i+1, + offset: paginationData.limit * i, + limit: paginationData.limit, + active: paginationData.offset === paginationData.limit * i ? true : false + }) + } + + } + console.log(_pagination); + return _pagination + } + + return { + build : build + } + }) diff --git a/percolate-sync.php b/percolate-sync.php index b426bec..1447ceb 100644 --- a/percolate-sync.php +++ b/percolate-sync.php @@ -186,6 +186,13 @@ public function addAdminScripts () { 'version' => '1', 'footer' => true ); + $scripts[] = array( + 'handle' => 'PerolcateWP-PaginationSrv', + 'src' => plugins_url( '/frontend/scripts/settings/services/pagination.service.js', __FILE__ ), + 'deps' => array('angular'), + 'version' => '1', + 'footer' => true + ); $scripts[] = array( 'handle' => 'PerolcateWP-MainCtr', 'src' => plugins_url( '/frontend/scripts/settings/controllers/main.js', __FILE__ ),