--- loncom/interface/lonwhatsnew.pm 2016/10/23 21:52:26 1.105.2.12 +++ loncom/interface/lonwhatsnew.pm 2016/11/09 18:02:56 1.105.2.13 @@ -1,5 +1,5 @@ # -# $Id: lonwhatsnew.pm,v 1.105.2.12 2016/10/23 21:52:26 raeburn Exp $ +# $Id: lonwhatsnew.pm,v 1.105.2.13 2016/11/09 18:02:56 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -62,14 +62,32 @@ sub handler { my $command = $env{'form.command'}; my $refpage = $env{'form.refpage'}; - my %checkallowed = ( coursenormalmail => 1, - coursecritmail => 1, ); + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; + + my ($isadhoc,%checkallowed); + + if ($env{'request.role'} =~ m{^(cc|co)/}) { + my $rolecode = $1; + if ($env{"environment.internal.$cdom.$crs.$env{'request.role'}.adhoc"}) { + $isadhoc = 1; + } + } elsif ($env{'request.role'} =~ m{^cr/$cdom/$cdom\-domainconfig/(\w+)\./}) { + my $rolename = $1; + if ($env{"environment.internal.$cdom.$crs.cr/$cdom/$cdom-domainconfig/$rolename.adhoc"}) { + $isadhoc = 1; + } + } + unless ($isadhoc) { + %checkallowed = ( coursenormalmail => 1, + coursecritmail => 1,); + } foreach my $perm_check (['whn','whatsnew',1], ['pch','coursediscussion',1], ['mgr','handgrading',1], ['vgr','abovethreshold',1], - ['opa','haserrors',1], - ['mdc','versionchanges',0], + ['vgr','haserrors',1], + ['whn','versionchanges',1], ['vcl','newroles',1], ['vcl','oldroles',1], ['whn','crslogin',1], @@ -157,7 +175,7 @@ sub handler { ("What's New?",#'Course_Action_Items_Display' )); } - &display_main_box($r,$command,$refpage,\%checkallowed); + &display_main_box($r,$command,$refpage,\%checkallowed,$cdom,$crs); return OK; } @@ -168,7 +186,7 @@ sub handler { #------------------------------ sub display_main_box { - my ($r,$command,$refpage,$checkallowed) = @_; + my ($r,$command,$refpage,$checkallowed,$cdom,$crs) = @_; my $domain=&Apache::loncommon::determinedomain(); my $function = &Apache::loncommon::get_users_function(); my $lctype = lc(&Apache::loncommon::course_type()); @@ -215,13 +233,10 @@ sub display_main_box { userpref => 'your general user preferences', coursespecific => "specific setting for this $lctype", ); - my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; - my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; if (($command eq 'chgthreshold') && $checkallowed->{'abovethreshold'}) { - &display_threshold_config($r,$refpage,\%threshold_titles, - $cdom,$crs); + &display_threshold_config($r,$refpage,\%threshold_titles,$cdom,$crs); } elsif (($command eq 'chginterval') && $checkallowed->{'versionchanges'}) { &display_interval_config($r,$refpage,\%interval_titles,'versions'); @@ -574,6 +589,18 @@ sub display_actions_box { '
',$threshold{'numstudents'}); my @actionorder = ('handgrading','haserrors','abovethreshold','versionchanges','coursediscussion','coursenormalmail','coursecritmail','newroles','oldroles','crslogin'); + my %actioncolumn = ( + handgrading => 'left', + haserrors => 'left', + abovethreshold => 'left', + versionchanges => 'left', + coursediscussion => 'right', + coursenormalmail => 'right', + coursecritmail => 'right', + newroles => 'right', + oldroles => 'right', + crslogin => 'right', + ); foreach my $key (keys(%{$checkallowed})) { if ($key =~ /_section$/) { next; } @@ -639,12 +666,13 @@ sub display_actions_box { $totalboxes ++; } } - my $halfway = 4; + my $currcolumn = 'left'; # my $halfway = int($totalboxes/2) + $totalboxes%2; foreach my $actionitem (@actionorder) { - if ($$checkallowed{$actionitem}) { - if ($displayed == $halfway) { + if ($checkallowed->{$actionitem}) { + if (($actioncolumn{$actionitem} eq 'right') && ($currcolumn eq 'left')) { $r->print(' '); + $currcolumn = 'right'; } &display_launcher($r,$actionitem,$refpage,$checkallowed,\%show,\%headings,\%res_title,\@tograde,\%ungraded,\@bombs,\%bombed,\%changed,\@warnings,\%triggered,\@newdiscussions,\%unread,$msgcount,\@newmsgs,$critmsgcount,\@critmsgs,\%interval,$countunread,\%expired,$expirecount,\%activated,$activecount,$crstype,$itemserror,\%loggedin,$logincount,$classlist); $displayed ++;