Diff for /loncom/interface/lonmenu.pm between versions 1.107 and 1.117

version 1.107, 2004/04/01 15:29:40 version 1.117, 2004/09/18 16:55:33
Line 39 Line 39
 package Apache::lonmenu;  package Apache::lonmenu;
   
 use strict;  use strict;
 use Apache::lonnet;  use Apache::lonnet();
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use Apache::lonhtmlcommon();  use Apache::lonhtmlcommon();
 use Apache::loncommon;  use Apache::loncommon();
   use Apache::lonnavmaps();
 use Apache::lonlocal;  use Apache::lonlocal;
   
 use vars qw(@desklines $readdesk);  use vars qw(@desklines $readdesk);
Line 68  sub menubuttons { Line 69  sub menubuttons {
     my $forcereg=shift;      my $forcereg=shift;
     my $target  =shift;      my $target  =shift;
     my $registration=shift;      my $registration=shift;
       &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
       ['inhibitmenu']);
       if ($ENV{'form.inhibitmenu'} eq 'yes') { return ''; }
   
     my $navmaps='';      my $navmaps='';
     my $reloadlink='';      my $reloadlink='';
     my $escurl=&Apache::lonnet::escape($ENV{'request.noversionuri'});      my $escurl=&Apache::lonnet::escape($ENV{'request.noversionuri'});
Line 91  ENDNAV Line 96  ENDNAV
 ENDRELOAD  ENDRELOAD
             }              }
         }          }
           my $utility=&utilityfunctions();
  my $output=(<<ENDMAINMENU);   my $output=(<<ENDMAINMENU);
 <script>  <script>
 // BEGIN LON-CAPA Internal  // BEGIN LON-CAPA Internal
   $utility
 </script>  </script>
 <a href="/adm/menu" target="_top">$lt{'main'}</a>  <a href="/adm/menu" target="_top">$lt{'main'}</a>
 $reloadlink $navmaps<br />  $reloadlink $navmaps<br />
Line 128  ENDMAINMENU Line 135  ENDMAINMENU
         my $sidebg=&Apache::loncommon::designparm($function.'.sidebg',$domain);          my $sidebg=&Apache::loncommon::designparm($function.'.sidebg',$domain);
 # Do we have a NAV link?  # Do we have a NAV link?
         if ($ENV{'request.course.id'}) {          if ($ENV{'request.course.id'}) {
     $navmaps=(<<ENDNAVREM);             $navmaps=(<<ENDNAV);
 <td bgcolor="$tabbg">  <td bgcolor="$tabbg">
 <a href="/adm/navmaps?postdata=$escurl&postsymb=$escsymb" target="_top"><font color="$font">$lt{'nav'}</font></a></td>  <a href="javascript:gonav('/adm/navmaps?postdata=$escurl&postsymb=$escsymb')"><font color="$font">$lt{'nav'}</font></a></td>
 ENDNAVREM  ENDNAV
             if (($ENV{'request.noversionuri'}=~/^\/adm\//) &&      if (($ENV{'request.noversionuri'}=~/^\/adm\//) &&
                 ($ENV{'request.noversionuri'}!~/^\/adm\/wrapper\//) &&                  ($ENV{'request.noversionuri'}!~/^\/adm\/wrapper\//) &&
          ($ENV{'request.noversionuri'}!~/^\/adm\/.*\/(smppg|bulletinboard|aboutme)(\?|$)/)) {           ($ENV{'request.noversionuri'}!~/^\/adm\/.*\/(smppg|bulletinboard|aboutme)(\?|$)/)) {
                 my $escreload=&Apache::lonnet::escape('return:');                  my $escreload=&Apache::lonnet::escape('return:');
Line 146  ENDRELOAD Line 153  ENDRELOAD
         if ($registration) {          if ($registration) {
            $reg=&innerregister($forcereg,$target);             $reg=&innerregister($forcereg,$target);
         }          }
    my $utility=&utilityfunctions();
  return (<<ENDINLINEMENU);   return (<<ENDINLINEMENU);
 <script>  <script>
 // BEGIN LON-CAPA Internal  // BEGIN LON-CAPA Internal
   $utility
 </script>  </script>
 <font face="Arial,Helvetica,sans-serif"><table bgcolor="$pgbg" width="100%" border="0" cellpadding="1" cellspacing="1">  <font face="Arial,Helvetica,sans-serif"><table bgcolor="$pgbg" width="100%" border="0" cellpadding="1" cellspacing="1">
 <tr>  <tr>
Line 310  sub innerregister { Line 319  sub innerregister {
                 }                  }
                 # Check that we are on the correct machine                  # Check that we are on the correct machine
                 my $home = &Apache::lonnet::homeserver($caname,$cadom);                  my $home = &Apache::lonnet::homeserver($caname,$cadom);
                 if ($home eq $Apache::lonnet::perlvar{'lonHostID'}) {   my $allowed=0;
                     $editbutton=&switch   my @ids=&Apache::lonnet::current_machine_ids();
                         ('','',6,1,$top,,$bottom,$action,$desc);   foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
    if (!$allowed) {
       $editbutton=&switch('','',6,1,$top,,$bottom,$action,$desc);
                 }                  }
             }              }
             ##              ##
Line 324  sub innerregister { Line 335  sub innerregister {
             if ($ENV{'request.filename'}) {              if ($ENV{'request.filename'}) {
                 my $file=&Apache::lonnet::declutter($ENV{'request.filename'});                  my $file=&Apache::lonnet::declutter($ENV{'request.filename'});
                 $file=~s/^(\w+)\/(\w+)/\/priv\/$2/;                  $file=~s/^(\w+)\/(\w+)/\/priv\/$2/;
                 # Chech that the user has permission to edit this resource                  # Check that the user has permission to edit this resource
                 ($cfuname,$cfudom)=&Apache::loncacc::constructaccess($file,$1);                  ($cfuname,$cfudom)=&Apache::loncacc::constructaccess($file,$1);
                 if (defined($cfudom)) {                  if (defined($cfudom)) {
                     if (&Apache::lonnet::homeserver($cfuname,$cfudom)       my $home=&Apache::lonnet::homeserver($cfuname,$cfudom);
                         eq $Apache::lonnet::perlvar{'lonHostID'}) {      my $allowed=0;
       my @ids=&Apache::lonnet::current_machine_ids();
       foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
       if ($allowed) {
                         $cfile=$file;                          $cfile=$file;
                     }                      }
                 }                  }
Line 374  ENDREALRES Line 388  ENDREALRES
         }          }
         if ($textual) {          if ($textual) {
 # Registered, textual output  # Registered, textual output
             my $utility=&utilityfunctions();  
             my $form=&serverform();              my $form=&serverform();
     my $inlinebuttons='';      my $inlinebuttons='';
   
Line 393  ENDINLINE Line 406  ENDINLINE
     $result =(<<ENDREGTEXT);      $result =(<<ENDREGTEXT);
 <script>  <script>
 // BEGIN LON-CAPA Internal  // BEGIN LON-CAPA Internal
 $utility  
 </script>  </script>
 $timesync  $timesync
 $newmail  $newmail
Line 410  ENDREGTEXT Line 422  ENDREGTEXT
         } else {          } else {
     my $requri=(split(/\?/,$ENV{'request.noversionuri'}))[0];      my $requri=(split(/\?/,$ENV{'request.noversionuri'}))[0];
     $requri=&Apache::lonnet::unescape($requri);      $requri=&Apache::lonnet::unescape($requri);
       my $navstatus=&get_nav_status();
     $result = (<<ENDREGTHIS);      $result = (<<ENDREGTHIS);
             
 <script language="JavaScript">  <script language="JavaScript">
Line 427  var swmenu=null; Line 440  var swmenu=null;
           swmenu.currentSymb="$ENV{'request.symb'}";            swmenu.currentSymb="$ENV{'request.symb'}";
           swmenu.reloadSymb="$ENV{'request.symb'}";            swmenu.reloadSymb="$ENV{'request.symb'}";
           swmenu.currentStale=0;            swmenu.currentStale=0;
     $navstatus
           $hwkadd            $hwkadd
           $editbutton            $editbutton
     }      }
Line 443  var swmenu=null; Line 457  var swmenu=null;
           swmenu.clearbut(7,3);            swmenu.clearbut(7,3);
           swmenu.menucltim=swmenu.setTimeout(            swmenu.menucltim=swmenu.setTimeout(
  'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+   'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+
  'clearbut(9,1);clearbut(9,2);clearbut(9,3);clearbut(6,3);clearbut(6,1)',   'clearbut(9,1);clearbut(9,3);clearbut(6,3);clearbut(6,1)',
   2000);    2000);
       }        }
   
Line 599  sub reopenmenu { Line 613  sub reopenmenu {
 sub open {  sub open {
     my $returnval='';      my $returnval='';
     if (($ENV{'browser.interface'} eq 'textual') ||      if (($ENV{'browser.interface'} eq 'textual') ||
         ($ENV{'environment.remote'} eq 'off')) { return ''; }          ($ENV{'environment.remote'} eq 'off')) { 
    return '<script type="text/javascript">self.name="loncapaclient";</script>';
       }
     my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'};      my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'};
     unless (shift eq 'unix') {      unless (shift eq 'unix') {
 # resizing does not work on linux because of virtual desktop sizes  # resizing does not work on linux because of virtual desktop sizes
Line 810  sub rawconfig { Line 826  sub rawconfig {
                     }                                             }                       
                     $act =~ s/\$caname/$caname/g;                      $act =~ s/\$caname/$caname/g;
                     my $home = &Apache::lonnet::homeserver($caname,$cadom);                      my $home = &Apache::lonnet::homeserver($caname,$cadom);
                     if ($home eq $Apache::lonnet::perlvar{'lonHostID'}) {      my $allowed=0;
       my @ids=&Apache::lonnet::current_machine_ids();
       foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
       if ($allowed) {
                         $output.=switch($caname,$cadom,                          $output.=switch($caname,$cadom,
                                         $row,$col,$img,$top,$bot,$act,$desc);                                          $row,$col,$img,$top,$bot,$act,$desc);
                     }                      }
Line 857  sub utilityfunctions { Line 876  sub utilityfunctions {
         ($ENV{'environment.remote'} eq 'off')) { return ''; }          ($ENV{'environment.remote'} eq 'off')) { return ''; }
     my $currenturl=$ENV{'request.noversionuri'};      my $currenturl=$ENV{'request.noversionuri'};
     my $currentsymb=$ENV{'request.symb'};      my $currentsymb=$ENV{'request.symb'};
       my $nav_control=&Apache::lonnavmaps::nav_control_js();
 return (<<ENDUTILITY)  return (<<ENDUTILITY)
   
     var currentURL="$currenturl";      var currentURL="$currenturl";
     var reloadURL="$currenturl";      var reloadURL="$currenturl";
     var currentSymb="$currentsymb";      var currentSymb="$currentsymb";
   
   $nav_control
   
 function go(url) {  function go(url) {
    if (url!='' && url!= null) {     if (url!='' && url!= null) {
        currentURL = null;         currentURL = null;
Line 914  sub serverform { Line 936  sub serverform {
 </form>  </form>
 ENDSERVERFORM  ENDSERVERFORM
 }  }
   
   sub get_nav_status {
       my $navstatus="swmenu.w_loncapanav_flag=";
       if ($ENV{'environment.remotenavmap'} eq 'on') {
    $navstatus.="1";
       } else {
    $navstatus.="-1";
       }
       return $navstatus;
   }
   
 # ================================================ Handler when called directly  # ================================================ Handler when called directly
   
   
Line 945  sub handler { Line 978  sub handler {
  $ENV{'browser.interface'}='faketextual';   $ENV{'browser.interface'}='faketextual';
  $ENV{'environment.remote'}='off';   $ENV{'environment.remote'}='off';
     }      }
     my $utility=&utilityfunctions();  
     $r->print(<<ENDHEADER);      $r->print(<<ENDHEADER);
 <html><head>  <html><head>
 <title>LON-CAPA Main Menu</title>  <title>LON-CAPA Main Menu</title>
 <script>  
 $utility  
 </script>  
 </head>  </head>
 $bodytag  $bodytag
 ENDHEADER  ENDHEADER

Removed from v.1.107  
changed lines
  Added in v.1.117


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