Use JSON to send/receive group data.

Squashed commits from PR #4364 for master.
This commit is contained in:
Owen Winkler 2013-08-15 06:19:40 -04:00
parent 75e9015b54
commit cd7e57e8ec
4 changed files with 22 additions and 22 deletions

View File

@ -41,7 +41,7 @@ try {
OC_JSON::success(array("data" => OC_JSON::success(array("data" =>
array( array(
"username" => $username, "username" => $username,
"groups" => implode( ", ", OC_Group::getUserGroups( $username ))))); "groups" => OC_Group::getUserGroups( $username ))));
} catch (Exception $exception) { } catch (Exception $exception) {
OC_JSON::error(array("data" => array( "message" => $exception->getMessage()))); OC_JSON::error(array("data" => array( "message" => $exception->getMessage())));
} }

View File

@ -89,10 +89,10 @@ var UserList = {
tr.attr('data-displayName', displayname); tr.attr('data-displayName', displayname);
tr.find('td.name').text(username); tr.find('td.name').text(username);
tr.find('td.displayName > span').text(displayname); tr.find('td.displayName > span').text(displayname);
var groupsSelect = $('<select multiple="multiple" class="groupsselect" data-placehoder="Groups" title="' + t('settings', 'Groups') + '"></select>').attr('data-username', username).attr('data-user-groups', groups); var groupsSelect = $('<select multiple="multiple" class="groupsselect" data-placehoder="Groups" title="' + t('settings', 'Groups') + '"></select>').attr('data-username', username).attr('data-user-groups', [groups]);
tr.find('td.groups').empty(); tr.find('td.groups').empty();
if (tr.find('td.subadmins').length > 0) { if (tr.find('td.subadmins').length > 0) {
var subadminSelect = $('<select multiple="multiple" class="subadminsselect" data-placehoder="subadmins" title="' + t('settings', 'Group Admin') + '">').attr('data-username', username).attr('data-user-groups', groups).attr('data-subadmin', subadmin); var subadminSelect = $('<select multiple="multiple" class="subadminsselect" data-placehoder="subadmins" title="' + t('settings', 'Group Admin') + '">').attr('data-username', username).attr('data-user-groups', [groups]).attr('data-subadmin', [subadmin]);
tr.find('td.subadmins').empty(); tr.find('td.subadmins').empty();
} }
$.each(this.availableGroups, function (i, group) { $.each(this.availableGroups, function (i, group) {
@ -227,7 +227,7 @@ var UserList = {
var user = element.attr('data-username'); var user = element.attr('data-username');
if ($(element).attr('class') === 'groupsselect') { if ($(element).attr('class') === 'groupsselect') {
if (element.data('userGroups')) { if (element.data('userGroups')) {
checked = String(element.data('userGroups')).split(', '); checked = element.data('userGroups');
} }
if (user) { if (user) {
var checkHandeler = function (group) { var checkHandeler = function (group) {
@ -244,11 +244,10 @@ var UserList = {
group: group group: group
}, },
function (response) { function (response) {
if(response.status === 'success') { if(response.status === 'success' && UserList.availableGroups.indexOf(response.data.groupname) === -1 && response.data.action === 'add') {
if(UserList.availableGroups.indexOf(response.data.groupname) === -1 && response.data.action === 'add') { UserList.availableGroups.push(response.data.groupname);
UserList.availableGroups.push(response.data.groupname); }
} if(response.data.message) {
} else {
OC.Notification.show(response.data.message); OC.Notification.show(response.data.message);
} }
} }
@ -282,7 +281,7 @@ var UserList = {
} }
if ($(element).attr('class') === 'subadminsselect') { if ($(element).attr('class') === 'subadminsselect') {
if (element.data('subadmin')) { if (element.data('subadmin')) {
checked = String(element.data('subadmin')).split(', '); checked = element.data('subadmin');
} }
var checkHandeler = function (group) { var checkHandeler = function (group) {
if (group === 'admin') { if (group === 'admin') {
@ -321,7 +320,7 @@ var UserList = {
$(document).ready(function () { $(document).ready(function () {
UserList.doSort(); UserList.doSort();
UserList.availableGroups = $('#content table').attr('data-groups').split(', '); UserList.availableGroups = $('#content table').data('groups');
$('tbody tr:last').bind('inview', function (event, isInView, visiblePartX, visiblePartY) { $('tbody tr:last').bind('inview', function (event, isInView, visiblePartX, visiblePartY) {
OC.Router.registerLoadedCallback(function () { OC.Router.registerLoadedCallback(function () {
UserList.update(); UserList.update();
@ -450,7 +449,7 @@ $(document).ready(function () {
t('settings', 'Error creating user')); t('settings', 'Error creating user'));
} else { } else {
if (result.data.groups) { if (result.data.groups) {
var addedGroups = result.data.groups.split(', '); var addedGroups = result.data.groups;
UserList.availableGroups = $.unique($.merge(UserList.availableGroups, addedGroups)); UserList.availableGroups = $.unique($.merge(UserList.availableGroups, addedGroups));
} }
if($('tr[data-uid="' + username + '"]').length === 0) { if($('tr[data-uid="' + username + '"]').length === 0) {

View File

@ -78,7 +78,7 @@ $_['subadmingroups'] = array_flip($items);
</div> </div>
</div> </div>
<table class="hascontrols" data-groups="<?php p(implode(', ', $allGroups));?>"> <table class="hascontrols" data-groups="<?php p(json_encode($allGroups));?>">
<thead> <thead>
<tr> <tr>
<th id='headerName'><?php p($l->t('Username'))?></th> <th id='headerName'><?php p($l->t('Username'))?></th>
@ -108,7 +108,7 @@ $_['subadmingroups'] = array_flip($items);
<td class="groups"><select <td class="groups"><select
class="groupsselect" class="groupsselect"
data-username="<?php p($user['name']) ;?>" data-username="<?php p($user['name']) ;?>"
data-user-groups="<?php p($user['groups']) ;?>" data-user-groups="<?php p(json_encode($user['groups'])) ;?>"
data-placeholder="groups" title="<?php p($l->t('Groups'))?>" data-placeholder="groups" title="<?php p($l->t('Groups'))?>"
multiple="multiple"> multiple="multiple">
<?php foreach($_["groups"] as $group): ?> <?php foreach($_["groups"] as $group): ?>
@ -120,7 +120,7 @@ $_['subadmingroups'] = array_flip($items);
<td class="subadmins"><select <td class="subadmins"><select
class="subadminsselect" class="subadminsselect"
data-username="<?php p($user['name']) ;?>" data-username="<?php p($user['name']) ;?>"
data-subadmin="<?php p($user['subadmin']);?>" data-subadmin="<?php p(json_encode($user['subadmin']));?>"
data-placeholder="subadmins" title="<?php p($l->t('Group Admin'))?>" data-placeholder="subadmins" title="<?php p($l->t('Group Admin'))?>"
multiple="multiple"> multiple="multiple">
<?php foreach($_["subadmingroups"] as $group): ?> <?php foreach($_["subadmingroups"] as $group): ?>

View File

@ -54,15 +54,16 @@ foreach($accessibleusers as $uid => $displayName) {
$name = $displayName; $name = $displayName;
if ( $displayName !== $uid ) { if ( $displayName !== $uid ) {
$name = $name . ' ('.$uid.')'; $name = $name . ' ('.$uid.')';
} }
$users[] = array( $users[] = array(
"name" => $uid, "name" => $uid,
"displayName" => $displayName, "displayName" => $displayName,
"groups" => join( ", ", /*array_intersect(*/OC_Group::getUserGroups($uid)/*, OC_SubAdmin::getSubAdminsGroups(OC_User::getUser()))*/), "groups" => OC_Group::getUserGroups($uid),
'quota'=>$quota, 'quota' => $quota,
'isQuotaUserDefined'=>$isQuotaUserDefined, 'isQuotaUserDefined' => $isQuotaUserDefined,
'subadmin'=>implode(', ', OC_SubAdmin::getSubAdminsGroups($uid))); 'subadmin' => OC_SubAdmin::getSubAdminsGroups($uid),
);
} }
foreach( $accessiblegroups as $i ) { foreach( $accessiblegroups as $i ) {