--- loncom/interface/lonmenu.pm	2006/07/14 19:49:46	1.196
+++ loncom/interface/lonmenu.pm	2006/08/14 09:11:55	1.203
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Routines to control the menu
 #
-# $Id: lonmenu.pm,v 1.196 2006/07/14 19:49:46 www Exp $
+# $Id: lonmenu.pm,v 1.203 2006/08/14 09:11:55 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -52,6 +52,8 @@ use vars qw(@desklines $readdesk);
 
 my @inlineremote;
 
+
+
 # ================================================================ Little texts
 
 sub initlittle {
@@ -62,10 +64,10 @@ sub initlittle {
                                                     'Roles':'Courses'),
                                        'docs' => 'Course Documents',
                                        'exit' => 'Exit',
+                                       'login' => 'Log In',
 				       'launch' => 'Launch Remote Control',
                                        'groups' => 'Groups',
                                        'gdoc' => 'Group Documents',
-                                       'teams' => 'Teams',
                                        );
 }
 
@@ -91,6 +93,10 @@ sub menubuttons {
     my $escurl=&escape(&Apache::lonenc::check_encrypt($env{'request.noversionuri'}));
     my $escsymb=&escape(&Apache::lonenc::check_encrypt($env{'request.symb'}));
 
+    my $logo=&Apache::loncommon::lonhttpdurl("/adm/lonIcons/minilogo.gif");
+    $logo = '<td class="LC_top_nav_logo"><a href="/adm/about.html"><img src="'.
+	$logo.'" alt="LON-CAPA Logo" /></a></td>';
+
     if ($env{'request.state'} eq 'construct') {
         if (($env{'request.noversionuri'} eq '') || (!defined($env{'request.noversionuri'}))) {
             my $returnurl = $env{'request.filename'};
@@ -101,7 +107,7 @@ sub menubuttons {
     if ($env{'request.course.id'}) {
         my %coursegroups;
         my $viewgrps_permission =
-	    &Apache::lonnet::allowed('vcg',$env{'request.course.id'});
+	    &Apache::lonnet::allowed('vcg',$env{'request.course.id'}.($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''));
         if (!$viewgrps_permission) {
             %coursegroups = &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'});
 	}
@@ -129,11 +135,11 @@ ENDRELOAD
 <a href="/adm/coursedocs" target="_top">$lt{'docs'}</a>
 ENDDOCS
             }
-#            if ($showgroups) {
-#                $groups =(<<ENDGROUPS);
-#<a href="/adm/coursegroups" target="_top">$lt{'groups'}</a>
-#ENDGROUPS
-#            }
+            if ($showgroups) {
+                $groups =(<<ENDGROUPS);
+<a href="/adm/coursegroups" target="_top">$lt{'groups'}</a>
+ENDGROUPS
+            }
 	}
         my $form=&serverform();
         my $utility=&utilityfunctions();
@@ -168,14 +174,14 @@ ENDMAINMENU
         my $vlink=&Apache::loncommon::designparm($function.'.vlink',$domain);
         my $sidebg=&Apache::loncommon::designparm($function.'.sidebg',$domain);
 	if ($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public') {
-	    my $logo=&Apache::loncommon::lonhttpdurl("/adm/lonIcons/minilogo.gif");
 	    return (<<ENDINLINEMENU);
    <table id="LC_top_nav">
     <tr>
-      <td>
-        <a href="/adm/logout" target="_top">$lt{'exit'}</a>
+      $logo
+      <td></td>
+      <td class="LC_top_nav_login">
+        <a href="/adm/roles" target="_top">$lt{'login'}</a>
      </td>
-     <td class="LC_top_nav_logo">LON-CAPA<img src="$logo" alt="Logo" /></td>
     </tr>
   </table>
 </font>
@@ -198,12 +204,11 @@ my $is_group = (&Apache::loncommon::cour
 <td><a href="/adm/coursedocs" target="_top">$text</a></td>
 ENDDOCS
             }
-#            if ($showgroups) {
-#                my $text = ($is_group) ? $lt{'teams'} : $lt{'groups'};
-#                $groups =(<<ENDGROUPS);
-#<td><a href="/adm/coursegroups" target="_top">$text</a></td>
-#ENDGROUPS
-#            }
+            if ($showgroups) {
+                $groups =(<<ENDGROUPS);
+<td><a href="/adm/coursegroups" target="_top">$lt{'groups'}</a></td>
+ENDGROUPS
+            }
 	    if (
 		($env{'request.noversionuri'}=~m[^/(res|public)/] &&
 		 $env{'request.symb'} eq '')
@@ -232,18 +237,12 @@ ENDCRELOAD
         }
         my $form=&serverform();
 	my $utility=&utilityfunctions();
-	my $logo=&Apache::loncommon::lonhttpdurl("/adm/lonIcons/minilogo.gif");
 	my $remote;
 	if ($env{'user.adv'}) {
 	    $remote = '<td><a href="/adm/remote?action=launch&amp;url='.$escurl.'" target="_top">'.$lt{'launch'}.'</a></td>'
 	}
-        my $helptopic='Student_Intro';
-        if ($env{'request.role'}=~/^(ca|au)/) {
-	    $helptopic='Authoring_Intro';
-	} elsif ($env{'request.role'}=~/^cc/) {
-	    $helptopic='Course_Coordination_Intro';
-	}
-        my $helplink=&Apache::loncommon::help_open_topic($helptopic,'Help');
+
+        my $helplink=&Apache::loncommon::top_nav_help('Help');
 	return (<<ENDINLINEMENU);
 <script type="text/javascript">
 // BEGIN LON-CAPA Internal
@@ -253,8 +252,7 @@ $utility
 </script>
 <table id="LC_top_nav">
 <tr>
-<td class="LC_top_nav_logo">
-<a href="/adm/about.html"><img src="$logo" alt="LON-CAPA Logo" align="left" border="0" /></a></td>
+$logo
 <td><a href="/adm/menu" target="_top">$lt{'main'}</a></td>
 $reloadlink
 $navmaps
@@ -262,8 +260,8 @@ $docs
 $groups
 $remote
 <td><a href="/adm/roles" target="_top">$lt{'roles'}</a></td>
-<td>$helplink</td>
-<td class="LC_top_logout"><a href="/adm/logout" target="_top">$lt{'exit'}</a></td>
+<td class="LC_top_nav_help">$helplink</td>
+<td class="LC_top_nav_exit"><a href="/adm/logout" target="_top">$lt{'exit'}</a></td>
 </tr>
 </table>
 $form
@@ -466,16 +464,17 @@ sub innerregister {
                 $is_const_dir = 1;
             } else {
                 $currdir =~ s#[^/]+$##;
+		my $cleandisfn = &Apache::loncommon::escape_single($thisdisfn);
                 $menuitems=(<<ENDMENUITEMS);
 s&6&1&list.gif&list[_1]&dir[_1]&golist('$currdir')&List current directory
-s&6&2&rtrv.gif&retrieve[_1]&version[_1]&gocstr('/adm/retrieve','/~$uname/$thisdisfn')&Retrieve old version
-s&6&3&pub.gif&publish[_1]&resource[_1]&gocstr('/adm/publish','/~$uname/$thisdisfn')&Publish this resource
-s&7&1&del.gif&delete[_1]&resource[_2]&gocstr('/adm/cfile?action=delete','/~$uname/$thisdisfn')&Delete this resource
-s&7&2&prt.gif&prepare[_1]&printout[_1]&gocstr('/adm/printout','/~$uname/$thisdisfn')&Prepare a printable document
+s&6&2&rtrv.gif&retrieve[_1]&version[_1]&gocstr('/adm/retrieve','/~$uname/$cleandisfn')&Retrieve old version
+s&6&3&pub.gif&publish[_1]&resource[_1]&gocstr('/adm/publish','/~$uname/$cleandisfn')&Publish this resource
+s&7&1&del.gif&delete[_1]&resource[_2]&gocstr('/adm/cfile?action=delete','/~$uname/$cleandisfn')&Delete this resource
+s&7&2&prt.gif&prepare[_1]&printout[_1]&gocstr('/adm/printout','/~$uname/$cleandisfn')&Prepare a printable document
 ENDMENUITEMS
             }
-        } elsif (defined($env{'request.course.id'}) && 
-		 $env{'request.symb'} ne '') {
+        } elsif ( defined($env{'request.course.id'}) && 
+		 $env{'request.symb'} ne '' ) {
 	    $menuitems=(<<ENDMENUITEMS);
 c&3&1
 s&2&1&back.gif&backward[_1]&&gopost('/adm/flip','back:'+currentURL)&Go to the previous resource in the course sequence&1
@@ -495,6 +494,12 @@ s&8&2&fdbk.gif&feedback[_1]&discuss[_1]&
 ENDREALRES
 	    }
         }
+	if ($env{'request.uri'} =~ /^\/res/) {
+	    $menuitems .= (<<ENDMENUITEMS);
+s&8&3&prt.gif&prepare[_1]&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document
+ENDMENUITEMS
+	}
+        &Apache::lonnet::logthis("Menu items:\n$menuitems\n");
         my $buttons='';
         foreach (split(/\n/,$menuitems)) {
 	    my ($command,@rest)=split(/\&/,$_);
@@ -504,6 +509,7 @@ ENDREALRES
                 $buttons.=&clear(@rest);
             }
         }
+	&Apache::lonnet::logthis("buttons = $buttons");
 
         if ($textual) {
 	    my $addremote=0;
@@ -525,6 +531,7 @@ ENDREALRES
 ENDINLINE
                 }
 	    }
+	    &Apache::lonnet::logthis("Inline:\n $inlinebuttons \n");
 	    $result =(<<ENDREGTEXT);
 <script type="text/javascript">
 // BEGIN LON-CAPA Internal