Diff for /loncom/interface/lonfeedback.pm between versions 1.39 and 1.48

version 1.39, 2003/02/10 16:22:28 version 1.48, 2003/07/01 19:27:31
Line 56  sub mail_screen { Line 56  sub mail_screen {
   my ($r,$feedurl,$options) = @_;    my ($r,$feedurl,$options) = @_;
   my $bodytag=&Apache::loncommon::bodytag('Resource Feedback and Discussion',    my $bodytag=&Apache::loncommon::bodytag('Resource Feedback and Discussion',
                                           '','onLoad="window.focus();"');                                            '','onLoad="window.focus();"');
     my $latexHelp = Apache::loncommon::helpLatexCheatsheet();
   $r->print(<<ENDDOCUMENT);    $r->print(<<ENDDOCUMENT);
 <html>  <html>
 <head>  <head>
Line 105  sub mail_screen { Line 106  sub mail_screen {
 </head>  </head>
 $bodytag  $bodytag
 <h2><tt>$feedurl</tt></h2>  <h2><tt>$feedurl</tt></h2>
 <form action="/adm/feedback" method=post name=mailform>  <form action="/adm/feedback" method="post" name="mailform"
   enctype="multipart/form-data">
 <input type=hidden name=postdata value="$feedurl">  <input type=hidden name=postdata value="$feedurl">
 Please check at least one of the following feedback types:  Please check at least one of the following feedback types:
 $options<hr>  $options<hr>
 My question/comment/feedback:<p>  My question/comment/feedback:<p>
   $latexHelp
 <textarea name=comment cols=60 rows=10 wrap=hard>  <textarea name=comment cols=60 rows=10 wrap=hard>
 </textarea><p>  </textarea><p>
 <input type=hidden name=sendit value=1>  Attachment (128 KB max size): <input type="file" name="attachment" />
 <input type=button value="Send Feedback" onClick='gosubmit();'></input>  </p>
   <p>
   <input type="hidden" name="sendit" value="1" />
   <input type=button value="Send Feedback" onClick='gosubmit();' />
   </p>
 </form>  </form>
 ENDDOCUMENT  ENDDOCUMENT
 $r->print(&generate_preview_button().'</body></html>');  $r->print(&generate_preview_button().'</body></html>');
Line 214  sub screen_header { Line 221  sub screen_header {
   
 sub resource_output {  sub resource_output {
   my ($feedurl) = @_;    my ($feedurl) = @_;
   my $usersaw=&Apache::lonnet::ssi($feedurl);    my $usersaw=&Apache::lonnet::ssi_body($feedurl);
   $usersaw=~s/\<body[^\>]*\>//gi;    $usersaw=~s/\<body[^\>]*\>//gi;
   $usersaw=~s/\<\/body\>//gi;    $usersaw=~s/\<\/body\>//gi;
   $usersaw=~s/\<html\>//gi;    $usersaw=~s/\<html\>//gi;
Line 236  sub clear_out_html { Line 243  sub clear_out_html {
  BR=>1, TT=>1, STRONG=>1, BLOCKQUOTE=>1, DIV=>1, IMG=>1);   BR=>1, TT=>1, STRONG=>1, BLOCKQUOTE=>1, DIV=>1, IMG=>1);
   
       $message =~ s/\<(\/?\s*(\w+)[^\>\<]*)/        $message =~ s/\<(\/?\s*(\w+)[^\>\<]*)/
   {($html{uc($2)}&(length($1)<1000))?"\<$1":"\&lt;$1"}/ge;    {($html{uc($2)}&&(length($1)<1000))?"\<$1":"\&lt;$1"}/ge;
       $message =~ s/(\<?\s*(\w+)[^\<\>]*)\>/        $message =~ s/(\<?\s*(\w+)[^\<\>]*)\>/
   {($html{uc($2)}&(length($1)<1000))?"$1\>":"$1\&gt;"}/ge;    {($html{uc($2)}&&(length($1)<1000))?"$1\>":"$1\&gt;"}/ge;
   } else {    } else {
       $message=~s/\<\/*m\s*\>//g;        $message=~s/\<\/*m\s*\>//g;
       $message=~s/\</\&lt\;/g;        $message=~s/\</\&lt\;/g;
Line 248  sub clear_out_html { Line 255  sub clear_out_html {
 }  }
   
 sub assemble_email {  sub assemble_email {
   my ($feedurl,$message,$prevattempts,$usersaw)=@_;    my ($feedurl,$message,$prevattempts,$usersaw,$useranswer)=@_;
   my $email=<<"ENDEMAIL";    my $email=<<"ENDEMAIL";
 Refers to <a href="$feedurl">$feedurl</a>  Refers to <a href="$feedurl">$feedurl</a>
   
Line 260  $prevattempts Line 267  $prevattempts
 <p><hr>  <p><hr>
 <h2>Original screen output (if applicable)</h2>  <h2>Original screen output (if applicable)</h2>
 $usersaw  $usersaw
   <h2>Correct Answer(s) (if applicable)</h2>
   $useranswer
 ENDCITE  ENDCITE
   return ($email,$citations);    return ($email,$citations);
 }  }
Line 333  sub feedback_available { Line 342  sub feedback_available {
 }  }
   
 sub send_msg {  sub send_msg {
   my ($feedurl,$email,$citations,%to)=@_;    my ($feedurl,$email,$citations,$attachmenturl,%to)=@_;
   my $status='';    my $status='';
   my $sendsomething=0;    my $sendsomething=0;
   foreach (keys %to) {    foreach (keys %to) {
     if ($_) {      if ($_) {
       my $declutter=&Apache::lonnet::declutter($feedurl);        my $declutter=&Apache::lonnet::declutter($feedurl);
       unless (&Apache::lonmsg::user_normal_msg(split(/\:/,$_),        unless (&Apache::lonmsg::user_normal_msg(split(/\:/,$_),
                'Feedback ['.$declutter.']',$email,$citations)=~/ok/) {                 'Feedback ['.$declutter.']',$email,$citations,$feedurl,
                   $attachmenturl)=~/ok/) {
  $status.='<br>Error sending message to '.$_.'<br>';   $status.='<br>Error sending message to '.$_.'<br>';
       } else {        } else {
  $sendsomething++;   $sendsomething++;
Line 363  sub send_msg { Line 373  sub send_msg {
 }  }
   
 sub adddiscuss {  sub adddiscuss {
     my ($symb,$email,$anon)=@_;      my ($symb,$email,$anon,$attachmenturl)=@_;
     my $status='';      my $status='';
     if (&Apache::lonnet::allowed('pch',$ENV{'request.course.id'}.      if (&Apache::lonnet::allowed('pch',$ENV{'request.course.id'}.
         ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {          ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {
Line 375  sub adddiscuss { Line 385  sub adddiscuss {
                  'plainname'    => $ENV{'environment.firstname'}.' '.                   'plainname'    => $ENV{'environment.firstname'}.' '.
                    $ENV{'environment.middlename'}.' '.                     $ENV{'environment.middlename'}.' '.
                                    $ENV{'environment.lastname'}.' '.                                     $ENV{'environment.lastname'}.' '.
                                    $ENV{'enrironment.generation'});                                     $ENV{'enrironment.generation'},
                    'attachmenturl'=> $attachmenturl);
     if ($anon) {      if ($anon) {
  $contrib{'anonymous'}='true';   $contrib{'anonymous'}='true';
     }      }
Line 550  sub handler { Line 561  sub handler {
 # Get output from resource  # Get output from resource
       my $usersaw=&resource_output($feedurl);        my $usersaw=&resource_output($feedurl);
   
   # Get resource answer
         my $useranswer=&Apache::loncommon::get_student_answers(
                          $symb,$ENV{'user.name'},$ENV{'user.domain'},
          $ENV{'request.course.id'});
   # Get attachments, if any, and not too large
         my $attachmenturl='';
         if ($ENV{'form.attachment.filename'}) {
     unless (length($ENV{'form.attachment'})>131072) {
         $attachmenturl=&Apache::lonnet::userfileupload('attachment');
     }
         }
 # Filter HTML out of message (could be nasty)  # Filter HTML out of message (could be nasty)
       my $message=&clear_out_html($ENV{'form.comment'});        my $message=&clear_out_html($ENV{'form.comment'});
   
 # Assemble email  # Assemble email
       my ($email,$citations)=&assemble_email($feedurl,$message,$prevattempts,        my ($email,$citations)=&assemble_email($feedurl,$message,$prevattempts,
           $usersaw);            $usersaw,$useranswer);
    
 # Who gets this?  # Who gets this?
       my ($typestyle,%to) = &decide_receiver($feedurl);        my ($typestyle,%to) = &decide_receiver($feedurl);
   
 # Actually send mail  # Actually send mail
       my ($status,$numsent)=&send_msg($feedurl,$email,$citations,%to);        my ($status,$numsent)=&send_msg($feedurl,$email,$citations,
             $attachmenturl,%to);
   
 # Discussion? Store that.  # Discussion? Store that.
   
       my $numpost=0;        my $numpost=0;
       if ($ENV{'form.discuss'}) {        if ($ENV{'form.discuss'}) {
   $typestyle.=&adddiscuss($symb,$message);    $typestyle.=&adddiscuss($symb,$message,0,$attachmenturl);
   $numpost++;    $numpost++;
       }        }
   
       if ($ENV{'form.anondiscuss'}) {        if ($ENV{'form.anondiscuss'}) {
   $typestyle.=&adddiscuss($symb,$message,1);    $typestyle.=&adddiscuss($symb,$message,1,$attachmenturl);
   $numpost++;    $numpost++;
       }        }
   

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


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