diff --git a/lib/WebGUI/Account/FriendManager.pm b/lib/WebGUI/Account/FriendManager.pm index 92f2f5b85..5bfc4e666 100644 --- a/lib/WebGUI/Account/FriendManager.pm +++ b/lib/WebGUI/Account/FriendManager.pm @@ -194,6 +194,7 @@ sub www_editFriends { $var->{username} = $user->username; $var->{userId} = $user->userId; $var->{manageUrl} = $self->getUrl('module=friendManager;do=view'); + $var->{removeAll} = WebGUI::Form::checkbox($session, { name => 'removeAllFriends', value => 'all', }); return $self->processTemplate($var,$session->setting->get("fmEditTemplateId")); } @@ -222,8 +223,13 @@ sub www_editFriendsSave () { $ufriend->add([$userToAdd]); } + ##Remove all has priority, that way we don't delete friends twice. + my $removeAll = $form->process('removeAllFriends','checkbox'); my @usersToRemove = $form->process('friendToAxe', 'checkList'); - if (scalar @usersToRemove) { + if ($removeAll eq 'all') { + $ufriend->delete($user->friends->getUsers()); + } + elsif (scalar @usersToRemove) { $ufriend->delete(\@usersToRemove); } diff --git a/lib/WebGUI/Help/Account_FriendManager.pm b/lib/WebGUI/Help/Account_FriendManager.pm index 6514ed285..3bece6aaf 100644 --- a/lib/WebGUI/Help/Account_FriendManager.pm +++ b/lib/WebGUI/Help/Account_FriendManager.pm @@ -44,6 +44,7 @@ our $HELP = { { name => 'checkForm', }, ], }, + { name => 'removeAll', }, { name => 'submit', required => 1, }, { name => 'formFooter', diff --git a/lib/WebGUI/i18n/English/Account_FriendManager.pm b/lib/WebGUI/i18n/English/Account_FriendManager.pm index 612c67bd3..56bac13fa 100644 --- a/lib/WebGUI/i18n/English/Account_FriendManager.pm +++ b/lib/WebGUI/i18n/English/Account_FriendManager.pm @@ -138,6 +138,17 @@ our $I18N = { lastUpdated => 0, }, + 'removeAll' => { + message => q{A checkbox to remove all friends from this user.}, + lastUpdated => 0, + }, + + 'remove all' => { + message => q{Remove all}, + context => q{Template label. To remove all members of a set, to emtpy it.}, + lastUpdated => 0, + }, + 'submit' => { message => q{A button with internationalized label to submit the form.}, lastUpdated => 0, diff --git a/sbin/packages/root_import_account_friendmanager.wgpkg b/sbin/packages/root_import_account_friendmanager.wgpkg index ab0ddd050..d8e25e82e 100644 Binary files a/sbin/packages/root_import_account_friendmanager.wgpkg and b/sbin/packages/root_import_account_friendmanager.wgpkg differ