Speed up user listing by performing parallel requests
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
/* global angular:false */
|
||||
/* global Clipboard:false */
|
||||
/* global asyncForEach:false */
|
||||
/* global asyncForEachParallel:false */
|
||||
/* global asyncSeries:false */
|
||||
/* global $:false */
|
||||
|
||||
@@ -17,6 +17,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
$scope.config = Client.getConfig();
|
||||
$scope.userInfo = Client.getUserInfo();
|
||||
|
||||
$scope.userSearchString = '';
|
||||
$scope.currentPage = 1;
|
||||
$scope.pageItemCount = [
|
||||
{ name: 'Show 20 per page', value: 20 },
|
||||
@@ -24,7 +25,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
{ name: 'Show 100 per page', value: 100 }
|
||||
];
|
||||
$scope.pageItems = $scope.pageItemCount[0];
|
||||
$scope.userRefreshBusy = false;
|
||||
$scope.userRefreshBusy = true;
|
||||
|
||||
$scope.groupMembers = function (group) {
|
||||
return group.userIds.filter(function (uid) { return !!$scope.usersById[uid]; }).map(function (uid) { return $scope.usersById[uid].username || $scope.usersById[uid].email; }).join(' ');
|
||||
@@ -450,12 +451,12 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
};
|
||||
|
||||
function getUsers(callback) {
|
||||
var users = [ ];
|
||||
var users = [];
|
||||
|
||||
Client.getUsers($scope.currentPage, $scope.pageItems.value, function (error, results) {
|
||||
Client.getUsers($scope.userSearchString, $scope.currentPage, $scope.pageItems.value, function (error, results) {
|
||||
if (error) return console.error(error);
|
||||
|
||||
asyncForEach(results, function (result, iteratorDone) {
|
||||
asyncForEachParallel(results, function (result, iteratorDone) {
|
||||
Client.getUser(result.id, function (error, user) {
|
||||
if (error) return iteratorDone(error);
|
||||
|
||||
@@ -470,12 +471,12 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
}
|
||||
|
||||
function getGroups(callback) {
|
||||
var groups = [ ];
|
||||
var groups = [];
|
||||
|
||||
Client.getGroups(function (error, results) {
|
||||
if (error) return console.error(error);
|
||||
|
||||
asyncForEach(results, function (result, iteratorDone) {
|
||||
asyncForEachParallel(results, function (result, iteratorDone) {
|
||||
Client.getGroup(result.id, function (error, group) {
|
||||
if (error) return iteratorDone(error);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user