--- loncom/interface/lonmenu.pm 2010/08/14 21:38:08 1.315.2.2
+++ loncom/interface/lonmenu.pm 2011/01/07 22:21:02 1.315.2.8
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines to control the menu
#
-# $Id: lonmenu.pm,v 1.315.2.2 2010/08/14 21:38:08 raeburn Exp $
+# $Id: lonmenu.pm,v 1.315.2.8 2011/01/07 22:21:02 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -205,10 +205,10 @@ sub prep_menuitem {
} else { # textual Link
$link = &mt($$menuitem[3]);
}
- if($$menuitem[4] eq 'newmsg'){ #special style for New Messages
- return '
'.$link.'';
- }
- return ''.$link.'';
+ return '$link|;
}
# primary_menu() evaluates @primary_menu and returns XHTML for the menu
@@ -245,11 +245,20 @@ 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 {
- my @items = @{$menuitem};
- $items[0] = 'javascript:'.$menuitem->[0].';';
- $menu .= &prep_menuitem(\@items);
+ $menu .= &prep_menuitem($menuitem);
}
}
@@ -463,8 +472,12 @@ sub innerregister {
my @crumbs;
unless (($forcereg) && ($env{'request.noversionuri'} eq '/adm/navmaps')
&& ($mapurl eq $env{'course.'.$env{'request.course.id'}.'.url'})) {
+ my $navhref = "javascript:gopost('/adm/navmaps','')";
+ if ($env{'environment.remotenavmap'} eq 'on') {
+ $navhref = "javascript:gonav('/adm/navmaps');";
+ }
@crumbs = ({text => $contentstext,
- href => "Javascript:gopost('/adm/navmaps','')"});
+ href => $navhref});
}
if ($mapurl ne $env{'course.'.$env{'request.course.id'}.'.url'}) {
push(@crumbs, {text => '...',
@@ -622,15 +635,19 @@ sub innerregister {
if ($nocrsedit) {
$editbutton=&clear(6,1);
} else {
+ my $bot = "go('$cfile')";
if ($switchserver) {
if ( $env{'request.symb'} && $env{'request.course.id'} ) {
my ($mapurl,$rid,$resurl) = &Apache::lonnet::decode_symb(&Apache::lonnet::symbread());
- $cfile = '/adm/switchserver?otherserver='.$home.'&role='.$env{'request.role'}.'&symb='.$env{'request.symb'}.'&origurl='.$resurl;
+ $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.gif','edit[_1]','resource[_2]',
- "go('".$cfile."');","Edit this resource");
+ $bot,"Edit this resource");
$noeditbutton = 0;
}
} elsif ($editbutton eq '') {
@@ -1321,6 +1338,13 @@ sub rawconfig {
my ($row,$col,$pro,$prt,$img,$top,$bot,$act,$desc,$cat)=split(/\:/,$line);
$prt=~s/\$uname/$uname/g;
$prt=~s/\$udom/$udom/g;
+ if ($env{'environment.remotenavmap'} eq 'on') {
+ unless ($env{'environment.remote'} eq 'on') {
+ if ($img eq 'nav.gif') {
+ $act = "gonav('/adm/navmaps','')";
+ }
+ }
+ }
if ($prt =~ /\$crs/) {
next unless ($env{'request.course.id'});
next if ($crstype eq 'Community');
@@ -1617,6 +1641,9 @@ sub utilityfunctions {
my $end_page_bookmark =
&Apache::loncommon::end_page({'js_ready' => 1});
+ my $confirm_switch = &mt("Editing requires switching to the resource's home server.").'\n'.
+ &mt('Switch server?');
+
return (< 0) {
secok = 1;