Diff for /loncom/interface/lonmenu.pm between versions 1.41 and 1.48

version 1.41, 2003/02/17 19:28:54 version 1.48, 2003/04/02 22:02:19
Line 25 Line 25
 #  #
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
 # (TeX Conversion Module  
 #  #
 # 05/29/00,05/30 Gerd Kortemeyer)  # There are two parameters controlling the action of this module:
   #
   # browser.interface - if this is 'textual', it overrides the second parameter
   # and goes to screen reader PDA mode
   #
   # environment.remote - if this is 'on', the routines controll the remote
   # control, otherwise they render the main window controls; ignored it
   # browser.interface is 'textual'
 #  #
 # 10/05,05/28,05/30,06/01,06/08,06/09,07/04,08/07 Gerd Kortemeyer  
 # 02/15/02 Matthew Hall  
   
 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::loncommon;  use Apache::loncommon;
 use Apache::File;  use Apache::File;
 use vars qw(@desklines $readdesk);  use vars qw(@desklines $readdesk);
Line 47  sub menubuttons { Line 52  sub menubuttons {
     my $forcereg=shift;      my $forcereg=shift;
     my $target  =shift;      my $target  =shift;
     my $registration=shift;      my $registration=shift;
     unless ($ENV{'browser.interface'} eq 'textual') { return ''; }      if ($ENV{'browser.interface'} eq 'textual') {
 # Textual display only  # Textual display only
     my $output='<a href="/adm/menu">Main Menu</a><br />';   my $output=(<<ENDMAINMENU);
     if ($registration) { $output.=&innerregister($forcereg,$target); }  <script>
     return $output."<hr />";  // BEGIN LON-CAPA Internal
   </script>
   <a href="/adm/menu" target="_top">Main Menu</a><br />
   <script>
   // END LON-CAPA Internal
   </script>
   ENDMAINMENU
           if ($registration) { $output.=&innerregister($forcereg,$target); }
    return $output."<hr />";
       } elsif ($ENV{'environment.remote'} eq 'off') {
   # Remote Control is switched off
    my $output=(<<ENDINLINEMENU);
   <script>
   // BEGIN LON-CAPA Internal
   </script>
   <a href="/adm/menu" target="_top">Main Menu</a>
   <a href="/adm/remote?action=launch" target="_top">Launch Remote Control</a>
   <script>
   // END LON-CAPA Internal
   </script>
   ENDINLINEMENU
           if ($registration) { $output.=&innerregister($forcereg,$target); }
    return $output."<hr />";
       } else {
    return '';
       }
 }  }
   
 # ====================================== This gets called in the header section  # ====================================== This gets called in the header section
Line 62  sub registerurl { Line 92  sub registerurl {
     my $result = '';      my $result = '';
           
     if ($target eq 'edit') {      if ($target eq 'edit') {
         $result .="<script type=\"text/javascrtipt\">\n".          $result .="<script type=\"text/javascript\">\n".
             "if (typeof swmenu != 'undefined') {swmenu.currentURL=null;}\n".              "if (typeof swmenu != 'undefined') {swmenu.currentURL=null;}\n".
             &Apache::loncommon::browser_and_searcher_javascript().              &Apache::loncommon::browser_and_searcher_javascript().
                 "\n</script>\n";                  "\n</script>\n";
Line 204  ENDMENUITEMS Line 234  ENDMENUITEMS
         }          }
         if ($textual) {          if ($textual) {
 # Registered, textual output  # Registered, textual output
               my $utility=&utilityfunctions();
               my $form=&serverform();
     $result =(<<ENDREGTEXT);      $result =(<<ENDREGTEXT);
   <script>
   // BEGIN LON-CAPA Internal
   $utility
   </script>
 $timesync  $timesync
 $newmail  $newmail
 $buttons  $buttons
 $hwkadd  $hwkadd
 $editbutton  $editbutton
   $form
   <script>
   //END LON-CAPA Internal
   </script>
   
 ENDREGTEXT  ENDREGTEXT
 # Registered, graphical output  # Registered, graphical output
         } else {          } else {
Line 217  ENDREGTEXT Line 258  ENDREGTEXT
             
 <script language="JavaScript">  <script language="JavaScript">
 // BEGIN LON-CAPA Internal  // BEGIN LON-CAPA Internal
   var swmenu=null;
   
     function LONCAPAreg() {      function LONCAPAreg() {
   swmenu=$reopen;    swmenu=$reopen;
Line 225  ENDREGTEXT Line 267  ENDREGTEXT
           $newmail            $newmail
           $buttons            $buttons
   swmenu.currentURL=window.location.pathname;    swmenu.currentURL=window.location.pathname;
           swmenu.reloadURL=window.location.pathname;            swmenu.reloadURL=window.location.pathname+window.location.search;
           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;
Line 267  ENDDONOTREGTEXT Line 309  ENDDONOTREGTEXT
   
 <script language="JavaScript">  <script language="JavaScript">
 // BEGIN LON-CAPA Internal  // BEGIN LON-CAPA Internal
   var swmenu=null;
   
     function LONCAPAreg() {      function LONCAPAreg() {
   swmenu=$reopen    swmenu=$reopen
Line 380  ENDMAINCALL Line 423  ENDMAINCALL
 # ================================================================= Reopen menu  # ================================================================= Reopen menu
   
 sub reopenmenu {  sub reopenmenu {
    my $nothing='';  
    if ($ENV{'browser.interface'} eq 'textual') { return ''; }     if ($ENV{'browser.interface'} eq 'textual') { return ''; }
    my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'};     my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'};
    if ($ENV{'browser.type'} eq 'explorer') { $nothing='javascript:void(0);'; }     my $nothing = &Apache::lonhtmlcommon::javascript_nothing();
    return('window.open("'.$nothing.'","'.$menuname.'","",false);');     return('window.open('.$nothing.',"'.$menuname.'","",false);');
 }   } 
   
 # =============================================================== Open the menu  # =============================================================== Open the menu
Line 435  sub switch { Line 477  sub switch {
        if ($nobreak==2) { return ''; }         if ($nobreak==2) { return ''; }
        my $text=$top.' '.$bot;         my $text=$top.' '.$bot;
        $text=~s/\- //;         $text=~s/\- //;
        return ($nobreak?'':'<br />').         return "\n".($nobreak?' ':'<br />').
         '<a href="javascript:'.$act.';">'.$text.'</a> '.($nobreak?'':$desc);          '<a href="javascript:'.$act.';" target="_top">'.$text.'</a> '.
           ($nobreak?'':$desc);
    }     }
 }  }
   
Line 457  sub secondlevel { Line 500  sub secondlevel {
 sub openmenu {  sub openmenu {
     my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'};      my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'};
     if ($ENV{'browser.interface'} eq 'textual') { return ''; }      if ($ENV{'browser.interface'} eq 'textual') { return ''; }
     if ($ENV{'browser.type'} eq 'explorer') {      my $nothing = &Apache::lonhtmlcommon::javascript_nothing();
        return "window.open('javascript:void(0);','".$menuname."');";      return "window.open(".$nothing.",'".$menuname."');";
    } else {  
        return "window.open('','".$menuname."');";  
    }  
 }  }
   
 sub rawconfig {  sub rawconfig {
Line 572  sub footer { Line 612  sub footer {
   
 }  }
   
   sub utilityfunctions {
       unless ($ENV{'browser.interface'} eq 'textual') { return ''; }
       my $currenturl=$ENV{'REQUEST_URI'};
       my $currentsymb=$ENV{'request.symb'};
   return (<<ENDUTILITY)
   
       var currentURL="$currenturl";
       var reloadURL="$currenturl";
       var currentSymb="$currentsymb";
   
   function go(url) {
      if (url!='' && url!= null) {
          currentURL = null;
          currentSymb= null;
          window.location.href=url;
      }
   }
   
   function gopost(url,postdata) {
      if (url!='') {
         this.document.server.action=url;
         this.document.server.postdata.value=postdata;
         this.document.server.command.value='';
         this.document.server.url.value='';
         this.document.server.symb.value='';
         this.document.server.submit();
      }
   }
   
   function gocmd(url,cmd) {
      if (url!='') {
         this.document.server.action=url;
         this.document.server.postdata.value='';
         this.document.server.command.value=cmd;
         this.document.server.url.value=currentURL;
         this.document.server.symb.value=currentSymb;
         this.document.server.submit();
      }
   }
   ENDUTILITY
   }
   
   sub serverform {
       return(<<ENDSERVERFORM);
   
   <form name="server" action="/adm/logout" method="post">
   <input type="hidden" name="postdata" value="none" />
   <input type="hidden" name="command" value="none" />
   <input type="hidden" name="url" value="none" />
   <input type="hidden" name="symb" value="none" />
   </form>
   ENDSERVERFORM
   }
 # ================================================ Handler when called directly  # ================================================ Handler when called directly
   
   
Line 581  sub handler { Line 674  sub handler {
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
   
       my $utility=&utilityfunctions();
       my $form=&serverform();
     my $bodytag=&Apache::loncommon::bodytag('Main Menu');      my $bodytag=&Apache::loncommon::bodytag('Main Menu');
 # ------------------------------------------------------------ Print the screen  # ------------------------------------------------------------ Print the screen
     $r->print(<<ENDHEADER);      $r->print(<<ENDHEADER);
 <html><head>  <html><head>
 <title>LON-CAPA Main Menu</title>  <title>LON-CAPA Main Menu</title>
 <script>  <script>
 function go(url) {  $utility
     window.location=url;  
 }  
 function gopost(url) {  
     window.location=url;  
 }  
 </script>  </script>
 </head>  </head>
 $bodytag  $bodytag
 ENDHEADER  ENDHEADER
     $r->print(&rawconfig(1));      $r->print(&rawconfig(1).$form);
     $r->print('</body></html>');      $r->print('</body></html>');
     return OK;      return OK;
 }  }

Removed from v.1.41  
changed lines
  Added in v.1.48


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