Diff for /loncom/interface/lonpdfupload.pm between versions 1.18 and 1.23

version 1.18, 2010/03/18 19:11:05 version 1.23, 2014/02/28 19:20:06
Line 130  sub get_javascripts() { Line 130  sub get_javascripts() {
 // <![CDATA[  // <![CDATA[
     function checkFilename(form) {      function checkFilename(form) {
         var fileExt = form.file.value;          var fileExt = form.file.value;
         fileExt = fileExt.match(/[.]pdf\$/g);          fileExt = fileExt.match(/[.]pdf\$/gi);
         if(fileExt) {          if(fileExt) {
             return true;              return true;
         }          }
Line 183  sub processPDF { Line 183  sub processPDF {
         &grade_pdf(@pdfdata);          &grade_pdf(@pdfdata);
     } else {      } else {
         $result .= '<p class="LC_error">'          $result .= '<p class="LC_error">'
                   .&mt("Can't find any valid PDF formfields.")                    .&mt("Can't find any valid PDF form fields.")
                   .'</p>';                    .'</p>';
     }      }
 }  }
Line 192  sub get_pdf_data() { Line 192  sub get_pdf_data() {
     my @data = ();      my @data = ();
     my $pdf = CAM::PDF->new($env{'form.file'});      my $pdf = CAM::PDF->new($env{'form.file'});
   
     my @formFields = $pdf->getFormFieldList(); #get names of formfields      if($pdf) {
               my @formFields = $pdf->getFormFieldList(); #get names of form fields
     foreach my $field (@formFields) {  
  my $dict = $pdf->getFormFieldDict($pdf->getFormField($field)); # get formfield dictonary          foreach my $field (@formFields) {
               my $dict = $pdf->getFormFieldDict($pdf->getFormField($field)); # get form field dictonary
   
         #              # this is necessary because CAM::PDF has a problem with form fieldnames which include a
         # this is necessary because CAM::PDF has a problem with formfieldnames which include a              # dot in fieldnames. So a fieldname like "i.am.aFormfield" will offer three fieldnames
         # dot in fieldnames. So a fieldname like "i.am.aFormfield" will offer three fieldnames "i", "i.am"               # "i", "i.am" and "i.am.aFormfield". The fragmentary names keep no values and will be ignored.
         # and "i.am.aFormfield". The fragmentary names keep no values and will be ignored.              if($dict->{'V'}) {
         if($dict->{'V'}) {                  push(@data, $field."?". $dict->{'V'}{'value'}); #binding fieldname with value
             push(@data, $field."?". $dict->{'V'}{'value'}); #binding fieldname with value              }
         }          }
     }       }
     return @data;      return @data;
 }  }
   
 sub grade_pdf {  sub grade_pdf {
     my $result = ();  
     my @pdfdata = @_;      my @pdfdata = @_;
     my ($result,$meta,%grades,%problems,%foreigncourse,$debug);      my ($result,$meta,%grades,%problems,%foreigncourse,$debug);
   
Line 299  sub grade_pdf { Line 299  sub grade_pdf {
             $result .= '<td><a href="/res/'.$problem{'resource'}.              $result .= '<td><a href="/res/'.$problem{'resource'}.
                        '?symb='.                         '?symb='.
                        &HTML::Entities::encode($problem{'symb'},'"&<>').                         &HTML::Entities::encode($problem{'symb'},'"&<>').
                        '">'.$problemname.'</a></td><td class="';                         '">'.$problemname.'</a></td><td><span class="';
             if ($grade eq "EXACT_ANS" || $grade eq "APPROX_ANS") {              if ($grade eq "EXACT_ANS" || $grade eq "APPROX_ANS") {
                 $result .= 'LC_answer_correct';                  $result .= 'LC_answer_correct';
             } else {               } elsif ($grade eq "DRAFT") {
                   $result .= 'LC_answer_not_charged_try';
               } else {
                 $result .= 'LC_answer_charged_try';                  $result .= 'LC_answer_charged_try';
             }              }
             $result .= '">';              $result .= '">';
Line 375  sub parse_grade_answer { Line 377  sub parse_grade_answer {
      my %answerhash = ('EXACT_ANS' => &mt('You are correct.'),       my %answerhash = ('EXACT_ANS' => &mt('You are correct.'),
                        'APPROX_ANS' => &mt('You are correct.'),                         'APPROX_ANS' => &mt('You are correct.'),
                        'INCORRECT' => &mt('You are incorrect'),                         'INCORRECT' => &mt('You are incorrect'),
                          'DRAFT' => &mt('Copy saved but not submitted.'),
      );       );
   
     foreach my $key (keys %answerhash) {      foreach my $key (keys %answerhash) {

Removed from v.1.18  
changed lines
  Added in v.1.23


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