Diff for /loncom/interface/lonmenu.pm between versions 1.159 and 1.171

version 1.159, 2005/08/16 16:36:08 version 1.171, 2006/04/07 22:28:40
Line 40  package Apache::lonmenu; Line 40  package Apache::lonmenu;
   
 use strict;  use strict;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::Constants qw(:common);  
 use Apache::lonhtmlcommon();  use Apache::lonhtmlcommon();
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonenc();  use Apache::lonenc();
Line 64  sub initlittle { Line 63  sub initlittle {
                                                     'Roles':'Courses'),                                                      'Roles':'Courses'),
                                        'docs' => 'Course Documents',                                         'docs' => 'Course Documents',
                                        'exit' => 'Exit',                                         'exit' => 'Exit',
        'launch' => 'Launch Remote Control');         'launch' => 'Launch Remote Control',
                                          'groups' => 'Groups');
 }  }
   
 # ============================= This gets called at the top of the body section  # ============================= This gets called at the top of the body section
Line 78  sub menubuttons { Line 78  sub menubuttons {
     ['inhibitmenu']);      ['inhibitmenu']);
     if (($env{'form.inhibitmenu'} eq 'yes') ||      if (($env{'form.inhibitmenu'} eq 'yes') ||
         ($ENV{'REQUEST_URI'} eq '/adm/logout')) { return ''; }          ($ENV{'REQUEST_URI'} eq '/adm/logout')) { return ''; }
       my %lt=&initlittle();
     my $navmaps='';      my $navmaps='';
     my $reloadlink='';      my $reloadlink='';
     my $docs='';      my $docs='';
       my $groups='';
       my $showgroups=0;
     my $escurl=&Apache::lonnet::escape(&Apache::lonenc::check_encrypt($env{'request.noversionuri'}));      my $escurl=&Apache::lonnet::escape(&Apache::lonenc::check_encrypt($env{'request.noversionuri'}));
     my $escsymb=&Apache::lonnet::escape(&Apache::lonenc::check_encrypt($env{'request.symb'}));      my $escsymb=&Apache::lonnet::escape(&Apache::lonenc::check_encrypt($env{'request.symb'}));
     my $face= 'face="Arial,Helvetica,sans-serif"';      my $face= 'face="Arial,Helvetica,sans-serif"';
Line 92  sub menubuttons { Line 94  sub menubuttons {
             $escurl = &Apache::lonnet::escape($returnurl);              $escurl = &Apache::lonnet::escape($returnurl);
         }          }
     }      }
       if ($env{'request.course.id'}) {
           my %coursegroups;
           my $viewgrps_permission =                                                
                        &Apache::lonnet::allowed('vcg',$env{'request.course.id'});
           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'});
           }
           if ((keys(%coursegroups) > 0) || ($viewgrps_permission)) {
               $showgroups = 1;
           }
       }
   
     if ($env{'browser.interface'} eq 'textual') {      if ($env{'browser.interface'} eq 'textual') {
 # Textual display only  # Textual display only
  my %lt=&initlittle();  
         $pgbg='#FFFFFF';          $pgbg='#FFFFFF';
         $tabbg='#FFFFFF';          $tabbg='#FFFFFF';
  $font='#000000';   $font='#000000';
Line 115  ENDRELOAD Line 128  ENDRELOAD
 <a href="/adm/coursedocs" target="_top"><font $face color="$font">$lt{'docs'}</font></a>  <a href="/adm/coursedocs" target="_top"><font $face color="$font">$lt{'docs'}</font></a>
 ENDDOCS  ENDDOCS
             }              }
               if ($showgroups) {
                   $groups =(<<ENDGROUPS);
   <td bgcolor="$tabbg">
   <a href="/adm/coursegroups" target="_top"><font $face color="$font">$lt{'groups'}</font></a></td>
   ENDGROUPS
               }
  }   }
         my $form=&serverform();          my $form=&serverform();
         my $utility=&utilityfunctions();          my $utility=&utilityfunctions();
Line 124  ENDDOCS Line 143  ENDDOCS
 $utility  $utility
 </script>  </script>
 <a href="/adm/menu" target="_top">$lt{'main'}</a>  <a href="/adm/menu" target="_top">$lt{'main'}</a>
 $reloadlink $navmaps $docs  $reloadlink $navmaps $docs $groups
 <a href="/adm/roles" target="_top"><font $face color="$font">$lt{'roles'}</font></a>  <a href="/adm/roles" target="_top"><font $face color="$font">$lt{'roles'}</font></a>
 <a href="/adm/logout" target="_top"><font $face color="$font">$lt{'exit'}</font></a>  <a href="/adm/logout" target="_top"><font $face color="$font">$lt{'exit'}</font></a>
 <br />  <br />
Line 190  ENDNAV Line 209  ENDNAV
     if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {      if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {
  $docs=(<<ENDDOCS);   $docs=(<<ENDDOCS);
 <td bgcolor="$tabbg">  <td bgcolor="$tabbg">
 <a href="/adm/coursedocs"><font $face color="$font">$lt{'docs'}</font></a></td>  <a href="/adm/coursedocs" target="_top"><font $face color="$font">$lt{'docs'}</font></a></td>
 ENDDOCS  ENDDOCS
             }              }
               if ($showgroups) {
                   $groups =(<<ENDGROUPS);
   <td bgcolor="$tabbg">
   <a href="/adm/coursegroups" target="_top"><font $face color="$font">$lt{'groups'}</font></a></td>
   ENDGROUPS
               }
     if (      if (
  ($env{'request.noversionuri'}=~m[^/(res|public)/] &&   ($env{'request.noversionuri'}=~m[^/(res|public)/] &&
  $env{'request.symb'} eq '')   $env{'request.symb'} eq '')
Line 210  ENDDOCS Line 235  ENDDOCS
 ENDRELOAD  ENDRELOAD
             }              }
         }          }
    if (($env{'request.state'} eq 'construct') && ($env{'request.course.id'})) {
       my $escreload=&Apache::lonnet::escape('return:');
       $reloadlink=(<<ENDCRELOAD);
   <td bgcolor="$tabbg">
   <a href="/adm/flip?postdata=$escreload" target="_top"><font $face color="$font">$lt{'ret'}</font></a></td>
   ENDCRELOAD
           }
         my $reg='';          my $reg='';
         if ($registration) {          if ($registration) {
            $reg=&innerregister($forcereg,$target,$titletable);             $reg=&innerregister($forcereg,$target,$titletable);
Line 233  $utility Line 265  $utility
 $reloadlink  $reloadlink
 $navmaps  $navmaps
 $docs  $docs
   $groups
 <td bgcolor="$tabbg">  <td bgcolor="$tabbg">
 <a href="/adm/remote?action=launch&amp;url=$escurl" target="_top">  <a href="/adm/remote?action=launch&amp;url=$escurl" target="_top">
 <font $face color="$font">$lt{'launch'}</font></a></td>  <font $face color="$font">$lt{'launch'}</font></a></td>
Line 245  $docs Line 278  $docs
 <td bgcolor="$tabbg">  <td bgcolor="$tabbg">
 <img align="right" src="$logo" alt="Logo" />  <img align="right" src="$logo" alt="Logo" />
 <b>LON-CAPA</b></td>  <b>LON-CAPA</b></td>
 $form  
 </tr>  </tr>
 </table>  </table>
   $form
 <script type="text/javascript">  <script type="text/javascript">
 // END LON-CAPA Internal  // END LON-CAPA Internal
 </script>  </script>
Line 363  sub innerregister { Line 396  sub innerregister {
   
         my $hwkadd='';          my $hwkadd='';
         if ($env{'request.symb'} ne '' &&          if ($env{'request.symb'} ne '' &&
     $env{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) {      $env{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form|task)$/) {
     if (&Apache::lonnet::allowed('mgr',$crs)) {      if (&Apache::lonnet::allowed('mgr',$crs)) {
  $hwkadd.=&switch('','',7,2,'pgrd.gif','problem[_1]','grades[_3]',   $hwkadd.=&switch('','',7,2,'pgrd.gif','problem[_1]','grades[_3]',
                        "gocmd('/adm/grades','gradingmenu')",                         "gocmd('/adm/grades','gradingmenu')",
Line 1102  function gocstr(url,filename) { Line 1135  function gocstr(url,filename) {
                 this.document.cstrprint.curseed.value = this.document.lonhomework.rndseed.value                  this.document.cstrprint.curseed.value = this.document.lonhomework.rndseed.value
             }              }
             if (this.document.lonhomework.problemtype) {              if (this.document.lonhomework.problemtype) {
                 for (var i=0; i<this.document.lonhomework.problemtype.options.length; i++) {   if (this.document.lonhomework.problemtype.value) {
                     if (this.document.lonhomework.problemtype.options[i].selected) {      this.document.cstrprint.problemtype.value = 
                         if (this.document.lonhomework.problemtype.options[i].value != null && this.document.lonhomework.problemtype.options[i].value != '') {    this.document.lonhomework.problemtype.value;
                             this.document.cstrprint.problemtype.value = this.document.lonhomework.problemtype.options[i].value   } else if (this.document.lonhomework.problemtype.options) {
                         }      for (var i=0; i<this.document.lonhomework.problemtype.options.length; i++) {
                     }   if (this.document.lonhomework.problemtype.options[i].selected) {
                 }      if (this.document.lonhomework.problemtype.options[i].value != null && this.document.lonhomework.problemtype.options[i].value != '') { 
             }   this.document.cstrprint.problemtype.value = this.document.lonhomework.problemtype.options[i].value
         }   }
    }
       }
    }
       }
    }
         this.document.cstrprint.submit();          this.document.cstrprint.submit();
         return;          return;
     }      }
Line 1138  function catalog_info() { Line 1176  function catalog_info() {
 function chat_win() {  function chat_win() {
    lonchat=window.open('/res/adm/pages/chatroom.html',"LONchat",'height=320,width=280,resizable=yes,location=no,menubar=no,toolbar=no');     lonchat=window.open('/res/adm/pages/chatroom.html',"LONchat",'height=320,width=280,resizable=yes,location=no,menubar=no,toolbar=no');
 }  }
   
   function group_chat(group) {
      var url = '/adm/groupchat?group='+group;
      var winName = 'LONchat_'+group;
      grpchat=window.open(url,winName,'height=320,width=280,resizable=yes,location=no,menubar=no,toolbar=no');
   }
 ENDUTILITY  ENDUTILITY
 }  }
   
 sub serverform {  sub serverform {
     return(<<ENDSERVERFORM);      return(<<ENDSERVERFORM);
 <form name="server" action="/adm/logout" method="post" target="_top">  <form name="server" action="/adm/logout" method="POST" target="_top">
 <input type="hidden" name="postdata" value="none" />  <input type="hidden" name="postdata" value="none" />
 <input type="hidden" name="command" value="none" />  <input type="hidden" name="command" value="none" />
 <input type="hidden" name="url" value="none" />  <input type="hidden" name="url" value="none" />
Line 1154  ENDSERVERFORM Line 1198  ENDSERVERFORM
   
 sub constspaceform {  sub constspaceform {
     return(<<ENDCONSTSPACEFORM);      return(<<ENDCONSTSPACEFORM);
 <form name="constspace" action="/adm/logout" method="post" target="_top">  <form name="constspace" action="/adm/logout" method="POST" target="_top">
 <input type="hidden" name="filename" value="" />  <input type="hidden" name="filename" value="" />
 </form>  </form>
 <form name="cstrdelete" action="/adm/cfile" method="post" target="_top">  <form name="cstrdelete" action="/adm/cfile" method="POST" target="_top">
 <input type="hidden" name="action" value="delete" />   <input type="hidden" name="action" value="delete" /> 
 <input type="hidden" name="filename" value="" />  <input type="hidden" name="filename" value="" />
 </form>  </form>
 <form name="cstrprint" action="/adm/printout" target="_parent" method="post">  <form name="cstrprint" action="/adm/printout" target="_parent" method="POST">
 <input type="hidden" name="postdata" value="" />  <input type="hidden" name="postdata" value="" />
 <input type="hidden" name="curseed" value="" />  <input type="hidden" name="curseed" value="" />
 <input type="hidden" name="problemtype" value="" />  <input type="hidden" name="problemtype" value="" />
Line 1181  sub get_nav_status { Line 1225  sub get_nav_status {
     return $navstatus;      return $navstatus;
 }  }
   
 # ================================================ Handler when called directly  
   
   
 sub handler {  
     my $r = shift;  
     &Apache::loncommon::content_type($r,'text/html');  
     $r->send_http_header;  
     return OK if $r->header_only;  
   
     my $form;  
     if ($env{'environment.remote'} ne 'off' &&  
  $env{'browser.interface'} ne 'textual') {  
  $form=&serverform();  
     }  
     my $bodytag=&Apache::loncommon::bodytag('Main Menu');  
     my $function='student';  
     if ($env{'request.role'}=~/^(cc|in|ta|ep)/) {  
  $function='coordinator';  
     }  
     if ($env{'request.role'}=~/^(su|dc|ad|li)/) {  
  $function='admin';  
     }  
     if (($env{'request.role'}=~/^(au|ca)/) ||  
  ($env{'request.noversionuri'}=~/^(\/priv|\~)/)) {  
  $function='author';  
     }  
     my $domain=&Apache::loncommon::determinedomain();  
     $pgbg=&Apache::loncommon::designparm($function.'.pgbg',$domain);  
     $tabbg=&Apache::loncommon::designparm($function.'.tabbg',$domain);  
     $font=&Apache::loncommon::designparm($function.'.font',$domain);  
     my $script_tag;  
     if ($env{'environment.remote'} ne 'off') {  
         my $utility=&utilityfunctions('/adm/menu');  
         $script_tag=(<<ENDSCRIPT);  
 <script type="text/javascript">  
 $utility  
 </script>  
 ENDSCRIPT  
     }  
 # ---- Print the screen, pretend to be in text mode to generate text-based menu  
     unless ($env{'browser.interface'} eq 'textual') {  
  $env{'browser.interface'}='faketextual';  
  $env{'environment.remote'}='off';  
     }  
     my $html=&Apache::lonxml::xmlbegin();  
     $r->print(<<ENDHEADER);  
 $html  
 <head>  
 <title>LON-CAPA Main Menu</title>  
 $script_tag  
 </head>  
 $bodytag  
 ENDHEADER  
     $r->print('<table>'.&inlinemenu().'</table>'.$form);  
     $r->print('</body></html>');  
     return OK;  
 }  
   
 # ================================================================ Main Program  # ================================================================ Main Program
   
 BEGIN {  BEGIN {
   if (! defined($readdesk)) {      if (! defined($readdesk)) {
    {   {
     my $tabfile = $Apache::lonnet::perlvar{'lonTabDir'}.'/mydesk.tab';      my $tabfile = $Apache::lonnet::perlvar{'lonTabDir'}.'/mydesk.tab';
     if ( CORE::open( my $config,"<$tabfile") ) {      if ( CORE::open( my $config,"<$tabfile") ) {
         while (my $configline=<$config>) {   while (my $configline=<$config>) {
             $configline=(split(/\#/,$configline))[0];      $configline=(split(/\#/,$configline))[0];
             $configline=~s/^\s+//;      $configline=~s/^\s+//;
             chomp($configline);      chomp($configline);
             if ($configline) {      if ($configline) {
                 $desklines[$#desklines+1]=$configline;   push(@desklines,$configline);
             }      }
         }   }
         CORE::close($config);   CORE::close($config);
       }
    }
    $readdesk='done';
     }      }
    }  
    $readdesk='done';  
   }  
 }  }
   
 1;  1;

Removed from v.1.159  
changed lines
  Added in v.1.171


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>