--- loncom/interface/loncoursegroups.pm 2017/03/19 17:59:15 1.127.2.1 +++ loncom/interface/loncoursegroups.pm 2016/02/27 03:06:38 1.129 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncoursegroups.pm,v 1.127.2.1 2017/03/19 17:59:15 raeburn Exp $ +# $Id: loncoursegroups.pm,v 1.129 2016/02/27 03:06:38 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -37,7 +37,6 @@ 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; @@ -136,7 +135,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'; @@ -170,13 +169,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=', + modify => ' ' 'Modify', @@ -227,7 +226,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; } @@ -250,7 +249,7 @@ sub display_groups { $lt{'crea'} $lt{'crtd'} $lt{'last'} - $lt{'func'} + $lt{'func'} $lt{'quot'} $lt{'memb'} $lt{'file'} @@ -332,27 +331,25 @@ END my $link; if ($action eq 'modify' || $action eq 'delete' || $action eq 'reenable') { - $link = ''.$lt{$action}.''; + $link = $actionlinks{$action}.$group.'">'.$lt{$action}.''; } else { - $link = - &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap); + $link = + &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap,$view_permission); if ($link) { - $link = ''.$lt{$action}.''; - } + } } if ($action eq 'view') { if ($manage_permission) { - $link .= '  '.$lt{'modify'}.'  '.$lt{'delete'}.''; + $link .= '  '.$actionlinks{'modify'}. + $group.'">'.$lt{'modify'}.''. + '  '.$actionlinks{'delete'}. + $group.'">'.$lt{'delete'}.''; } } $r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense'). @@ -400,6 +397,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) { @@ -407,7 +405,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; } @@ -416,12 +414,35 @@ 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( '

' @@ -903,7 +924,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',}); } @@ -3762,21 +3783,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',