--- loncom/interface/lonmenu.pm 2009/10/06 14:06:12 1.284
+++ loncom/interface/lonmenu.pm 2009/10/15 21:02:13 1.288
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines to control the menu
#
-# $Id: lonmenu.pm,v 1.284 2009/10/06 14:06:12 droeschl Exp $
+# $Id: lonmenu.pm,v 1.288 2009/10/15 21:02:13 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -113,11 +113,6 @@ The javascript is usually similar to "go
=item get_nav_status()
-=item convert_menu_function()
-
-FIXME this needs to move into mydesktab and the other locations
-the text is generated
-
=item hidden_button_check()
=item roles_selector()
@@ -193,41 +188,45 @@ sub primary_menu {
}
}
- return "
";
+ return "";
}
sub secondary_menu {
my $menu;
+ my $crstype = &Apache::loncommon::course_type();
+ my $canedit = &Apache::lonnet::allowed('mdc', $env{'request.course.id'});
+ my $canviewgrps = &Apache::lonnet::allowed('vcg', $env{'request.course.id'}
+ . ($env{'request.course.sec'} ? "/$env{'request.course.sec'}"
+ : ''));
+ my $showlink = &show_return_link();
+ my %groups = &Apache::lonnet::get_active_groups(
+ $env{'user.domain'}, $env{'user.name'},
+ $env{'course.' . $env{'request.course.id'} . '.domain'},
+ $env{'course.' . $env{'request.course.id'} . '.num'});
foreach my $menuitem (@secondary_menu) {
# evaluate conditions
next if $$menuitem[4] ne 'always'
&& !$env{'request.course.id'};
next if $$menuitem[4] eq 'showreturn'
- && !show_return_link()
+ && !$showlink
&& !($env{'request.state'} eq 'construct');
next if $$menuitem[4] =~ /^mdc/
- && !Apache::lonnet::allowed('mdc', $env{'request.course.id'});
- next if $$menuitem[4] =~ /nogrp$/
- && Apache::loncommon::course_type() eq 'Group';
- next if $$menuitem[4] =~ /group$/
- && Apache::loncommon::course_type() ne 'Group';
- next if $$menuitem[4] eq 'remotenav'
+ && !$canedit;
+ next if $$menuitem[4] eq 'mdcCourse'
+ && $crstype eq 'Community';
+ next if $$menuitem[4] eq 'mdcCommunity'
+ && $crstype ne 'Community';
+ next if $$menuitem[4] =~ /^remotenav/
&& $env{'environment.remotenavmap'} ne 'on';
- next if $$menuitem[4] eq 'noremotenav'
+ next if $$menuitem[4] =~ /noremotenav/
&& $env{'environment.remotenavmap'} eq 'on';
next if $$menuitem[4] =~ /showgroups$/
- && !Apache::lonnet::allowed('vcg', $env{'request.course.id'}
- . ($env{'request.course.sec'} ? "/$env{'request.course.sec'}"
- : ''))
- && !Apache::lonnet::get_active_groups(
- $env{'user.domain'}, $env{'user.name'},
- $env{'course.' . $env{'request.course.id'} . '.domain'},
- $env{'course.' . $env{'request.course.id'} . '.num'});
+ && $canviewgrps
+ && !%groups;
-
- if($$menuitem[3] eq 'Roles' && $env{'request.course.id'}) {
+ if ($$menuitem[3] eq 'Roles' && $env{'request.course.id'}) {
# special treatment for role selector
my $roles_selector = roles_selector(
$env{'course.' . $env{'request.course.id'} . '.domain'},
@@ -259,7 +258,7 @@ sub secondary_menu {
$menu =~ s/\[symb\]/$escsymb/g;
}
- return "";
+ return "";
}
@@ -280,7 +279,7 @@ sub initlittle {
'login' => 'Log In',
'launch' => 'Launch Remote Control',
'groups' => 'Groups',
- 'gdoc' => 'Group Documents',
+ 'gdoc' => 'Community Documents',
);
}
@@ -363,7 +362,7 @@ sub menubuttons {
if ($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public') {
return (<