Diff for /loncom/xml/lonxml.pm between versions 1.145 and 1.148

version 1.145, 2002/01/03 16:18:00 version 1.148, 2002/01/09 09:50:59
Line 1011  sub storefile { Line 1011  sub storefile {
     if (my $fh=Apache::File->new('>'.$file)) {      if (my $fh=Apache::File->new('>'.$file)) {
  print $fh $contents;   print $fh $contents;
         $fh->close();          $fh->close();
       } else {
         &warning("Unable to save file $file");
     }      }
 }  }
   
Line 1032  sub inserteditinfo { Line 1034  sub inserteditinfo {
 </html>  </html>
 SIMPLECONTENT  SIMPLECONTENT
       }        }
       my $editheader='<a href="#editsection">Edit below</a><hr />';  
         $filecontents =~ s:</textarea>:&lt;/textarea&gt;:ig;
   #      my $editheader='<a href="#editsection">Edit below</a><hr />';
       my $editfooter=(<<ENDFOOTER);        my $editfooter=(<<ENDFOOTER);
 <hr />  <hr />
 <a name="editsection" />  <a name="editsection" />
 <form method="post">  <form method="post">
 <textarea cols="80" rows="40" name="filecont">$filecontents</textarea>  <textarea cols="80" rows="40" name="filecont">$filecontents</textarea>
 <br />  <br />
   <input type="hidden" name="showmode" value="Edit" />
 <input type="submit" name="attemptclean"   <input type="submit" name="attemptclean" 
        value="Save and then attempt to clean HTML" />         value="Save and then attempt to clean HTML" />
 <input type="submit" name="savethisfile" value="Save this" />  <input type="submit" name="savethisfile" value="Save this" />
   <input type="submit" name="showmode" value="View" />
 </form>  </form>
 ENDFOOTER  ENDFOOTER
       $result=~s/(\<body[^\>]*\>)/$1$editheader/is;  #      $result=~s/(\<body[^\>]*\>)/$1$editheader/is;
       $result=~s/(\<\/body\>)/$editfooter/is;        $result=~s/(\<\/body\>)/$editfooter/is;
       return $result;        return $result;
 }  }
   
   sub editbutton {
     my ($result) = @_;
     my $button=(<<EDITBUTTON);
   <form method="post">
   <input type="submit" name="showmode" value="Edit" />
   </form>
   EDITBUTTON
     $result=~s/(\<\/body\>)/$button/is;
     return $result;
   }
   
 sub handler {  sub handler {
   my $request=shift;    my $request=shift;
   
Line 1077  sub handler { Line 1094  sub handler {
       }        }
   }    }
   my %mystyle;    my %mystyle;
   my $result = '';     my $result = '';
   my $filecontents=&Apache::lonnet::getfile($file);    my $filecontents=&Apache::lonnet::getfile($file);
   if ($filecontents == -1) {    if ($filecontents == -1) {
     $result=(<<ENDNOTFOUND);      $result=(<<ENDNOTFOUND);
Line 1092  sub handler { Line 1109  sub handler {
 ENDNOTFOUND  ENDNOTFOUND
     $filecontents='';      $filecontents='';
   } else {    } else {
       unless ($ENV{'request.state'} eq 'published') {      unless ($ENV{'request.state'} eq 'published') {
          if ($ENV{'form.attemptclean'}) {        if ($ENV{'form.attemptclean'}) {
     $filecontents=&htmlclean($filecontents,1);   $filecontents=&htmlclean($filecontents,1);
          }  
       }        }
     $result = &Apache::lonxml::xmlparse($target,$filecontents,'',%mystyle);      }
       if ($ENV{'form.showmode'} ne 'Edit') {
         $result = &Apache::lonxml::xmlparse($target,$filecontents,'',%mystyle);
       }
   }    }
   
 #  #
 # Edit action? Insert editing commands  # Edit action? Insert editing commands
 #  #
   unless ($ENV{'request.state'} eq 'published') {    unless ($ENV{'request.state'} eq 'published') {
       if ($ENV{'form.showmode'} eq 'Edit') {
         $result='<html><body bgcolor="#FFFFFF"></body></html>';
       $result=&inserteditinfo($result,$filecontents);        $result=&inserteditinfo($result,$filecontents);
       } else {
         $result = &editbutton($result);
       }
   }    }
     
   writeallows($request->uri);    writeallows($request->uri);
   
   $request->print($result);    $request->print($result);
   
   return OK;    return OK;
 }  }
    
 sub debug {  sub debug {
   if ($Apache::lonxml::debug eq 1) {    if ($Apache::lonxml::debug eq 1) {
     print("DEBUG:".$_[0]."<br />\n");      $|=1;
       print("DEBUG:".join('<br />',@_)."<br />\n");
   }    }
 }  }
   
 sub error {  sub error {
   if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) {    if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) {
     print "<b>ERROR:</b>".$_[0]."<br />\n";      print "<b>ERROR:</b>".join('<br />',@_)."<br />\n";
   } else {    } else {
     print "<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />";      print "<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />";
     #notify author      #notify author
     &Apache::lonmsg::author_res_msg($ENV{'request.filename'},$_[0]);      &Apache::lonmsg::author_res_msg($ENV{'request.filename'},join('<br />',@_));
     #notify course      #notify course
     if ( $ENV{'request.course.id'} ) {      if ( $ENV{'request.course.id'} ) {
       my $users=$ENV{'course.'.$ENV{'request.course.id'}.'.comment.email'};        my $users=$ENV{'course.'.$ENV{'request.course.id'}.'.comment.email'};
Line 1134  sub error { Line 1159  sub error {
       foreach my $user (split /\,/, $users) {        foreach my $user (split /\,/, $users) {
  ($user,my $domain) = split /:/, $user;   ($user,my $domain) = split /:/, $user;
  &Apache::lonmsg::user_normal_msg($user,$domain,   &Apache::lonmsg::user_normal_msg($user,$domain,
         "Error [$declutter]",$_[0]);          "Error [$declutter]",join('<br />',@_));
       }        }
     }      }
   
     #FIXME probably shouldn't have me get everything forever.      #FIXME probably shouldn't have me get everything forever.
     &Apache::lonmsg::user_normal_msg('albertel','msu',"Error in $ENV{'request.filename'}",$_[0]);      &Apache::lonmsg::user_normal_msg('albertel','msu',"Error in $ENV{'request.filename'}",join('<br />',@_));
     #&Apache::lonmsg::user_normal_msg('albertel','103',"Error in $ENV{'request.filename'}",$_[0]);      #&Apache::lonmsg::user_normal_msg('albertel','103',"Error in $ENV{'request.filename'}",$_[0]);
   }    }
 }  }
   
 sub warning {  sub warning {
   if ($ENV{'request.state'} eq 'construct') {    if ($ENV{'request.state'} eq 'construct') {
     print "<b>W</b>ARNING<b>:</b>".$_[0]."<br />\n";      print "<b>W</b>ARNING<b>:</b>".join('<br />',@_)."<br />\n";
   }    }
 }  }
   

Removed from v.1.145  
changed lines
  Added in v.1.148


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