--- loncom/interface/loncoursegroups.pm 2014/12/11 01:19:07 1.127 +++ loncom/interface/loncoursegroups.pm 2020/09/09 00:23:50 1.127.2.3 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncoursegroups.pm,v 1.127 2014/12/11 01:19:07 raeburn Exp $ +# $Id: loncoursegroups.pm,v 1.127.2.3 2020/09/09 00:23:50 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -37,6 +37,7 @@ use Apache::lonnavmaps(); use Apache::longroup(); use Apache::portfolio(); use Apache::Constants qw(:common :http); +use HTML::Entities; use LONCAPA::map(); use lib '/home/httpd/lib/perl/'; use LONCAPA; @@ -135,7 +136,7 @@ function changeSort(caller) { } function openGroupRoster(group,status) { var url = '/adm/grouproster?'; - url += 'group='+group+'&status='+status+'&ref=popup'; + url += 'group='+group+'&status='+status+'&ref=popup'; var title = 'Group_Membership'; var options = 'scrollbars=1,resizable=1,menubar=0'; options += ',width=700,height=600'; @@ -169,13 +170,13 @@ sub display_groups { my %curr_groups = (); my %grp_info = (); my %actionlinks = ( - modify => ' ' '/adm/coursegroups?action=modify&refpage='. + $env{'form.refpage'}.'&state=pick_task&groupname=', + view => '', + delete => '/adm/coursegroups?action=delete&refpage='. + $env{'form.refpage'}.'&state=verify&groupname=', + reenable => '/adm/coursegroups?action=reenable&refpage='. + $env{'form.refpage'}.'&state=verify&groupname=', ); my %lt = &Apache::lonlocal::texthash( modify => 'Modify', @@ -226,7 +227,7 @@ sub display_groups { 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.','
',''). + &mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this page.','',''). '
'); return; } @@ -249,7 +250,7 @@ sub display_groups { $lt{'crea'} $lt{'crtd'} $lt{'last'} - $lt{'func'} + $lt{'func'} $lt{'quot'} $lt{'memb'} $lt{'file'} @@ -328,25 +329,31 @@ END if (!$functionality) { $functionality = &mt('None available'); } - my $link = $actionlinks{$action}; + my $link; if ($action eq 'modify' || $action eq 'delete' || $action eq 'reenable') { - $link .= $group; + $link = ''.$lt{$action}.''; } else { - $link .= - &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap); - $link .= (($link=~/\?/)?'&':'?').'ref=grouplist'; - if (exists($env{'form.refpage'})) { - $link .= '&refpage='.$env{'form.refpage'}; + $link = + &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap, + $view_permission); + if ($link) { + $link = ''.$lt{$action}.''; } } - $link .= '">'.$lt{$action}.''; if ($action eq 'view') { if ($manage_permission) { - $link .= '  '.$actionlinks{'modify'}. - $group.'">'.$lt{'modify'}.''. - '  '.$actionlinks{'delete'}. - $group.'">'.$lt{'delete'}.''; + $link .= '  '.$lt{'modify'}.'  '.$lt{'delete'}.''; } } $r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense'). @@ -394,6 +401,7 @@ END } else { my @coursegroups = split(/:/,$env{'request.course.groups'}); if (@coursegroups > 0) { + my $numlinks = 0; $r->print('

'); my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum); if (%curr_groups) { @@ -401,7 +409,7 @@ END 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.','',''). + &mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this page.','',''). '
'); return; } @@ -410,12 +418,36 @@ END $curr_groups{$group}); my $description = &unescape( $group_info{description}); - my $link = - &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap). - '&ref=grouplist'; - $r->print(''.$group,'
'.$description.'

'); + my ($link,$hidden) = + &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap, + $view_permission); + if ($link) { + $link .= '&ref=grouplist'; + $r->print(''. + $description.'

'); + $numlinks ++; + } elsif ($hidden) { + my $numtools = 0; + my $refarg = '&ref=grouplist'; + my $output = + &Apache::longroup::display_group_links($r,$env{'form.grade_target'},$group,'view', + $refarg,\$numtools,$hidden,%group_info); + if ($numtools) { + $r->print(''.$description.''. + '
'.$output.'

'); + $numlinks ++; + } + } } } + if (!$numlinks) { + $r->print( + '

' + .&mt('You do not currently have access to any '.$gpterm.'s' + .' in this '.lc($crstype).'.') + .'

' + ); + } } else { $r->print( '

' @@ -897,7 +929,7 @@ function changeSort(caller) { faq=>9,bug=>'Instructor Interface',}); if ($action eq 'modify' || $action eq 'delete') { &Apache::lonhtmlcommon::add_breadcrumb - ({href=>"/adm/coursegroups?refpage=cusr&action=$action", + ({href=>"/adm/coursegroups?refpage=cusr&action=$action", text=>"Groups", faq=>9,bug=>'Instructor Interface',}); } @@ -909,7 +941,8 @@ function changeSort(caller) { if ($env{'form.refpage'} eq 'grouplist') { &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/$cdom/$cnum/$env{'form.groupname'}/smppg?ref=grouplist", - text=>"Group: $description",}); + text=>&mt('Group').": $description", + no_mt=>1}); } } @@ -3756,21 +3789,21 @@ sub modify_menu { items => [ { linktext => "Modify default $gpterm settings", - url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=change_settings&branch=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', }, { linktext => 'Modify access, tools and privileges for members', - url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=change_members&branch=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', }, { linktext => "Add member(s) to the $gpterm", - url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=add_members&branch=adds', + 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',