diff --git a/docs/upgrades/upgrade_4.7.0-4.8.0.sql b/docs/upgrades/upgrade_4.7.0-4.8.0.sql index 4fc22cce6..f60c57375 100644 --- a/docs/upgrades/upgrade_4.7.0-4.8.0.sql +++ b/docs/upgrades/upgrade_4.7.0-4.8.0.sql @@ -202,6 +202,18 @@ delete from help where helpId=47 and namespace='WebGUI'; insert into help (helpId,namespace,titleId,bodyId,seeAlso) values (47, 'WebGUI', 697, 698, '1,Article;17,WebGUI;1,MessageBoard;1,Poll;2,WebGUI;1,USS;'); delete from help where helpId=2 and namespace='FileManager'; insert into help (helpId,namespace,titleId,bodyId,seeAlso) values (2, 'FileManager', 72, 73, '1,FileManager;'); +create table groupGroupings ( + groupId int not null, + inGroup int not null +); +insert into international (internationalId,languageId,namespace,message,lastUpdated) values (813,1,'WebGUI','Groups In This Group', 1037583186); +insert into international (internationalId,languageId,namespace,message,lastUpdated) values (812,1,'WebGUI','Your message has been sent.', 1037580328); +insert into international (internationalId,languageId,namespace,message,lastUpdated) values (811,1,'WebGUI','From', 1037580145); +insert into international (internationalId,languageId,namespace,message,lastUpdated) values (810,1,'WebGUI','send', 1037579743); +insert into international (internationalId,languageId,namespace,message,lastUpdated) values (809,1,'WebGUI','Email Group', 1037579611); +insert into international (internationalId,languageId,namespace,message,lastUpdated) values (808,1,'WebGUI','Email this group.', 1037579487); +insert into international (internationalId,languageId,namespace,message,lastUpdated) values (807,1,'WebGUI','Manage the groups in this group.', 1037579473); +insert into international (internationalId,languageId,namespace,message,lastUpdated) values (806,1,'WebGUI','Delete this group.', 1037579396); diff --git a/lib/WebGUI/Operation/Group.pm b/lib/WebGUI/Operation/Group.pm index 22b09e8ad..b4bcdc00c 100644 --- a/lib/WebGUI/Operation/Group.pm +++ b/lib/WebGUI/Operation/Group.pm @@ -17,6 +17,7 @@ use WebGUI::DateTime; use WebGUI::HTMLForm; use WebGUI::Icon; use WebGUI::International; +use WebGUI::Mail; use WebGUI::Operation::Shared; use WebGUI::Paginator; use WebGUI::Privilege; @@ -27,7 +28,8 @@ use WebGUI::Utility; our @ISA = qw(Exporter); our @EXPORT = qw(&www_manageUsersInGroup &www_deleteGroup &www_deleteGroupConfirm &www_editGroup - &www_editGroupSave &www_listGroups); + &www_editGroupSave &www_listGroups &www_emailGroup &www_emailGroupSend &www_manageGroupsInGroup + &www_addGroupsToGroupSave &www_deleteGroupGrouping); #------------------------------------------------------------------- sub _submenu { @@ -39,12 +41,25 @@ sub _submenu { || $session{form}{op} eq "deleteGroupConfirm") { $menu{WebGUI::URL::page("op=editGroup&gid=".$session{form}{gid})} = WebGUI::International::get(753); $menu{WebGUI::URL::page("op=manageUsersInGroup&gid=".$session{form}{gid})} = WebGUI::International::get(754); - $menu{WebGUI::URL::page("op=deleteGroup&gid=".$session{form}{gid})} = WebGUI::International::get(755); + $menu{WebGUI::URL::page("op=manageGroupsInGroup&gid=".$session{form}{gid})} = WebGUI::International::get(807); + $menu{WebGUI::URL::page("op=emailGroup&gid=".$session{form}{gid})} = WebGUI::International::get(808); + $menu{WebGUI::URL::page("op=deleteGroup&gid=".$session{form}{gid})} = WebGUI::International::get(806); } $menu{WebGUI::URL::page("op=listGroups")} = WebGUI::International::get(756); return menuWrapper($_[0],\%menu); } +#------------------------------------------------------------------- +sub www_addGroupsToGroupSave { + return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3)); + my (@groups, $group); + @groups = $session{cgi}->param('groups'); + foreach $group (@groups) { + WebGUI::SQL->write("insert into groupGroupings values ($group,$session{form}{gid})"); + } + return www_manageGroupsInGroup(); +} + #------------------------------------------------------------------- sub www_deleteGroup { return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3)); @@ -69,6 +84,13 @@ sub www_deleteGroupConfirm { return www_listGroups(); } +#------------------------------------------------------------------- +sub www_deleteGroupGrouping { + return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3)); + WebGUI::SQL->write("delete from groupGroupings where inGroup=$session{form}{gid} and groupId=$session{form}{delete}"); + return www_manageGroupsInGroup(); +} + #------------------------------------------------------------------- sub www_editGroup { return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3)); @@ -115,6 +137,48 @@ sub www_editGroupSave { return www_listGroups(); } +#------------------------------------------------------------------- +sub www_emailGroup { + return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3)); + my ($output,$f); + $output = '
| '.WebGUI::International::get(84).' | |
| ' + .deleteIcon('op=deleteGroupGrouping&gid='.$session{form}{gid}.'&delete='.$group->{id}) + .' | ' + .$group->{name}.' |