[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");
+
+}