Diff for /loncom/xml/lonxml.pm between versions 1.231 and 1.234

version 1.231, 2003/02/12 22:45:01 version 1.234, 2003/02/14 19:35:55
Line 376  sub fontsettings() { Line 376  sub fontsettings() {
     return $headerstring;      return $headerstring;
 }  }
   
   
 ##  
 ## switchmenu - modeled on lonmenu::switchmenu, but better.   
 ## Helper function for registerurl  
 ##  
 sub switchmenu {  
     my ($row,$col,$imgsrc,$texttop,$textbot,$action,$description)=@_;  
     return(<<ENDSMENU);  
     menu.switchbutton($row,$col,'$imgsrc','$texttop','$textbot','$action','$description');  
 ENDSMENU  
 }  
   
 sub registerurl {  
     my $forcereg=shift;  
     my $target = shift;  
     my $result = '';  
       
     if ($target eq 'edit') {  
         $result .="<script type=\"text/javascrtipt\">\n".  
             "if (typeof menu != 'undefined') {menu.currentURL=null;}\n".  
             &Apache::loncommon::browser_and_searcher_javascript().  
                 "\n</script>\n";  
     }  
     if ((($ENV{'request.publicaccess'}) ||   
          (!&Apache::lonnet::is_on_map($ENV{'REQUEST_URI'}))) &&  
         (!$forcereg)) {  
  return $result.  
          '<script type="text/javascript">function LONCAPAreg(){;} function LONCAPAstale(){}</script>';  
     }  
     if ($Apache::lonxml::registered && !$forcereg) { return ''; }  
     $Apache::lonxml::registered=1;  
     my $reopen=&Apache::lonmenu::reopenmenu();  
     my $newmail='';  
     if (&Apache::lonmsg::newmail()) {   
        $newmail='menu.setstatus("you have","messages");';  
     }  
     my $timesync='menu.syncclock(1000*'.time.');';  
     if (($ENV{'REQUEST_URI'}!~/^\/(res\/)*adm\//) || ($forcereg)) {  
         my $hwkadd='';  
         if ($ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) {  
     if (&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) {  
  $hwkadd.=(<<ENDSUBM);  
                      menu.switchbutton(7,1,'subm.gif','view sub','missions','gocmd("/adm/grades","submission")',  
                      'View user submissions for this assessment resource');  
 ENDSUBM  
             }  
     if (&Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})) {  
  $hwkadd.=(<<ENDGRDS);  
                      menu.switchbutton(7,2,'pgrd.gif','problem','grades','gocmd("/adm/grades","gradingmenu")',  
                      'Modify user grades for this assessment resource');  
 ENDGRDS  
             }  
     if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) {  
  $hwkadd.=(<<ENDPARM);  
                      menu.switchbutton(7,3,'pparm.gif','problem','parms','gocmd("/adm/parmset","set")',  
                      'Modify deadlines, etc, for this assessment resource');  
 ENDPARM  
             }  
  }  
         ###  
         ### Determine whether or not to display the 'cstr' button for this  
         ### resource  
         ###  
         my $editbutton = '';  
         if ($ENV{'user.author'}) {  
             if ($ENV{'request.role'}=~/^(ca|au)/) {  
                 # Set defaults for authors  
                 my ($top,$bottom) = ('con-','struct');  
                 my $action = "go('/priv/".$ENV{'user.name'}."');";  
                 my $cadom  = $ENV{'request.role.domain'};  
                 my $caname = $ENV{'user.name'};  
                 my $desc = "Enter my resource construction space";  
                 # Set defaults for co-authors  
                 if ($ENV{'request.role'} =~ /^ca/) {   
                     ($cadom,$caname)=($ENV{'request.role'}=~/(\w+)\/(\w+)$/);  
                     ($top,$bottom) = ('co con-','struct');  
                     $action = 'go("/priv/'.$caname.'");';  
                     $desc = "Enter construction space as co-author";  
                 }  
                 # Check that we are on the correct machine  
                 my $home = &Apache::lonnet::homeserver($caname,$cadom);  
                 if ($home eq $Apache::lonnet::perlvar{'lonHostID'}) {  
                     $editbutton=&switchmenu  
                         (6,1,$top,,$bottom,$action,$desc);  
                 }  
             }  
             ##  
             ## Determine if user can edit url.  
             ##  
             my $cfile='';  
             my $cfuname='';  
             my $cfudom='';  
             if ($ENV{'request.filename'}) {  
                 my $file=&Apache::lonnet::declutter($ENV{'request.filename'});  
                 $file=~s/^(\w+)\/(\w+)/\/priv\/$2/;  
                 # Chech that the user has permission to edit this resource  
                 ($cfuname,$cfudom)=&Apache::loncacc::constructaccess($file,$1);  
                 if (defined($cfudom)) {  
                     if (&Apache::lonnet::homeserver($cfuname,$cfudom)   
                         eq $Apache::lonnet::perlvar{'lonHostID'}) {  
                         $cfile=$file;  
                     }  
                 }  
             }          
             # Finally, turn the button on or off  
             if ($cfile) {  
                 $editbutton=&switchmenu  
                     (6,1,'cstr.gif','edit','resource',  
                      'go("'.$cfile.'");',"Edit this resource");  
             } elsif ($editbutton eq '') {  
                 $editbutton = '    menu.clearbut(6,1);';  
             }  
         }  
         ###  
         ###  
  $result = (<<ENDREGTHIS);  
        
 <script language="JavaScript">  
 // BEGIN LON-CAPA Internal  
   
     function LONCAPAreg() {  
   menu=$reopen;  
           menu.clearTimeout(menu.menucltim);  
           $timesync  
           $newmail  
   menu.currentURL=window.location.pathname;  
           menu.reloadURL=window.location.pathname;  
           menu.currentSymb="$ENV{'request.symb'}";  
           menu.reloadSymb="$ENV{'request.symb'}";  
           menu.currentStale=0;  
           menu.clearbut(3,1);  
           menu.switchbutton  
        (6,3,'catalog.gif','catalog','info','catalog_info()','Show catalog information');  
           menu.switchbutton  
        (8,1,'eval.gif','evaluate','this','gopost("/adm/evaluate",currentURL)','Provide my evaluation of this resource');  
           menu.switchbutton  
     (8,2,'fdbk.gif','feedback','discuss','gopost("/adm/feedback",currentURL)','Provide feedback messages or contribute to the course discussion about this resource');  
           menu.switchbutton  
      (8,3,'prt.gif','prepare','printout','gopost("/adm/printout",currentURL)','Prepare a printable document');  
           menu.switchbutton  
        (2,1,'back.gif','backward','','gopost("/adm/flip","back:"+currentURL)','Go to the previous resource in the course sequence');  
           menu.switchbutton  
      (2,3,'forw.gif','forward','','gopost("/adm/flip","forward:"+currentURL)','Go to the next resource in the course sequence');  
           menu.switchbutton  
                             (9,1,'sbkm.gif','set','bookmark','set_bookmark()','Set a bookmark for this resource');  
           menu.switchbutton  
                          (9,2,'vbkm.gif','view','bookmark','edit_bookmarks()','Use or edit my bookmark collection');  
           menu.switchbutton  
                                (9,3,'anot.gif','anno-','tations','annotate()','Make notes and annotations about this resource');  
           $hwkadd  
           $editbutton  
     }  
   
     function LONCAPAstale() {  
   menu=$reopen  
           menu.currentStale=1;  
           if (menu.reloadURL!='' && menu.reloadURL!= null) {   
              menu.switchbutton  
              (3,1,'reload.gif','return','location','go(reloadURL)','Return to the last known location in the course sequence');  
   }  
           menu.clearbut(7,1);  
           menu.clearbut(7,2);  
           menu.clearbut(7,3);  
           menu.menucltim=menu.setTimeout(  
  '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)',  
   2000);  
   
       }  
   
 // END LON-CAPA Internal  
 </script>  
 ENDREGTHIS  
   
     } else {  
         $result = (<<ENDDONOTREGTHIS);  
   
 <script language="JavaScript">  
 // BEGIN LON-CAPA Internal  
   
     function LONCAPAreg() {  
   menu=$reopen  
           $timesync  
           menu.currentStale=1;  
           menu.clearbut(2,1);  
           menu.clearbut(2,3);  
           menu.clearbut(8,1);  
           menu.clearbut(8,2);  
           menu.clearbut(8,3);  
           if (menu.currentURL) {  
              menu.switchbutton  
               (3,1,'reload.gif','return','location','go(currentURL)');  
    } else {  
       menu.clearbut(3,1);  
           }  
     }  
   
     function LONCAPAstale() {  
     }  
   
 // END LON-CAPA Internal  
 </script>  
 ENDDONOTREGTHIS  
     }  
     return $result;  
 }  
   
 sub loadevents() {  
     return 'LONCAPAreg();';  
 }  
   
 sub unloadevents() {  
     return 'LONCAPAstale();';  
 }  
   
 sub printalltags {  sub printalltags {
   my $temp;    my $temp;
   foreach $temp (sort keys %Apache::lonxml::alltags) {    foreach $temp (sort keys %Apache::lonxml::alltags) {
Line 603  sub xmlparse { Line 388  sub xmlparse {
  my ($request,$target,$content_file_string,$safeinit,%style_for_target) = @_;   my ($request,$target,$content_file_string,$safeinit,%style_for_target) = @_;
   
  &setup_globals($request,$target);   &setup_globals($request,$target);
    &Apache::inputtags::initialize_inputtags();
    &Apache::outputtags::initialize_outputtags();
    &Apache::edit::initialize_edit();
 #  #
 # do we have a course style file?  # do we have a course style file?
 #  #

Removed from v.1.231  
changed lines
  Added in v.1.234


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