--- loncom/interface/lonpdfupload.pm	2009/05/15 23:40:54	1.5
+++ loncom/interface/lonpdfupload.pm	2009/05/21 03:09:01	1.7
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Publication Handler
 #
-# $Id: lonpdfupload.pm,v 1.5 2009/05/15 23:40:54 bisitz Exp $
+# $Id: lonpdfupload.pm,v 1.7 2009/05/21 03:09:01 onken Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -65,7 +65,7 @@ sub handler() {
     $env{'request.uri'}=$r->uri;
     $r->content_type('text/html');
     $r->send_http_header();
-    $r->print(&Apache::loncommon::start_page('Upload-PDF-Form'));
+    $r->print(&Apache::loncommon::start_page(&mt('Upload PDF Form')));
 
     #load post data into environment
     &Apache::lonacc::get_posted_cgi($r);
@@ -80,7 +80,8 @@ sub handler() {
     }
 
     #link to course-content
-    $r->print('<p>'."\n"
+    $r->print('<hr />'
+             .'<p>'."\n"
              .'<a href="/adm/navmaps">'."\n"
              .&mt("Navigate Contents")."\n"
              .'</a>'."\n"
@@ -88,7 +89,7 @@ sub handler() {
     );
 
     #&dumpenv($r); #debug -> prints the environment
-    $r->print("  </body> \n</html>\n");
+    $r->print(&Apache::loncommon::end_page());
     return OK;
 }
 
@@ -121,7 +122,7 @@ END
 
 sub get_javascripts() {
     
-    my $message = &mt('Please choose a PDF-File');
+    my $message = &mt('Please choose a PDF-File.');
 
     # simple test if the upload ends with ".pdf"
     # it's only for giving a message to the user
@@ -146,9 +147,9 @@ END
 sub get_uploadform() {
     
     my %lt = &Apache::lonlocal::texthash(
-                 'title'=>'Submit a PDF-Form with problems', 
-                 'chFile' => 'Choose file',
-                 'submit'=>'Submit'
+                 'title'  => 'Upload a PDF Form with filled Form Fields', 
+                 'chFile' => 'File',
+                 'submit' => 'Upload',
              );
 
     my $result = 
@@ -165,8 +166,7 @@ sub get_uploadform() {
        .&Apache::lonhtmlcommon::end_pick_box()
        .'<input type="submit" name="Uploaded" value="'.$lt{'submit'}.'" />'
        .'</form>'
-       .'<br />'
-       .'<hr />';
+       .'<br />';
 
   return $result;
 }
@@ -180,7 +180,9 @@ sub processPDF {
     if (scalar @pdfdata) {    
         &grade_pdf(@pdfdata);
     } else {
-        $result .= "<h2>".&mt("Can't find any valid PDF-formfields")."</h2>";
+        $result .= '<p class="LC_error">'
+                  .&mt("Can't find any valid PDF formfields.")
+                  .'</p>';
     }
 }
 
@@ -215,11 +217,13 @@ sub grade_pdf {
     my $debug = ();
 
     $debug  .= "Found: ". scalar @pdfdata." Entries \n";
-    $result .= '<br />';
-    $result .= &Apache::loncommon::start_data_table();
-    $result .= &Apache::loncommon::start_data_table_header_row();
-    $result .= &mt('<b>Results of PDF-Form problems</b>');
-    $result .= &Apache::loncommon::end_data_table_header_row();
+    $result .= '<h2>'.&mt('Results of PDF Form problems').'</h2>';
+    $result .= &Apache::loncommon::start_data_table()
+              .&Apache::loncommon::start_data_table_header_row()
+              .'<th>'.&mt('Problem Name').'</th>'
+              .'<th>'.&mt('Grading').'</th>'
+              .&Apache::loncommon::start_data_table_header_row()
+              .&Apache::loncommon::end_data_table_header_row();
 
     foreach my $entry (sort(@pdfdata)) {
         if ($entry =~ /^meta.*/) {
@@ -239,7 +243,7 @@ sub grade_pdf {
             my ($map,$id,$resource)=&Apache::lonnet::decode_symb($symb);  
             $value =~ s/(.*)\n/$1/; 
 
-            #fehlerhafte Radiobuttons rausfiltern (Bug in CABAReT Stage)
+            #filter incorrect radiobuttons (Bug in CABAReT Stage)
             if($type eq 'radiobuttonresponse' && $value eq 'Off' ) {
                 next;
             }
@@ -266,8 +270,6 @@ sub grade_pdf {
         my %problem = %{$problems{$key}};
         my ($problemname, $grade) = &grade_problem(%problem);
 
-        $problemname =~ s/(.*)\s*-\sPart\s0/$1/; #cut part when there is only one part in problem
-
         $result .= &Apache::loncommon::start_data_table_row();
         $result .= "<td>$problemname</td><td class='";
         if($grade eq "EXACT_ANS") {
@@ -278,7 +280,6 @@ sub grade_pdf {
         $result .= "'>$grade</span></td>";
         $result .= &Apache::loncommon::end_data_table_row();
     }
-    #$result .= "\n</table>";
     $result .= &Apache::loncommon::end_data_table();
 
 
@@ -287,23 +288,22 @@ sub grade_pdf {
 
 sub grade_problem {
     my %problem = @_;
+    my ($title, $part) = ();
 
-    my ($content) =  &Apache::loncommon::ssi_with_retries('/res/'.
-            $problem{'resource'}, 5, %problem);
-    
-    #TODO ? filter html response can't be the answer 
-    #     ! find an other way to get a problemname and Part
-    $content =~ s/.*class="LC_current_location".*>(.*)<\/td>.*/$1/g;
-    $content = $1;
+    &Apache::loncommon::ssi_with_retries('/res/'.$problem{'resource'}, 5, %problem);
 
-    my $part = $problem{submitted};
+    $title = &Apache::lonnet::gettitle($problem{'symb'});    
+    $part = $problem{submitted};
     $part =~ s/part_(.*)/$1/;
-    $content .= " - Part $part";
+    unless($part eq '0') {
+        #add information about part number
+        $title .= " - Part $part";
+    }
  
     my %problemhash = &Apache::lonnet::restore($problem{'symb'});
     my $grade = $problemhash{"resource.$part.award"};
 
-    return ($content, $grade);    
+    return ($title, $grade);    
 }
 
 sub dumpenv  {