diff --git a/lib/WebGUI/Account/FriendManager.pm b/lib/WebGUI/Account/FriendManager.pm new file mode 100644 index 000000000..5d899e269 --- /dev/null +++ b/lib/WebGUI/Account/FriendManager.pm @@ -0,0 +1,119 @@ +package WebGUI::Account::FriendManager; + +use strict; + +use WebGUI::Exception; +use WebGUI::International; +use WebGUI::Pluggable; +use WebGUI::Utility; +use base qw/WebGUI::Account/; + +=head1 NAME + +Package WebGUI::Account::FriendManager + +=head1 DESCRIPTION + +Allow friends to be assigned to one another instead of the usual social +networking. + +The style and layout settings are always inherited from the main Account +module. + +=head1 SYNOPSIS + +use WebGUI::Account::FriendManager; + +=head1 METHODS + +These methods are available from this class: + +=cut + +#------------------------------------------------------------------- + +=head2 canView ( ) + + Returns whether or not the user can view the the tab for this module + +=cut + +sub canView { + my $self = shift; + my $session = $self->session; + return $session->user->isInGroup($session->setting->get('groupIdAdminFriends')); +} + +#------------------------------------------------------------------- + +=head2 editSettingsForm ( ) + +Creates form elements for the settings page custom to this account module. + +=cut + +sub editSettingsForm { + my $self = shift; + my $session = $self->session; + my $i18n = WebGUI::International->new($session,'Account_FriendManager'); + my $f = WebGUI::HTMLForm->new($session); + + $f->group( + name => "groupIdAdminFriends", + value => $session->setting->get('groupIdAdminFriends'), + label => $i18n->get("setting groupIdAdminFriends label"), + hoverHelp => $i18n->get("setting groupIdAdminFriends hoverHelp") + ); + $f->group( + name => "groupsToManageFriends", + value => $session->setting->get('groupsToManageFriends'), + multiple => 1, + label => $i18n->get("groupsToManageFriends label"), + hoverHelp => $i18n->get("groupsToManageFriends hoverHelp") + ); + $f->template( + name => "friendManagerViewTemplateId", + value => $self->session->setting->get("friendManagerViewTemplateId"), + namespace => "Account/FriendManager/View", + label => $i18n->get("view template label"), + hoverHelp => $i18n->get("view template hoverHelp") + ); + + return $f->printRowsOnly; +} + +#------------------------------------------------------------------- + +=head2 editSettingsFormSave ( ) + + Creates form elements for the settings page custom to this account module + +=cut + +sub editSettingsFormSave { + my $self = shift; + my $session = $self->session; + my $setting = $session->setting; + my $form = $session->form; + + $setting->set("moduleViewTemplateId", $form->process("moduleViewTemplateId","template")); +} + +#------------------------------------------------------------------- + +=head2 www_view ( ) + +The main view page for editing the user's profile. + +=cut + +sub www_view { + my $self = shift; + my $session = $self->session; + my $var = {}; + + return $self->processTemplate($var,$session->setting->get("moduleViewTemplateId")); +} + + +1; diff --git a/lib/WebGUI/i18n/English/Account_FriendManager.pm b/lib/WebGUI/i18n/English/Account_FriendManager.pm new file mode 100644 index 000000000..eb41d37b6 --- /dev/null +++ b/lib/WebGUI/i18n/English/Account_FriendManager.pm @@ -0,0 +1,43 @@ +package WebGUI::i18n::English::FriendManager; +use strict; + +our $I18N = { + + 'settings groupIdAdminFriends label' => { + message => q{Friends Manager}, + lastUpdated => 0, + }, + + 'settings groupIdAdminFriends hoverHelp' => { + message => q{Group to manage friends, to assign people to one another and to view the interface for managing friends.}, + lastUpdated => 0, + }, + + 'view template label' => { + message => q{View Template}, + lastUpdated => 0, + }, + + 'view template hoverHelp' => { + message => q{This template renders the Friend Manager itself, inside the layout and style templates.}, + lastUpdated => 0, + }, + + 'groupsToManageFriends label' => { + message => q{Groups to Manage as Friends}, + lastUpdated => 0, + }, + + 'groupsToManageFriends hoverHelp' => { + message => q{Choose groups of users whose Friends Networks you want to Manage.}, + lastUpdated => 0, + }, + + 'title' => { + message => q{Friend Manager}, + lastUpdated => 0, + }, + +}; + +1;