--- loncom/interface/lonmenu.pm 2009/07/08 18:36:26 1.271
+++ loncom/interface/lonmenu.pm 2009/07/21 14:36:08 1.276
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines to control the menu
#
-# $Id: lonmenu.pm,v 1.271 2009/07/08 18:36:26 droeschl Exp $
+# $Id: lonmenu.pm,v 1.276 2009/07/21 14:36:08 droeschl Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -143,6 +143,10 @@ use vars qw(@desklines %category_names %
my @inlineremote;
+#
+# This routine returns a translated hash for the menu items in the top inline menu row
+# Probably should be in mydesk.tab
+
sub initlittle {
return &Apache::lonlocal::texthash('ret' => 'Return to Last Location',
'nav' => 'Navigate Contents',
@@ -161,8 +165,10 @@ sub initlittle {
sub menubuttons {
my $forcereg=shift;
- my $registration=shift;
my $titletable=shift;
+#
+# Early-out for pages that should not have a menu, triggered by query string "inhibitmenu=yes"
+#
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['inhibitmenu']);
if (($env{'form.inhibitmenu'} eq 'yes') ||
@@ -179,6 +185,9 @@ sub menubuttons {
my $role_selector;
my $showgroups=0;
my ($cnum,$cdom);
+#
+# if the URL is hidden, symbs and the non-versioned version of the URL would be encrypted
+#
my $escurl=&escape(&Apache::lonenc::check_encrypt($env{'request.noversionuri'}));
my $escsymb=&escape(&Apache::lonenc::check_encrypt($env{'request.symb'}));
@@ -187,6 +196,9 @@ sub menubuttons {
$logo.'" alt="LON-CAPA Logo" class="LC_noBorder" />';
if ($env{'request.state'} eq 'construct') {
+#
+# We are in construction space
+#
if (($env{'request.noversionuri'} eq '') || (!defined($env{'request.noversionuri'}))) {
my $returnurl = $env{'request.filename'};
$returnurl =~ s:^/home/([^/]+)/public_html/(.*)$:/priv/$1/$2:;
@@ -194,6 +206,9 @@ sub menubuttons {
}
}
if ($env{'request.course.id'}) {
+#
+# We are in a course
+#
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
my %coursegroups;
@@ -272,20 +287,16 @@ ENDRELOAD
$lt{'ret'}
ENDCRELOAD
}
- my $reg='';
- if ($registration) {
- $reg=&innerregister($forcereg,$titletable);
- }
- my $form=&serverform();
- my $utility=&utilityfunctions();
-
- my $messagelink = "";
- if(&Apache::lonmsg::mynewmail()){
- $messagelink = 'Message(new)'
- }else{
- $messagelink = 'Message'
- }
- my $helplink=&Apache::loncommon::top_nav_help('Help');
+ my $reg = $forcereg ? &innerregister($forcereg,$titletable) : '';
+ my $form = &serverform();
+ my $utility = &utilityfunctions();
+
+ #Prepare the message link that indicates the arrival of new mail
+ my $messagelink = Apache::lonmsg::mynewmail() ? "Message (new)" : "Message";
+ $messagelink = ''
+ . mt($messagelink) .'';
+
+ my $helplink = &Apache::loncommon::top_nav_help('Help');
return (<
// BEGIN LON-CAPA Internal
@@ -373,12 +384,13 @@ sub innerregister {
my $reopen=&Apache::lonmenu::reopenmenu();
my $newmail='';
- my $breadcrumb;
if (&Apache::lonmsg::newmail() && !$noremote) {
# We have new mail and remote is up
$newmail= 'swmenu.setstatus("you have","messages");';
}
+
+ my $breadcrumb;
if ($noremote
&& ($env{'request.symb'})
&& ($env{'request.course.id'})) {
@@ -453,6 +465,9 @@ sub innerregister {
}
if ($env{'user.author'}) {
if ($env{'request.role'}=~/^(aa|ca|au)/) {
+#
+# We have the role of an author
+#
# Set defaults for authors
my ($top,$bottom) = ('con-','struct');
my $action = "go('/priv/".$env{'user.name'}."');";
@@ -481,6 +496,11 @@ sub innerregister {
$noeditbutton = 0;
}
}
+#
+# We are an author for some stuff, but currently do not have the role of author.
+# Figure out if we have authoring privileges for the resource we are looking at.
+# This should maybe become a privilege check in lonnet
+#
##
## Determine if user can edit url.
##
@@ -539,6 +559,9 @@ sub innerregister {
# Prepare the rest of the buttons
my $menuitems;
if ($const_space) {
+#
+# We are in construction space
+#
my ($uname,$thisdisfn) =
($env{'request.filename'}=~m|^/home/([^/]+)/public_html/(.*)|);
my $currdir = '/priv/'.$uname.'/'.$thisdisfn;
@@ -548,6 +571,9 @@ sub innerregister {
$currdir =~ s|[^/]+$||;
my $cleandisfn = &Apache::loncommon::escape_single($thisdisfn);
my $esc_currdir = &Apache::loncommon::escape_single($currdir);
+#
+# Probably should be in mydesk.tab
+#
$menuitems=(<13)) { return ''; }
return "\n".qq(window.status+='.';swmenu.clearbut($row,$col););
} else {
$inlineremote[10*$row+$col]='';
@@ -988,6 +1019,7 @@ sub switch {
$category_members{$cat}.=':'.$idx;
unless ($env{'environment.remote'} eq 'off') {
+ if (($row<1) || ($row>13)) { return ''; }
# Remote
return "\n".
qq(window.status+='.';swmenu.switchbutton($row,$col,"$img","$top","$bot","$act","$desc"););
@@ -1005,7 +1037,7 @@ sub switch {
&Apache::loncommon::lonhttpdurl('/res/adm/pages/'.$img).
'" align="'.($nobreak==3?'right':'left').'" class="LC_noBorder" />';
if ($env{'browser.interface'} eq 'faketextual') {
-# Accessibility
+# Main Menu
if ($nobreak==3) {
$inlineremote[$idx]="\n".
'