diff --git a/lib/WebGUI/Account/FriendManager.pm b/lib/WebGUI/Account/FriendManager.pm
index b44658d19..ff37b33cb 100644
--- a/lib/WebGUI/Account/FriendManager.pm
+++ b/lib/WebGUI/Account/FriendManager.pm
@@ -133,6 +133,8 @@ sub www_editFriends {
my $userId = shift || $form->get('userId', 'guid');
my $user = WebGUI::User->new($session, $userId);
+ my $groupName = shift || $form->get('groupName');
+
##List users in my friends group. Each friend gets a delete link.
my $friendsList = $user->friends->getUserList();
my @friends_loop = ();
@@ -149,14 +151,20 @@ sub www_editFriends {
##List users in all administrated groups. Friends are added one at a time.
my @manageableUsers = ();
- my $groupIds = $session->setting->get('groupsToManageFriends');
- my @groupIds = split "\n", $groupIds;
- foreach my $groupId (@groupIds) {
- my $group = WebGUI::Group->new($session, $groupId);
- next GROUP unless $group->getId || $group->getId eq 'new';
+ if ($groupName) {
+ my $group = WebGUI::Group->find($session, $groupName);
push @manageableUsers, @{ $group->getUsersNotIn($user->{_user}->{'friendsGroup'}, 'withoutExpired') };
}
- @manageableUsers = uniq @manageableUsers;
+ else {
+ my $groupIds = $session->setting->get('groupsToManageFriends');
+ my @groupIds = split "\n", $groupIds;
+ foreach my $groupId (@groupIds) {
+ my $group = WebGUI::Group->new($session, $groupId);
+ next GROUP unless $group->getId || $group->getId eq 'new';
+ push @manageableUsers, @{ $group->getUsersNotIn($user->{_user}->{'friendsGroup'}, 'withoutExpired') };
+ }
+ @manageableUsers = uniq @manageableUsers;
+ }
my %usersToAdd = ();
tie %usersToAdd, 'Tie::IxHash';
my $manager = $session->user;
@@ -195,7 +203,9 @@ sub www_editFriends {
$var->{userId} = $user->userId;
$var->{manageUrl} = $self->getUrl('module=friendManager;do=view');
$var->{removeAll} = WebGUI::Form::checkbox($session, { name => 'removeAllFriends', value => 'all', });
- $var->{addManagers} = WebGUI::Form::checkbox($session, { name => 'addManagers', value => 'addManagers', });
+ if (! $groupName) {
+ $var->{addManagers} = WebGUI::Form::checkbox($session, { name => 'addManagers', value => 'addManagers', });
+ }
return $self->processTemplate($var,$session->setting->get("fmEditTemplateId"));
}
diff --git a/sbin/packages/root_import_account_friendmanager.wgpkg b/sbin/packages/root_import_account_friendmanager.wgpkg
index 699150208..403432270 100644
Binary files a/sbin/packages/root_import_account_friendmanager.wgpkg and b/sbin/packages/root_import_account_friendmanager.wgpkg differ
diff --git a/www/extras/yui-webgui/build/friendManager/friendManager.js b/www/extras/yui-webgui/build/friendManager/friendManager.js
index f439b51f7..126d4adb0 100644
--- a/www/extras/yui-webgui/build/friendManager/friendManager.js
+++ b/www/extras/yui-webgui/build/friendManager/friendManager.js
@@ -61,9 +61,10 @@ WebGUI.FriendManager.formatGroups = function ( el, oRecord, oColumn, oData ) {
el.innerHTML = 'Edit all';
var groups = oData.split("\n");
for (var idx=0; idx < groups.length; idx++) {
- var group = groups[idx];
+ var group = groups[idx];
+ var groupUri = encodeURI(group);
el.innerHTML += ' ';
- el.innerHTML += ''+group+'';
+ el.innerHTML += ''+group+'';
}
}