--- loncom/interface/lonmenu.pm 2010/06/06 11:56:12 1.329
+++ loncom/interface/lonmenu.pm 2011/01/18 19:52:46 1.344
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines to control the menu
#
-# $Id: lonmenu.pm,v 1.329 2010/06/06 11:56:12 droeschl Exp $
+# $Id: lonmenu.pm,v 1.344 2011/01/18 19:52:46 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -107,8 +107,6 @@ entries from mydesk.tab
Same as primary_menu() but operates on @secondary_menu.
-=item show_return_link()
-
=item innerregister()
This gets called in order to register a URL in the body of the document
@@ -214,7 +212,18 @@ sub primary_menu {
if ($$menuitem[3] eq 'Help') { # special treatment for helplink
- $menu .= '
'.&Apache::loncommon::top_nav_help('Help').'';
+ if ($public) {
+ my $origmail = $Apache::lonnet::perlvar{'lonSupportEMail'};
+ my $defdom = &Apache::lonnet::default_login_domain();
+ my $to = &Apache::loncommon::build_recipient_list(undef,
+ 'helpdeskmail',
+ $defdom,$origmail);
+ if ($to ne '') {
+ $menu .= &prep_menuitem($menuitem);
+ }
+ } else {
+ $menu .= ''.&Apache::loncommon::top_nav_help('Help').'';
+ }
} else {
$menu .= prep_menuitem($menuitem);
}
@@ -261,10 +270,11 @@ sub secondary_menu {
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 $author = getauthor();
+ my $canmodpara = &Apache::lonnet::allowed('opa', $crs_sec);
+ my $canvgr = &Apache::lonnet::allowed('vgr', $crs_sec);
+ my $canmgr = &Apache::lonnet::allowed('mgr', $crs_sec);
+ my $author = &getauthor();
- 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'},
@@ -276,17 +286,20 @@ sub secondary_menu {
next if $$menuitem[4] ne 'always'
&& $$menuitem[4] ne 'author'
&& !$env{'request.course.id'};
- next if $$menuitem[4] eq 'showreturn'
- && !$showlink
- && !($env{'request.state'} eq 'construct');
next if $$menuitem[4] =~ /^mdc/
&& !$canedit;
- next if $$menuitem[4] eq 'mdcCourse'
- && $crstype eq 'Community';
- next if $$menuitem[4] eq 'mdcCommunity'
- && $crstype ne 'Community';
+ next if $$menuitem[4] eq 'nvgr'
+ && $canvgr;
+ next if $$menuitem[4] eq 'vgr'
+ && !$canvgr;
next if $$menuitem[4] eq 'cst'
&& !$canmodifyuser;
+ next if $$menuitem[4] eq 'ncst'
+ && $canmodifyuser;
+ next if $$menuitem[4] eq 'mgr'
+ && !$canmgr;
+ next if $$menuitem[4] eq 'nmgr'
+ && $canmgr;
next if $$menuitem[4] eq 'whn'
&& !$canviewwnew;
next if $$menuitem[4] eq 'opa'
@@ -334,24 +347,6 @@ sub secondary_menu {
return "";
}
-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 '')
- ||
- ($env{'request.noversionuri'}=~ m{^/cgi-bin/printout.pl})
- ||
- (($env{'request.noversionuri'}=~/^\/adm\//) &&
- ($env{'request.noversionuri'}!~/^\/adm\/wrapper\//) &&
- ($env{'request.noversionuri'}!~
- m{^/adm/.*/(smppg|bulletinboard)($|\?)})
- ));
-}
-
sub innerregister {
my ($forcereg,$bread_crumbs) = @_;
my $const_space = ($env{'request.state'} eq 'construct');
@@ -416,20 +411,20 @@ sub innerregister {
if ($env{'request.symb'} ne '' &&
$env{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form|task)$/) {
if (&Apache::lonnet::allowed('mgr',$crs)) {
- $hwkadd.=&switch('','',7,2,'pgrd.png','problem[_1]','grades[_4]',
+ $hwkadd.=&switch('','',7,2,'pgrd.png','Content Grades','grades[_4]',
"gocmd('/adm/grades','gradingmenu')",
- 'Modify user grades for this assessment resource');
+ 'Content Grades');
} elsif (&Apache::lonnet::allowed('vgr',$crs)) {
- $hwkadd.=&switch('','',7,2,'subm.png','view sub-[_1]','missions[_1]',
+ $hwkadd.=&switch('','',7,2,'subm.png','Content Submissions','missions[_1]',
"gocmd('/adm/grades','submission')",
- 'View user submissions for this assessment resource');
+ 'Content Submissions');
}
}
if ($env{'request.symb'} ne '' &&
&Apache::lonnet::allowed('opa',$crs)) {
- $hwkadd.=&switch('','',7,3,'pparm.png','problem[_2]','parms[_2]',
+ $hwkadd.=&switch('','',7,3,'pparm.png','Content Settings','parms[_2]',
"gocmd('/adm/parmset','set')",
- 'Modify parameter settings for this resource');
+ 'Content Settings');
}
# -- End Homework
###
@@ -488,6 +483,8 @@ sub innerregister {
my $cfuname='';
my $cfudom='';
my $uploaded;
+ my $switchserver='';
+ my $home;
if ($env{'request.filename'}) {
my $file=&Apache::lonnet::declutter($env{'request.filename'});
if (defined($cnum) && defined($cdom)) {
@@ -498,18 +495,20 @@ sub innerregister {
# Check that the user has permission to edit this resource
($cfuname,$cfudom)=&Apache::loncacc::constructaccess($file,$1);
if (defined($cfudom)) {
- my $home=&Apache::lonnet::homeserver($cfuname,$cfudom);
+ $home=&Apache::lonnet::homeserver($cfuname,$cfudom);
my $allowed=0;
my @ids=&Apache::lonnet::current_machine_ids();
foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
if ($allowed) {
$cfile=$file;
+ } else {
+ $switchserver=$file;
}
}
}
}
# Finally, turn the button on or off
- if ($cfile && !$const_space) {
+ if (($cfile || $switchserver) && !$const_space) {
my $nocrsedit;
# Suppress display where CC has switched to student role.
if ($env{'request.course.id'}) {
@@ -521,9 +520,18 @@ sub innerregister {
if ($nocrsedit) {
$editbutton=&clear(6,1);
} else {
+ my $bot = "go('$cfile')";
+ if ($switchserver) {
+ if ( $env{'request.symb'} && $env{'request.course.id'} ) {
+ $cfile = '/adm/switchserver?otherserver='.$home.'&role='.
+ &HTML::Entities::encode($env{'request.role'},'"<>&').'&symb='.
+ &HTML::Entities::encode($env{'request.symb'},'"<>&');
+ $bot = "need_switchserver('$cfile');";
+ }
+ }
$editbutton=&switch
('','',6,1,'pcstr.png','edit[_1]','resource[_2]',
- "go('".$cfile."');","Edit this resource");
+ $bot,"Edit this resource");
$noeditbutton = 0;
}
} elsif ($editbutton eq '') {
@@ -567,11 +575,11 @@ sub innerregister {
# Probably should be in mydesk.tab
#
$menuitems=(< 0){
}else{
$menuitems.="anot.png";
}
-$menuitems.="&anno-[_1]&tations[_1]&annotate()&";
+$menuitems.="&Notes&&annotate()&";
$menuitems.="Make notes and annotations about this resource&&1\n";
unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme|viewclasslist|portfolio)(\?|$)/) {
if ((!$env{'request.enc'}) && ($env{'request.noversionuri'} !~ m{^/adm/wrapper/ext/})) {
$menuitems.=(<