Add user multi-select to group edit dialog
This commit is contained in:
@@ -8,6 +8,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
|
||||
$scope.ready = false;
|
||||
$scope.users = [];
|
||||
$scope.usersById = [];
|
||||
$scope.groups = [];
|
||||
$scope.groupsById = { };
|
||||
$scope.config = Client.getConfig();
|
||||
@@ -286,6 +287,8 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
error: {},
|
||||
groupInfo: {},
|
||||
name: '',
|
||||
selectedUsers: [],
|
||||
|
||||
roles: {
|
||||
canManageUsers: false,
|
||||
canManageApps: false,
|
||||
@@ -296,6 +299,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
$scope.groupEdit.error = {};
|
||||
$scope.groupEdit.groupInfo = groupInfo;
|
||||
$scope.groupEdit.name = groupInfo.name;
|
||||
$scope.groupEdit.selectedUsers = groupInfo.userIds.map(function (uid) { return $scope.usersById[uid]; });
|
||||
|
||||
for (var i = 0; i < groupInfo.roles.length; i++) {
|
||||
switch (groupInfo.roles[i]) {
|
||||
@@ -322,7 +326,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
if ($scope.groupEdit.roles.canManageDomains) roles.push('manage_domains');
|
||||
|
||||
Client.updateGroup($scope.groupEdit.groupInfo.id, $scope.groupEdit.name, roles, function (error) {
|
||||
$scope.groupEdit.busy = false;
|
||||
$scope.groupEdit.busy = !!error;
|
||||
|
||||
if (error && error.statusCode === 409) {
|
||||
$scope.groupEdit.error.name = 'Name already taken';
|
||||
@@ -337,9 +341,17 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
}
|
||||
if (error) return console.error('Unable to edit group.', error.statusCode, error.message);
|
||||
|
||||
refresh();
|
||||
var userIds = $scope.groupEdit.selectedUsers.map(function (u) { return u.id; });
|
||||
|
||||
$('#groupEditModal').modal('hide');
|
||||
Client.setGroupMembers($scope.groupEdit.groupInfo.id, userIds, function (error) {
|
||||
$scope.groupEdit.busy = false;
|
||||
|
||||
if (error) return console.error('Unable to edit group.', error.statusCode, error.message);
|
||||
|
||||
refresh();
|
||||
|
||||
$('#groupEditModal').modal('hide');
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -464,7 +476,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
getGroups(function (error, result) {
|
||||
if (error) return console.error('Unable to get group listing.', error);
|
||||
|
||||
$scope.groups = result;
|
||||
angular.copy(result, $scope.groups);
|
||||
$scope.groupsById = { };
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
$scope.groupsById[result[i].id] = result[i];
|
||||
@@ -473,7 +485,11 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
getUsers(function (error, result) {
|
||||
if (error) return console.error('Unable to get user listing.', error);
|
||||
|
||||
$scope.users = result;
|
||||
angular.copy(result, $scope.users);
|
||||
$scope.usersById = { };
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
$scope.usersById[result[i].id] = result[i];
|
||||
}
|
||||
|
||||
$scope.ready = true;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user