--- loncom/interface/loncoursegroups.pm 2010/01/26 03:26:02 1.101.4.2
+++ loncom/interface/loncoursegroups.pm 2010/08/29 22:59:49 1.111
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: loncoursegroups.pm,v 1.101.4.2 2010/01/26 03:26:02 raeburn Exp $
+# $Id: loncoursegroups.pm,v 1.111 2010/08/29 22:59:49 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -170,7 +170,7 @@ sub display_groups {
my %actionlinks = (
modify => ' ' ' '.
+ &mt('An error occurred retrieving information about resources in the course.').' '.
+ &mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this page.',' ',' ').
+ '');
+ return;
+ }
if ($manage_permission) {
if ($action ne 'reenable') {
$r->print(''.$lt{'crng'}.' ');
@@ -324,7 +332,9 @@ END
$action eq 'reenable') {
$link .= $group;
} else {
- $link .= $group.'/smppg?ref=grouplist';
+ $link .=
+ &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap);
+ $link .= (($link=~/\?/)?'&':'?').'ref=grouplist';
if (exists($env{'form.refpage'})) {
$link .= '&refpage='.$env{'form.refpage'};
}
@@ -386,12 +396,23 @@ END
$r->print(' ');
my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
if (%curr_groups) {
+ my $navmap=Apache::lonnavmaps::navmap->new();
+ if (!defined($navmap)) {
+ $r->print('
'.
+ &mt('An error occurred retrieving information about resources in the course.').'
'.
+ &mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this page.','
',' ').
+ '
');
+ return;
+ }
foreach my $group (@coursegroups) {
my %group_info = &Apache::longroup::get_group_settings(
$curr_groups{$group});
my $description = &unescape(
$group_info{description});
- $r->print(''.$group,' '.$description.' ');
+ my $link =
+ &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap).
+ '&ref=grouplist';
+ $r->print(''.$group,' '.$description.' ');
}
}
} else {
@@ -1129,7 +1150,7 @@ sub display_control {
&verify_reenable($r,$groupname,$state,$action,$page,$states,
\%stored,$crstype);
} elsif ($state eq 'result') {
- &reenable_group($r,$cdom,$cnum,$groupname);
+ &reenable_group($r,$cdom,$cnum,$groupname,$crstype);
}
}
}
@@ -1210,9 +1231,9 @@ sub delete_group {
if ($result eq 'ok') {
my $outcome = &modify_folders($cdom,$cnum,$groupname,$crstype);
if ($outcome eq '') {
- $r->print(''
- .&mt('Group successfully deleted.')
- .'
');
+ my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Group successfully deleted.'));
+ $message = &Apache::loncommon::confirmwrapper($message);
+ $r->print($message);
} else {
$r->print('');
if ($crstype eq 'Community') {
@@ -1223,9 +1244,9 @@ sub delete_group {
$r->print('
');
}
} else {
- $r->print(''
- .&mt('Group deletion failed.')
- .'
');
+ my $msg = &Apache::lonhtmlcommon::confirm_success(&mt('Group deletion failed.'),1);
+ $msg = &Apache::loncommon::confirmwrapper($msg);
+ $r->print($msg);
}
}
return;
@@ -1437,9 +1458,9 @@ $context) eq 'ok') {
}
my $outcome = &reenable_folder($cdom,$cnum,$groupname,$description,$crstype);
if ($outcome eq '') {
- $r->print(''
- .&mt('Group successfully re-enabled.')
- .'
');
+ my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Group successfully re-enabled.'));
+ $message = &Apache::loncommon::confirmwrapper($message);
+ $r->print($message);
} else {
$r->print('');
if ($crstype eq 'Community') {
@@ -1450,9 +1471,9 @@ $context) eq 'ok') {
$r->print('
');
}
} else {
- $r->print(''
- .&mt('Re-enabling group failed.')
- .'
');
+ my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Re-enabling group failed.'),1);
+ $message = &Apache::loncommon::confirmwrapper($message);
+ $r->print($message);
}
return;
}
@@ -1605,7 +1626,7 @@ sub general_settings_form {
&access_date_settings($r,$action,$formname,$stored,2,$gpterm,$ucgpterm);
if ($action eq 'create') {
&membership_options($r,$cdom,$cnum,$action,$formname,$sectioncount,3,
- $gpterm,$ucgpterm);
+ $gpterm,$ucgpterm,$crstype);
$nexttext = $$navbuttons{'gtns'};
} else {
my @available = ();
@@ -1786,7 +1807,6 @@ sub membership_options {
} else {
$lt{'asub'} = &mt('A subsequent step will also allow you to specify automatic adding/dropping of group members triggered by specified user role and section [_1]changes[_2] in the course.','',' ');
}
-
my %status_types = (
active => &mt('Currently has access'),
previous => &mt('Previously had access'),
@@ -1805,7 +1825,6 @@ sub membership_options {
$r->print(&Apache::lonhtmlcommon::topic_bar($image,$lt{'pipa'}).'
'.$lt{'gmem'}.' ');
-
if ($action eq 'create') {
$r->print($lt{'picr'}.' '.$lt{'ifno'}.' '.$lt{'asub'});
} else {
@@ -2104,7 +2123,7 @@ sub pick_new_members {
&check_uncheck_buttons($r,$formname,'member',$lt{'addm'});
if (@{$available} > 0 && $granularity eq 'Yes') {
$r->print('
- '.$lt{'setf'}.'
+ '.$lt{'setf'}.'
@@ -2557,7 +2576,7 @@ sub current_membership {
$r->print('
- '.$lt{'curf'}.'
+ '.$lt{'curf'}.'
@@ -2715,7 +2734,7 @@ sub check_uncheck_buttons {
$r->print('
- '.$title.'
+ '.$title.'
@@ -2795,7 +2814,7 @@ sub change_privs_form {
sub add_members_form {
my ($r,$cdom,$cnum,$action,$formname,$page,$startdate,$enddate,$groupname,
$description,$granularity,$quota,$sectioncount,$tools,$functions,
- $stored,$states,$navbuttons,$gpterm,$ucgpterm,$crstype)=@_;
+ $stored,$states,$navbuttons,$gpterm,$ucgpterm,$crstype)=@_;
$r->print(' ');
my @available = ();
my @unavailable = ();
@@ -3015,7 +3034,7 @@ sub member_privileges_form {
$r->print(' ');
}
$r->print(
- ''.&mt($$toolprivs{$tool}{$priv}).' '
+ ''.&mt($$toolprivs{$tool}{$priv}).' '
.''
.' '
@@ -3245,15 +3264,15 @@ sub write_group_data {
$description,$tools,\%groupinfo,
$gpterm,$ucgpterm,$crstype);
if ($result eq 'ok') {
- $r->print(''
- .&mt($ucgpterm.' [_1] was created.',''.$groupname.' ')
- .'
');
+ my $msg = &Apache::lonhtmlcommon::confirm_success(&mt($ucgpterm.' [_1] was created.',''.$groupname.' '));
+ $msg = &Apache::loncommon::confirmwrapper($msg);
+ $r->print($msg);
} else {
- $r->print(''
- .&mt('A problem occurred when creating folders for the new '.$gpterm.' [_1]:'
- ,''.$groupname.' ')
- .' '.$result
- .'
');
+ my $msg = &Apache::lonhtmlcommon::confirm_success(&mt('A problem occurred when creating folders for the new '.$gpterm.' [_1]:'
+ ,''.$groupname.' ')
+ .' '.$result,1);
+ $msg = &Apache::loncommon::confirmwrapper($msg);
+ $r->print($msg);
}
} elsif ($action eq 'modify') {
my (@oldtools,@newtools);
@@ -3299,8 +3318,8 @@ sub write_group_data {
} else {
if ($crstype eq 'Community') {
$error = &mt("An error occurred while setting parameters '.
- 'for Discussion Boards folder: '.
- 'Could not retrieve community information");
+ 'for Discussion Boards folder: '.
+ 'Could not retrieve community information");
} else {
$error = &mt("An error occurred while setting parameters '.
'for Discussion Boards folder: '.
@@ -3324,9 +3343,9 @@ sub write_group_data {
$r->print(''.$error.'
');
}
}
- $r->print(''
- .&mt($ucgpterm.' [_1] was updated.',''.$groupname.' ')
- .'
');
+ my $message = &Apache::lonhtmlcommon::confirm_success(&mt($ucgpterm.' [_1] was updated.',''.$groupname.' '));
+ $message = &Apache::loncommon::confirmwrapper($message);
+ $r->print($message);
}
} else {
my %actiontype = (
@@ -3504,12 +3523,13 @@ sub process_membership {
my $roster_result = &Apache::lonnet::modify_coursegroup_membership($cdom,
$cnum,\%usersettings);
if ($num_ok) {
- foreach my $type (sort(keys(%added))) {
- $r->print(&mt('The following users were successfully [_1]',$type));
+ my $msgall ='';
+ foreach my $type (sort(keys(%added))) {
+ my $message = &mt('The following users were successfully [_1]',$type);
if (!($type eq 'deleted' || $type eq 'expired')) {
- $r->print(&mt(' with the following privileges'));
+ $message .= &mt(' with the following privileges');
}
- $r->print(': ');
+ $message .= ': ';
foreach my $user (@{$added{$type}}) {
my $privlist = '';
if (!($type eq 'deleted' || $type eq 'expired')) {
@@ -3525,10 +3545,14 @@ sub process_membership {
}
$privlist =~ s/, $//;
}
- $r->print($$userdata{$user}[$$idx{fullname}].' - '.$user.$privlist.' ');
+ $message .= $$userdata{$user}[$$idx{fullname}].' - '.$user.$privlist.' ';
}
- $r->print(' ');
+ $message .= ' ';
+ $message = &Apache::lonhtmlcommon::confirm_success($message);
+ $msgall .= $message;
}
+ $msgall = &Apache::loncommon::confirmwrapper($msgall);
+ $r->print($msgall);
}
if ($num_fail) {
foreach my $type (sort(keys(%failed))) {
@@ -3541,13 +3565,15 @@ sub process_membership {
}
$r->print(' ');
}
- if (@unchanged > 0) {
- $r->print(&mt('No change occurred for the following users:').' ');
- foreach my $user (sort(@unchanged)) {
- $r->print($$userdata{$user}[$$idx{fullname}].' - '.$user.' ');
- }
- $r->print(' ');
- }
+# Is that really needed?
+#
+# if (@unchanged > 0) {
+# $r->print(&mt('No change occurred for the following users:').' ');
+# foreach my $user (sort(@unchanged)) {
+# $r->print($$userdata{$user}[$$idx{fullname}].' - '.$user.' ');
+# }
+# $r->print(' ');
+# }
if ($roster_result eq 'ok') {
$r->print(''
.&mt($ucgpterm.' membership list updated.')
@@ -3555,8 +3581,8 @@ sub process_membership {
$r->print('
');
if ($crstype eq 'Community') {
$r->print(&mt("Any currently logged in community users affected by the changes you made"
- .' to group membership or privileges for the [_1] group will need to log out'
- .' and log back in for their LON-CAPA sessions to reflect these changes.'
+ .' to group membership or privileges for the [_1] group will need to log out'
+ .' and log back in for their LON-CAPA sessions to reflect these changes.'
,''.$groupname.' '));
} else {
@@ -3711,36 +3737,32 @@ sub standard_roles {
sub modify_menu {
my ($r,$groupname,$page,$gpterm) = @_;
my @menu =
- (
- { text => "Modify default $gpterm settings",
- help => 'Course_Modify_Group',
- state => 'change_settings',
- branch => 'settings',
+ ( { categorytitle =>'Group Actions',
+ items => [
+
+ { linktext => "Modify default $gpterm settings",
+ url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=change_settings&branch=settings',
+ icon => 'grp_settings.png',
+ alttext => "Modify default $gpterm settings",
+ permission => '1',
+ help => 'Course_Modify_Group',
},
- { text => 'Modify access, tools and/or privileges for previous, '.
- 'future, or current members',
+ { linktext => 'Modify access, tools and privileges for members',
+ url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=change_members&branch=members',
+ icon => 'grp_tools.png',
+ alttext => 'Modify access, tools and privileges for members',
+ permission => '1',
help => 'Course_Modify_Group_Membership',
- state => 'change_members',
- branch => 'members',
},
- { text => "Add member(s) to the $gpterm",
+ { linktext => "Add member(s) to the $gpterm",
+ url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=add_members&branch=adds',
+ icon => 'grp_add.png',
+ alttext => "Add member(s) to the $gpterm",
+ permission => '1',
help => 'Course_Group_Add_Members',
- state => 'add_members',
- branch => 'adds',
- },
- );
- my $menu_html = '';
- foreach my $menu_item (@menu) {
- $menu_html .=
- '
';
- $menu_html.= &mt($menu_item->{'text'}).' ';
- if (exists($menu_item->{'help'})) {
- $menu_html.=
- &Apache::loncommon::help_open_topic($menu_item->{'help'});
- }
- $menu_html.='
'.$/;
- }
- $r->print($menu_html);
+ }]}
+ );
+ $r->print(&Apache::lonhtmlcommon::generate_menu(@menu));
return;
}
@@ -4233,3 +4255,4 @@ sub check_changes {
}
1;
+