Files
meanTorrent/modules/users/client/controllers/admin/list-users.client.controller.js
OldHawk 59d3b431fe feat(torrents): new feature for manage upload by admin
maker and user has new fields 'upload_access', value is 'review' and 'pass', admin can set value of them, 'review' is all uploaded torrents need review by oper or admin, and 'pass' not need review and pass directly

#20
2017-12-08 15:32:46 +08:00

80 lines
2.0 KiB
JavaScript

(function () {
'use strict';
angular
.module('users.admin')
.controller('UserListController', UserListController);
UserListController.$inject = ['$scope', '$filter', 'AdminService', 'DebugConsoleService', 'MeanTorrentConfig', '$timeout'];
function UserListController($scope, $filter, AdminService, mtDebug, MeanTorrentConfig, $timeout) {
var vm = this;
vm.itemsPerPageConfig = MeanTorrentConfig.meanTorrentConfig.itemsPerPage;
vm.buildPager = buildPager;
vm.figureOutItemsToDisplay = figureOutItemsToDisplay;
vm.pageChanged = pageChanged;
vm.searchVip = false;
vm.searchAdmin = false;
vm.searchOper = false;
vm.userStatus = 'all';
/**
* buildPager
*/
function buildPager() {
vm.pagedItems = [];
vm.itemsPerPage = vm.itemsPerPageConfig.adminUserListPerPage;
vm.currentPage = 1;
vm.figureOutItemsToDisplay();
}
/**
* figureOutItemsToDisplay
* @param callback
*/
function figureOutItemsToDisplay(callback) {
vm.getUsers(vm.currentPage, function (items) {
vm.filterLength = items.total;
vm.pagedItems = items.rows;
if (callback) callback();
});
}
/**
* getUsers
* @param p
* @param callback
*/
vm.getUsers = function (p, callback) {
AdminService.get({
skip: (p - 1) * vm.itemsPerPage,
limit: vm.itemsPerPage,
isVip: vm.searchVip || undefined,
isOper: vm.searchOper || undefined,
isAdmin: vm.searchAdmin || undefined,
keys: vm.search,
status: vm.userStatus ? vm.userStatus : 'all'
}, function (data) {
mtDebug.info(data);
callback(data);
});
};
/**
* pageChanged
*/
function pageChanged() {
var element = angular.element('#top_of_users_list');
vm.figureOutItemsToDisplay(function () {
$timeout(function () {
$('html,body').animate({scrollTop: element[0].offsetTop - 60}, 200);
}, 10);
});
}
}
}());