--- loncom/interface/lonmenu.pm 2013/05/26 12:39:23 1.415 +++ loncom/interface/lonmenu.pm 2013/09/07 19:58:01 1.421 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines to control the menu # -# $Id: lonmenu.pm,v 1.415 2013/05/26 12:39:23 raeburn Exp $ +# $Id: lonmenu.pm,v 1.421 2013/09/07 19:58:01 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -261,7 +261,7 @@ sub primary_menu { push(@primsub,$item); } if (@primsub > 0) { - $menu{$position} .= &create_submenu($link,$target,$title,\@primsub); + $menu{$position} .= &create_submenu($link,$target,$title,\@primsub,1); } elsif ($link) { $menu{$position} .= '
  • '.&mt($title).'
  • '; } @@ -313,6 +313,7 @@ sub getauthor{ } sub secondary_menu { + my ($httphost) = @_; my $menu; my $crstype = &Apache::loncommon::course_type(); @@ -321,6 +322,9 @@ sub secondary_menu { : ''); my $canedit = &Apache::lonnet::allowed('mdc', $env{'request.course.id'}); my $canviewroster = $env{'course.'.$env{'request.course.id'}.'.student_classlist_view'}; + if ($canviewroster eq 'disabled') { + undef($canviewroster); + } my $canviewgrps = &Apache::lonnet::allowed('vcg', $crs_sec); my $canmodifyuser = &Apache::lonnet::allowed('cst', $crs_sec); my $canviewwnew = &Apache::lonnet::allowed('whn', $crs_sec); @@ -329,7 +333,7 @@ sub secondary_menu { my $canmgr = &Apache::lonnet::allowed('mgr', $crs_sec); my $author = &getauthor(); - my ($cdom,$cnum,$showsyllabus,$showfeeds); + my ($cdom,$cnum,$showsyllabus,$showfeeds,$showresv); if ($env{'request.course.id'}) { $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; @@ -349,6 +353,12 @@ sub secondary_menu { $showfeeds = 1; } } + unless ($canmgr) { + my %slots = &Apache::lonnet::get_course_slots($cnum,$cdom); + if (keys(%slots) > 0) { + $showresv = 1; + } + } } my ($canmodifycoauthor); @@ -385,8 +395,8 @@ sub secondary_menu { && ($canmodifyuser || !$canviewroster); next if $$menuitem[4] eq 'mgr' && !$canmgr; - next if $$menuitem[4] eq 'nmgr' - && $canmgr; + next if $$menuitem[4] eq 'showresv' + && !$showresv; next if $$menuitem[4] eq 'whn' && !$canviewwnew; next if $$menuitem[4] eq 'opa' @@ -408,7 +418,8 @@ sub secondary_menu { ($roleswitcher_js,$roleswitcher_form,my $switcher) = &roles_selector( $env{'course.' . $env{'request.course.id'} . '.domain'}, - $env{'course.' . $env{'request.course.id'} . '.num'} + $env{'course.' . $env{'request.course.id'} . '.num'}, + $httphost ); $menu .= $switcher; } else { @@ -460,7 +471,7 @@ sub secondary_menu { } sub create_submenu { - my ($link,$target,$title,$submenu) = @_; + my ($link,$target,$title,$submenu,$translate) = @_; return unless (ref($submenu) eq 'ARRAY'); my $disptarget; if ($target ne '') { @@ -487,17 +498,24 @@ sub create_submenu { foreach my $item (@{$submenu}) { $count ++; if (ref($item) eq 'ARRAY') { + my $href = $item->[0]; + if ($href =~ /(aboutme|rss\.html)$/) { + next unless (($env{'user.name'} ne '') && ($env{'user.domain'} ne '')); + $href =~ s/\[domain\]/$env{'user.domain'}/g; + $href =~ s/\[user\]/$env{'user.name'}/g; + } my $borderbot; if ($count == $numsub) { $borderbot = 'border-bottom:1px solid black;'; } - if ($item->[0] =~ /(aboutme|rss\.html)$/) { - $item->[0] =~ s/\[domain\]/$env{'user.domain'}/g; - $item->[0] =~ s/\[user\]/$env{'user.name'}/g; - } $menu .= '
  • '. - &mt($item->[1]).'
  • '; + $borderbot.'">'; + if ($translate) { + $menu .= &mt($item->[1]); + } else { + $menu .= $item->[1]; + } + $menu .= ''; } } $menu .= ''; @@ -1427,6 +1445,7 @@ END } sub utilityfunctions { + my ($httphost) = @_; my $currenturl=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0])); if ($currenturl =~ m{^/adm/wrapper/ext/} && $env{'request.external.querystring'} ) { @@ -1462,7 +1481,7 @@ sub utilityfunctions { my $countdown = &countdown_toggle_js(); return (<'."\n". + '
    '."\n". ' '."\n". ' '."\n".