Diff for /loncom/interface/lonmenu.pm between versions 1.39 and 1.40

version 1.39, 2003/02/14 21:22:04 version 1.40, 2003/02/17 17:34:16
Line 41  use Apache::loncommon; Line 41  use Apache::loncommon;
 use Apache::File;  use Apache::File;
 use vars qw(@desklines $readdesk);  use vars qw(@desklines $readdesk);
   
 # ======================================================= Make the menu buttons  # ============================= This gets called at the top of the body section
   
 sub menubuttons {  sub menubuttons {
     my $forcereg=shift;      my $forcereg=shift;
     my $target  =shift;      my $target  =shift;
       my $registration=shift;
     unless ($ENV{'browser.interface'} eq 'textual') { return ''; }      unless ($ENV{'browser.interface'} eq 'textual') { return ''; }
     my $output='<a href="/adm/menu">Main Menu</a><br />';      my $output='<a href="/adm/menu">Main Menu</a><br />';
       if ($registration) { $output.=&innerregister($forcereg,$target); }
     return $output."<hr />";      return $output."<hr />";
 }  }
   
 # ============================================== Register a URL with the remote  # ====================================== This gets called in the header section
   
   
 sub registerurl {  sub registerurl {
     my $forcereg=shift;      my $forcereg=shift;
Line 73  sub registerurl { Line 74  sub registerurl {
          '<script type="text/javascript">function LONCAPAreg(){;} function LONCAPAstale(){}</script>';           '<script type="text/javascript">function LONCAPAreg(){;} function LONCAPAstale(){}</script>';
     }      }
     if ($Apache::lonxml::registered && !$forcereg) { return ''; }      if ($Apache::lonxml::registered && !$forcereg) { return ''; }
       $result.=&innerregister($forcereg,$target);
       return $result;
   }
   
   # =========== This gets called in order to register a URL, both with the Remote
   # =========== and in the body of the document
   
   sub innerregister {
       my $forcereg=shift;
       my $target = shift;
       my $result = '';
   
     $Apache::lonxml::registered=1;      $Apache::lonxml::registered=1;
   
       my $textual=($ENV{'browser.interface'} eq 'textual');
     my $reopen=&Apache::lonmenu::reopenmenu();      my $reopen=&Apache::lonmenu::reopenmenu();
   
     my $newmail='';      my $newmail='';
     if (&Apache::lonmsg::newmail()) {       if (&Apache::lonmsg::newmail()) { 
        $newmail='swmenu.setstatus("you have","messages");';         $newmail=($textual?'<b>You have messages</b><br />':
                             'swmenu.setstatus("you have","messages");');
     }      }
     my $timesync='swmenu.syncclock(1000*'.time.');';      my $timesync=($textual?'':'swmenu.syncclock(1000*'.time.');');
   # -- This is for URLs that actually can be registered
     if (($ENV{'REQUEST_URI'}!~/^\/(res\/)*adm\//) || ($forcereg)) {      if (($ENV{'REQUEST_URI'}!~/^\/(res\/)*adm\//) || ($forcereg)) {
   # -- This applies to homework problems for users with grading privileges
         my $hwkadd='';          my $hwkadd='';
         if ($ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) {          if 
         ($ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) {
     if (&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) {      if (&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) {
  $hwkadd.=(<<ENDSUBM);   $hwkadd.=&switch('','',7,1,'subm.gif','view sub','missions',
                      swmenu.switchbutton(7,1,'subm.gif','view sub','missions','gocmd("/adm/grades","submission")',                         "gocmd('/adm/grades','submission')",
                      'View user submissions for this assessment resource');         'View user submissions for this assessment resource');
 ENDSUBM  
             }              }
     if (&Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})) {      if (&Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})) {
  $hwkadd.=(<<ENDGRDS);   $hwkadd.=&switch('','',7,2,'pgrd.gif','problem','grades',
                      swmenu.switchbutton(7,2,'pgrd.gif','problem','grades','gocmd("/adm/grades","gradingmenu")',                         "gocmd('/adm/grades','gradingmenu')",
                      'Modify user grades for this assessment resource');                         'Modify user grades for this assessment resource');
 ENDGRDS  
             }              }
     if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) {      if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) {
  $hwkadd.=(<<ENDPARM);   $hwkadd.=&switch('','',7,3,'pparm.gif','problem','parms',
                      swmenu.switchbutton(7,3,'pparm.gif','problem','parms','gocmd("/adm/parmset","set")',                         "gocmd('/adm/parmset','set')",
                      'Modify deadlines, etc, for this assessment resource');                         'Modify deadlines, etc, for this assessment resource');
 ENDPARM  
             }              }
  }   }
   # -- End Homework
         ###          ###
         ### Determine whether or not to display the 'cstr' button for this          ### Determine whether or not to display the 'cstr' button for this
         ### resource          ### resource
Line 125  ENDPARM Line 143  ENDPARM
                 # 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'}) {                  if ($home eq $Apache::lonnet::perlvar{'lonHostID'}) {
                     $editbutton=&Apache::lonmenu::switch                      $editbutton=&switch
                         ('','',6,1,$top,,$bottom,$action,$desc);                          ('','',6,1,$top,,$bottom,$action,$desc);
                 }                  }
             }              }
Line 149  ENDPARM Line 167  ENDPARM
             }                      }        
             # Finally, turn the button on or off              # Finally, turn the button on or off
             if ($cfile) {              if ($cfile) {
                 $editbutton=&Apache::lonmenu::switch                  $editbutton=&switch
                     ('','',6,1,'cstr.gif','edit','resource',                      ('','',6,1,'cstr.gif','edit','resource',
                      "go('".$cfile."');","Edit this resource");                       "go('".$cfile."');","Edit this resource");
             } elsif ($editbutton eq '') {              } elsif ($editbutton eq '') {
                 $editbutton = '    swmenu.clearbut(6,1);';                  $editbutton=&clear(6,1);
             }              }
         }          }
         ###          ###
Line 373  sub clear { Line 391  sub clear {
    } else { return ''; }     } else { return ''; }
 }  }
   
   # ============================================ Switch a button or create a link
 # Switch acts on the javascript that is executed when a button is clicked.    # Switch acts on the javascript that is executed when a button is clicked.  
 # The javascript is usually similar to "go('/adm/roles')" or "cstrgo(..)".  # The javascript is usually similar to "go('/adm/roles')" or "cstrgo(..)".
   
 sub switch {  sub switch {
     my ($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc)=@_;      my ($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc,$nobreak)=@_;
     $act=~s/\$uname/$uname/g;      $act=~s/\$uname/$uname/g;
     $act=~s/\$udom/$udom/g;      $act=~s/\$udom/$udom/g;
     unless ($ENV{'browser.interface'} eq 'textual') {      unless ($ENV{'browser.interface'} eq 'textual') {
Line 385  sub switch { Line 405  sub switch {
    } else {     } else {
        my $text=$top.' '.$bot;         my $text=$top.' '.$bot;
        $text=~s/\- //;         $text=~s/\- //;
        return '<br /><a href="javascript:'.$act.';">'.$text.'</a> '.$desc;         return ($nobreak?'':'<br />').
           '<a href="javascript:'.$act.';">'.$text.'</a> '.$desc;
    }     }
 }  }
   

Removed from v.1.39  
changed lines
  Added in v.1.40


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