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