(function () { 'use strict'; angular .module('users.admin') .controller('UserListController', UserListController); UserListController.$inject = ['$scope', '$filter', 'AdminService']; function UserListController($scope, $filter, AdminService) { var vm = this; vm.buildPager = buildPager; vm.figureOutItemsToDisplay = figureOutItemsToDisplay; vm.pageChanged = pageChanged; AdminService.query(function (data) { vm.users = data; vm.buildPager(); }); /** * buildPager */ function buildPager() { vm.pagedItems = []; vm.itemsPerPage = 15; vm.currentPage = 1; vm.figureOutItemsToDisplay(); } /** * figureOutItemsToDisplay */ function figureOutItemsToDisplay() { vm.filteredItems = $filter('filter')(vm.users, { $: vm.search }); vm.filterLength = vm.filteredItems.length; var begin = ((vm.currentPage - 1) * vm.itemsPerPage); var end = begin + vm.itemsPerPage; vm.pagedItems = vm.filteredItems.slice(begin, end); } /** * pageChanged */ function pageChanged() { vm.figureOutItemsToDisplay(); } } }());