diff --git a/lib/WebGUI/Account/FriendManager.pm b/lib/WebGUI/Account/FriendManager.pm index 0270dbc34..b44658d19 100644 --- a/lib/WebGUI/Account/FriendManager.pm +++ b/lib/WebGUI/Account/FriendManager.pm @@ -182,7 +182,7 @@ sub www_editFriends { $var->{formHeader} = WebGUI::Form::formHeader($session, { action => $self->getUrl('module=friendManager;do=editFriendsSave'), }) - . WebGUI::Form::hidden($session, { name => 'userId', value => $userId } ); + . WebGUI::Form::hidden($session, { name => 'userId', value => $user->userId } ); $var->{addUserForm} = WebGUI::Form::selectBox($session, { name => 'userToAdd', options => \%usersToAdd, @@ -269,14 +269,36 @@ sub www_getFriendsAsJson { return '{}'; } my @records = (); + my $groups = $session->setting->get('groupsToManageFriends'); + my @groupIds = split "\n", $groups; + @groupIds = grep { $_ ne $groupId } @groupIds; + my $groupNames = join "\n", + map { $_->name } + map { WebGUI::Group->new($session, $_) } + @groupIds; USER: foreach my $userId (@{ $group->getUsers} ) { my $user = WebGUI::User->new($session, $userId); next USER unless $user; - my $friendsCount = scalar @{ $user->friends->getUsers() }; + my $friendsList = $user->friends->getUserList(); + my $friendsCount = scalar keys %{ $friendsList }; + my $friends = ''; + NAME: foreach my $name ( values %{ $friendsList }) { + if (length $friends + length $name < 45) { + if ($friends) { + $friends .= ', '; + } + $friends .= $name; + } + else { + last NAME; + } + } push @records, { - userId => $userId, - username => $user->username, - friends => $friendsCount, + userId => $userId, + username => $user->username, + friendsCount => $friendsCount, + friends => $friends, + groups => $groupNames, }; } ##Sort by username to make the datatable happy diff --git a/www/extras/yui-webgui/build/friendManager/friendManager.js b/www/extras/yui-webgui/build/friendManager/friendManager.js index c318ac299..f439b51f7 100644 --- a/www/extras/yui-webgui/build/friendManager/friendManager.js +++ b/www/extras/yui-webgui/build/friendManager/friendManager.js @@ -40,9 +40,11 @@ WebGUI.FriendManager.responseSchema = { resultsList: 'records', fields: [ - { key: 'userId', parser: 'string' }, - { key: 'username', parser: 'string' }, - { key: 'friends', parser: 'number' }, + { key: 'userId', parser: 'string' }, + { key: 'username', parser: 'string' }, + { key: 'friendsCount', parser: 'number' }, + { key: 'friends', parser: 'string' }, + { key: 'groups', parser: 'string' }, ], metaFields: { totalRecords: "recordsReturned" // Access to value in the server response @@ -50,27 +52,29 @@ WebGUI.FriendManager.responseSchema }; WebGUI.FriendManager.formatUsername = function ( el, oRecord, oColumn, oData ) { -// var link = document.createElement('a'); -// var myId = YAHOO.util.Dom.generateId(); -// elCell.innerHTML = ''; -// var editButton = new YAHOO.widget.Button( myId, -// { -// type : "link", -// href : "?op=account;module=friendManager;do=editFriends;uid="+oRecord.getData('userId'), -// label : "EDIT", -// } -// ); var userId = oRecord.getData('userId'); - el.innerHTML = 'edit '; - el.innerHTML += '' + oData + ''; + el.innerHTML = '' + oData + ''; +} + +WebGUI.FriendManager.formatGroups = function ( el, oRecord, oColumn, oData ) { + var userId = oRecord.getData('userId'); + el.innerHTML = 'Edit all'; + var groups = oData.split("\n"); + for (var idx=0; idx < groups.length; idx++) { + var group = groups[idx]; + el.innerHTML += ' '; + el.innerHTML += ''+group+''; + } } WebGUI.FriendManager.ColumnDefs = [ // sortable:true enables sorting //{key:"username", label:WebGUI.FriendManager.i18n.get('WebGUI', '50' ), sortable: true}, //{key:"friends", label:WebGUI.FriendManager.i18n.get('Account_Friends', 'title' ), sortable: true}, - {key:"username", label:"username", sortable: true, formatter: WebGUI.FriendManager.formatUsername }, - {key:"friends", label:"friends", sortable: true}, - {key:"userId", label:"userId", sortable: true}, + {key:"groups", label:"groups", sortable: false, formatter: WebGUI.FriendManager.formatGroups }, + {key:"username", label:"username", sortable: true, formatter: WebGUI.FriendManager.formatUsername }, + {key:"friendsCount", label:"friendsCount", sortable: true}, + {key:"friends", label:"friends", sortable: false}, + {key:"userId", label:"userId", sortable: true}, ]; //Per object code