--- loncom/interface/lonmenu.pm 2010/03/22 20:11:22 1.321
+++ loncom/interface/lonmenu.pm 2010/05/30 18:30:52 1.328
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines to control the menu
#
-# $Id: lonmenu.pm,v 1.321 2010/03/22 20:11:22 droeschl Exp $
+# $Id: lonmenu.pm,v 1.328 2010/05/30 18:30:52 droeschl Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -177,7 +177,7 @@ sub prep_menuitem {
return '
$link|;
+ . qq| href="$$menuitem[0]" target="_top">$link|;
}
# primary_menu() evaluates @primary_menu and returns XHTML for the menu
@@ -216,11 +216,11 @@ sub primary_menu {
if ($$menuitem[3] eq 'Help') { # special treatment for helplink
$menu .= ''.&Apache::loncommon::top_nav_help('Help').'';
} else {
- my @items = @{$menuitem};
- $items[0] = 'javascript:'.$menuitem->[0].';';
- $menu .= &prep_menuitem(\@items);
+ $menu .= prep_menuitem($menuitem);
}
}
+ $menu =~ s/\[domain\]/$env{'user.domain'}/g;
+ $menu =~ s/\[user\]/$env{'user.name'}/g;
return "";
}
@@ -230,15 +230,21 @@ 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 $crs_sec = $env{'request.course.id'} . ($env{'request.course.sec'}
+ ? "/$env{'request.course.sec'}"
+ : '');
+ my $canedit = &Apache::lonnet::allowed('mdc', $env{'request.course.id'});
+ my $canviewgrps = &Apache::lonnet::allowed('vcg', $crs_sec);
+ my $canmodifyuser = &Apache::lonnet::allowed('cst', $crs_sec);
+ my $canviewwnew = &Apache::lonnet::allowed('whn', $crs_sec);
+ my $canmodpara = &Apache::lonnet::allowed('opa', $crs_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 ref($menuitem) ne 'ARRAY';
@@ -253,10 +259,12 @@ sub secondary_menu {
&& $crstype eq 'Community';
next if $$menuitem[4] eq 'mdcCommunity'
&& $crstype ne 'Community';
- next if $$menuitem[4] =~ /^Course$/
- && $crstype eq 'Community';
- next if $$menuitem[4] =~ /^Community$/
- && $crstype ne 'Community';
+ next if $$menuitem[4] eq 'cst'
+ && !$canmodifyuser;
+ next if $$menuitem[4] eq 'whn'
+ && !$canviewwnew;
+ next if $$menuitem[4] eq 'opa'
+ && !$canmodpara;
next if $$menuitem[4] =~ /showgroups$/
&& !$canviewgrps
&& !%groups;
@@ -297,6 +305,11 @@ sub secondary_menu {
}
sub show_return_link {
+ if (($env{'request.noversionuri'} =~ m{^/adm/(viewclasslist|navmaps)($|\?)})
+ || ($env{'request.noversionuri'} =~ m{^/adm/.*/aboutme($|\?)})) {
+
+ return if ($env{'form.register'});
+ }
return (($env{'request.noversionuri'}=~m{^/(res|public)/} &&
$env{'request.symb'} eq '')
||
@@ -305,8 +318,8 @@ sub show_return_link {
(($env{'request.noversionuri'}=~/^\/adm\//) &&
($env{'request.noversionuri'}!~/^\/adm\/wrapper\//) &&
($env{'request.noversionuri'}!~
- m[^/adm/.*/(smppg|bulletinboard|aboutme)($|\?)])
- ));
+ m{^/adm/.*/(smppg|bulletinboard)($|\?)})
+ ));
}
sub innerregister {
@@ -331,10 +344,13 @@ sub innerregister {
#SD
#course_type only Course and Community?
#
- my @crumbs = ({text => Apache::loncommon::course_type()
+ my @crumbs;
+ unless (($forcereg) && ($env{'request.noversionuri'} eq '/adm/navmaps')
+ && ($mapurl eq $env{'course.'.$env{'request.course.id'}.'.url'})) {
+ @crumbs = ({text => Apache::loncommon::course_type()
. ' Contents',
- href => "Javascript:gopost('/adm/navmaps','')"});
-
+ href => "Javascript:gopost('/adm/navmaps','')"});
+ }
if ($mapurl ne $env{'course.'.$env{'request.course.id'}.'.url'}) {
push(@crumbs, {text => '...',
no_mt => 1});
@@ -348,6 +364,11 @@ sub innerregister {
&Apache::lonhtmlcommon::clear_breadcrumbs();
&Apache::lonhtmlcommon::add_breadcrumb(@crumbs);
+ }elsif (! $const_space){
+ #a situation when we're looking at a resource outside of context of a
+ #course or construction space (e.g. with cumulative rights)
+ &Apache::lonhtmlcommon::clear_breadcrumbs();
+ &Apache::lonhtmlcommon::add_breadcrumb({text => 'View Resource'});
}
# =============================================================================
# ============================ This is for URLs that actually can be registered
@@ -558,7 +579,7 @@ if(length($annotation) > 0){
$menuitems.="&anno-[_1]&tations[_1]&annotate()&";
$menuitems.="Make notes and annotations about this resource&&1\n";
- unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme)(\?|$)/) {
+ unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme|viewclasslist|portfolio)(\?|$)/) {
if ((!$env{'request.enc'}) && ($env{'request.noversionuri'} !~ m{^/adm/wrapper/ext/})) {
$menuitems.=(<