[LON-CAPA-cvs] cvs: loncom /interface printout.pl

sakharuk lon-capa-cvs@mail.lon-capa.org
Thu, 05 Feb 2004 18:38:12 -0000


sakharuk		Thu Feb  5 13:38:12 2004 EDT

  Modified files:              
    /loncom/interface	printout.pl 
  Log:
  Changes to implement status windows for 1. Figures conversion; 2. PDF production. The first step - any critical notes are welcomed.
  
  
Index: loncom/interface/printout.pl
diff -u loncom/interface/printout.pl:1.43 loncom/interface/printout.pl:1.44
--- loncom/interface/printout.pl:1.43	Tue Feb  3 16:39:11 2004
+++ loncom/interface/printout.pl	Thu Feb  5 13:38:12 2004
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 # CGI-script to run LaTeX, dvips, ps2ps, ps2pdf etc.
 #
-# $Id: printout.pl,v 1.43 2004/02/03 21:39:11 sakharuk Exp $
+# $Id: printout.pl,v 1.44 2004/02/05 18:38:12 sakharuk Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -27,6 +27,7 @@
 #
 
 use lib '/home/httpd/lib/perl';
+use Time::Local;
 use LONCAPA::loncgi();
 use File::Path;
 use IO::File;
@@ -59,7 +60,12 @@
   my $advans_role = $ENV{'cgi.'.$identifier.'role'};
   my $back_ref = $ENV{'cgi.'.$identifier.'backref'};
   my $number_of_files = $ENV{'cgi.'.$identifier.'numberoffiles'}+1;
+  my $student_names = $ENV{'cgi.'.$identifier.'studentnames'};
 
+  my @names_pack=();
+  if ($student_names=~/_END_/) {  
+      @names_pack=split(/_ENDPERSON_/,$student_names);
+  }
 
   my $figfile = $texfile;
   $figfile =~ s/^([^\.]+printout)[^t]+\.tex/$1\.dat/;
@@ -72,8 +78,11 @@
       my @content_of_file = <$temporary_file>;
       close $temporary_file;  
       my $noteps;
+      &Create_StatWin ('Starting eps pictures creation', 'Pictires Status window');
       foreach $not_eps (@content_of_file) {
 	  if ($not_eps ne '') {
+              my $status_statement='EPS picture for '.$not_eps;
+	      &Update_StaWin ($status_statement);
 	      $not_eps=~s|\/\.\/|\/|g;
 	      my $eps_f = $not_eps;
 	      $eps_f =~ s/\.[^.]*$/\.eps/i;
@@ -110,6 +119,7 @@
 	      }  
 	  }
       }
+      &Close_StatWin();
   }
   #print "$texfile\n"; #name of the tex file for debugging only   
   my @texfile=($texfile);
@@ -120,7 +130,24 @@
 	  push @texfile,$new_texfile;
       } 
   }
+my $ind=-1;
+&Create_StatWin ('Starting PDF production for students', 'PDF Status window');
 foreach $texfile (@texfile) {
+  my $final_statement="<b>Link to your PDF document:</b> ";
+  my $status_statement='PDF document for ';
+  if ($number_of_files>1) {
+      $ind++;
+      my @stud_info=split(/_END_/,$names_pack[$ind]);
+      my @tempo_array=split(/:/,$stud_info[0]);
+      $final_statement='Link to PDF document for <b>'.$tempo_array[3].'</b> ';
+      $status_statement.=$tempo_array[3];
+      if ($#stud_info>0) {
+	  @tempo_array=split(/:/,$stud_info[-1]);
+	  $final_statement.='- <b>'.$tempo_array[3].':</b>  ';
+	  $status_statement.=' -  '.$tempo_array[3];
+      } 
+  }
+&Update_StaWin ($status_statement);
   if (-e $texfile) {
       $texfile =~ m/^(.*)\/([^\/]+)$/; 
       my $name_file = $2;
@@ -153,7 +180,7 @@
 	  my $whereitbegins = rindex $body_log_file,'STAMPOFPASSEDRESOURCESTART';
 	  my $whereitends = rindex $body_log_file,'STAMPOFPASSEDRESOURCEEND';
 	  if ($whereitbegins!=-1 and $whereitends!=-1) {
-	      print "With very high probability this error occured in ".substr($body_log_file,$whereitbegins+26,$whereitends-$whereitbegins-26)."<br /><br />";
+ 	      print "With very high probability this error occured in ".substr($body_log_file,$whereitbegins+26,$whereitends-$whereitbegins-26)."<br /><br />";
 	  }
 	  print "Here are the error messages in the LaTeX log file</br><br />";
 	  my $sygnal = 0;
@@ -261,7 +288,7 @@
 	  my $comma = "dvips -Ppdf -G0 -o $new_name_file";
 	  system("$comma $name_file 1>/dev/null 2>/dev/null");
 	  if (-e $new_name_file) {
-	      print "<h1>Successfully created PDF output file (see link below)</h1>\n";
+	      print "<br />$final_statement ";
 	      $new_name_file =~ m/^(.*)\./;
 	      my $tempo_file = $1.'temporar.ps';
 	      my $name_file = $1.'.pdf';
@@ -295,9 +322,40 @@
       print "LaTeX file $texfile was not created successfully";
   }
 }
+if ($number_of_files>1) {
+    my $statement='';
+    foreach my $file (@texfile) {
+    
+    }
+}
+&Close_StatWin();
 
 
-  
+sub Create_StatWin {
+    my ($title, $heading)=@_;
+    print('<script>'.
+    "popwin=window.open('','popwin','width=400,height=100');".
+    "popwin.document.writeln('<html><head><title>$title</title></head>".
+	      "<body bgcolor=\"#88DDFF\">".
+              "<h4>$heading</h4>".
+              "<form name=popremain>".
+              '<input type="text" size="55" name="remaining" value="'.
+	      'Starting'.'"></form>'.
+              "</body></html>');".
+    "popwin.document.close();".
+    "</script>");
+}
+
+sub Update_StaWin {
+    my ($info)=@_;
+    print('<script>popwin.document.popremain.remaining.value="'.
+	      $info.'";'.'</script>');
+}
+   
+sub Close_StatWin {
+    print('<script>popwin.window.close()</script>'."\n");
+
+}