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+''; } }