[LON-CAPA-cvs] cvs: loncom /interface lonprintout.pm
sakharuk
lon-capa-cvs@mail.lon-capa.org
Thu, 14 Nov 2002 20:02:01 -0000
This is a MIME encoded message
--sakharuk1037304121
Content-Type: text/plain
sakharuk Thu Nov 14 15:02:01 2002 EDT
Modified files:
/loncom/interface lonprintout.pm
Log:
1. Added menus for the problem choice for the printing primary sequence
(only problems) and for the printing the whole primary sequence (problems
and pages and html/xml files);
2. Done additional cleanup in the relevant sections of the module.
--sakharuk1037304121
Content-Type: text/plain
Content-Disposition: attachment; filename="sakharuk-20021114150201.txt"
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.87 loncom/interface/lonprintout.pm:1.88
--- loncom/interface/lonprintout.pm:1.87 Thu Nov 14 10:39:35 2002
+++ loncom/interface/lonprintout.pm Thu Nov 14 15:02:00 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.87 2002/11/14 15:39:35 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.88 2002/11/14 20:02:00 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -94,8 +94,8 @@
ENDMENUOUT1
if ($ENV{'form.postdata'}=~/\/res\//) {
$r->print(<<ENDMENUOUT2);
-<input type="radio" name="choice" value="Standard LaTeX output for the primary sequence"> All problems from <b>$title_for_sequence</b><br />
-<input type="radio" name="choice" value="Standard LaTeX output for whole primary sequence"> All problems plus any pages or html/xml files from <b>$title_for_sequence</b><br />
+<input type="radio" name="choice" value="Standard LaTeX output for the primary sequence"> Problem(s) from <b>$title_for_sequence</b><br />
+<input type="radio" name="choice" value="Standard LaTeX output for whole primary sequence"> Problem(s) plus page(s) or html/xml file(s) from <b>$title_for_sequence</b><br />
ENDMENUOUT2
}
if (($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) and ($ENV{'form.postdata'}=~/\/res\//)) {
@@ -149,6 +149,68 @@
}
+sub sequence_content_menu {
+ my ($key_to,$r) = @_;
+ my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});
+ my @sequence = split('___',$symbolic);
+ my $primary_sequence = '/res/'.$sequence[0];
+ my @master_seq = &coming_from_hash($primary_sequence,$sequence[0]);
+ my @master_seq_view = @master_seq;
+ for (my $i=0;$i<=$#master_seq_view;$i++) {
+ $master_seq_view[$i]=~/\/([^\/]+)$/;
+ $master_seq_view[$i]=$1;
+ }
+ $r->print(<<ENDMENUOUT1);
+<input type="hidden" name="url" value="$ENV{'form.url'}">
+<input type="hidden" name="choice" value="$ENV{'form.choice'}">
+<input type="hidden" name="layout" value="$ENV{'form.layout'}">
+<input type="hidden" name="papersize" value="$ENV{'form.papersize'}">
+<input type="hidden" name="numberofcolumns" value="$ENV{'form.numberofcolumns'}">
+<h1>Mark item(s) which you want to print</h1>
+<script>
+ function checkall() {
+ for (i=0; i<document.forms.printform.elements.length; i++) {
+ if
+ (document.forms.printform.elements[i].name.indexOf('whatfile')==0) {
+ document.forms.printform.elements[i].checked=true;
+ }
+ }
+ }
+ function uncheckall() {
+ for (i=0; i<document.forms.printform.elements.length; i++) {
+ if
+ (document.forms.printform.elements[i].name.indexOf('whatfile')==0) {
+ document.forms.printform.elements[i].checked=false;
+ }
+ }
+ }
+</script>
+<input type=button onClick="checkall()" value="Check All">
+<input type=button onClick="uncheckall()" value="Uncheck">
+<p>
+ENDMENUOUT1
+ my $inc=0;
+ for (my $i=0;$i<=$#master_seq_view;$i++) {
+ if ($key_to==1 && $master_seq_view[$i]=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {
+ $r->print('<br /><input type=checkbox name="whatfile'.$inc.'" value="'.$master_seq[$i].'"> '.
+ $master_seq_view[$i]);
+ $inc++;
+ } elsif ($key_to==0 && $master_seq_view[$i]=~/\.(problem|exam|quiz|assess|survey|form|library|xml|htm|html|page)$/) {
+ $r->print('<br /><input type=checkbox name="whatfile'.$inc.'" value="'.$master_seq[$i].'"> '.
+ $master_seq_view[$i]);
+ $inc++;
+ }
+ }
+ $r->print(<<ENDMENUOUT2);
+<br />
+<input type="hidden" name="numberoffiles" value="$inc">
+<input type="hidden" name="phase" value="three">
+<input type="submit" value="Submit">
+ENDMENUOUT2
+
+}
+
+
sub problem_choice_menu {
my $r = shift;
my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
@@ -213,6 +275,7 @@
}
$r->print(<<ENDMENUOUT2);
<br />
+<input type="hidden" name="papersize" value="$ENV{'form.papersize'}">
<input type="hidden" name="numberofproblems" value="$i">
<input type="hidden" name="phase" value="three">
<input type="submit" value="Submit">
@@ -312,6 +375,9 @@
for (my $i=0; $i<$ENV{'form.numberofproblems'};$i++) {
$what_to_print .= '<input type="hidden" name="whattoprint'.$i.'" value="'.$ENV{'form.whattoprint'.$i}.'">';
}
+ for (my $i=0; $i<$ENV{'form.numberoffiles'};$i++) {
+ $what_to_print .= '<input type="hidden" name="whatfile'.$i.'" value="'.$ENV{'form.whatfile'.$i}.'">';
+ }
$r->print(<<ENDMENUOUT);
$what_to_print
<input type="hidden" name="url" value="$ENV{'form.url'}">
@@ -320,6 +386,7 @@
<input type="hidden" name="papersize" value="$ENV{'form.papersize'}">
<input type="hidden" name="numberofstudents" value="$ENV{'form.numberofstudents'}">
<input type="hidden" name="numberofproblems" value="$ENV{'form.numberofproblems'}">
+<input type="hidden" name="numberoffiles" value="$ENV{'form.numberoffiles'}">
<input type="hidden" name="numberofcolumns" value="$ENV{'form.numberofcolumns'}">
<input type="hidden" name="assignment" value="$ENV{'form.assignment'}">
Define one column layout parameters: <br />
@@ -394,56 +461,42 @@
$choice eq 'Standard LaTeX output for whole primary sequence') {
#-- minimal sequence to which the current document belongs
#-- where is the primary sequence containing file?
- my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});
- my @sequence = split('___',$symbolic);
- my $primary_sequence = '/res/'.$sequence[0];
- my @master_seq = &coming_from_hash($primary_sequence,$sequence[0]);
+ my @master_seq = ();
+ for (my $i=0; $i<$ENV{'form.numberoffiles'};$i++) {
+ if ($ENV{'form.whatfile'.$i}=~/\S/) {
+ push @master_seq,$ENV{'form.whatfile'.$i};
+ }
+ }
#-- produce an output string
my $flag_latex_header_remove = 'NO';
my $flag_page_in_sequence = 'NO';
for (my $i=0;$i<=$#master_seq;$i++) {
- my ($urlp,$symb) = split /&&/, $master_seq[$i];
+ my ($urlp,$symb) = split /&&/, $master_seq[$i];
if ($choice eq 'Standard LaTeX output for the primary sequence') {
- #prints only problems
- $selectionmade = 2;
- if ($urlp =~ m/\.(problem|exam|quiz|assess|survey|form|library)/) {
- my %moreenv;
- $moreenv{'form.grade_target'}='tex';
- $moreenv{'form.textwidth'}=$LaTeXwidth;
- &Apache::lonnet::appenv(%moreenv);
- &Apache::lonnet::logthis("Trying to get $urlp with symb $symb");
- my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb));
- &Apache::lonnet::delenv('form.grade_target','form.textwidth');
- if ($flag_latex_header_remove ne 'NO') {
- $texversion = &latex_header_footer_remove($texversion);
- } else {
- $texversion =~ s/\\end{document}//;
- }
- $result .= $texversion;
- $flag_latex_header_remove = 'YES';
- }
- } elsif ($urlp =~ /\S+/) {
- #prints problems, pages and any html/xml files
- $selectionmade = 3;
- my %moreenv;
- $moreenv{'form.grade_target'}='tex';
- &Apache::lonnet::appenv(%moreenv);
- my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb));
- &Apache::lonnet::delenv('form.grade_target');
- if ($urlp =~ m/\.page/) {
- ($texversion,my $number_of_columns_page) = &page_cleanup($texversion);
- if ($number_of_columns_page > $number_of_columns) {$number_of_columns=$number_of_columns_page;}
- $texversion =~ s/\\end{document}\d*/\\end{document}/;
- $flag_page_in_sequence = 'YES';
- }
- if ($flag_latex_header_remove ne 'NO') {
- $texversion = &latex_header_footer_remove($texversion);
- } else {
- $texversion =~ s/\\end{document}//;
- }
- $result .= $texversion;
- $flag_latex_header_remove = 'YES';
+ $selectionmade = 2;
+ } elsif ($choice eq 'Standard LaTeX output for whole primary sequence') {
+ $selectionmade = 3;
}
+ my %moreenv;
+ $moreenv{'form.grade_target'}='tex';
+ $moreenv{'form.textwidth'}=$LaTeXwidth;
+ &Apache::lonnet::appenv(%moreenv);
+ &Apache::lonnet::logthis("Trying to get $urlp with symb $symb");
+ my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb));
+ &Apache::lonnet::delenv('form.grade_target','form.textwidth');
+ if ($urlp =~ m/\.page/) {
+ ($texversion,my $number_of_columns_page) = &page_cleanup($texversion);
+ if ($number_of_columns_page > $number_of_columns) {$number_of_columns=$number_of_columns_page;}
+ $texversion =~ s/\\end{document}\d*/\\end{document}/;
+ $flag_page_in_sequence = 'YES';
+ }
+ if ($flag_latex_header_remove ne 'NO') {
+ $texversion = &latex_header_footer_remove($texversion);
+ } else {
+ $texversion =~ s/\\end{document}//;
+ }
+ $result .= $texversion;
+ $flag_latex_header_remove = 'YES';
}
&Apache::lonnet::delenv('form.counter');
if ($flag_page_in_sequence eq 'YES') {$result =~ s/\\usepackage{calc}/\\usepackage{calc}\\usepackage{longtable}/;}
@@ -1218,7 +1271,11 @@
}
#-- additional menu for class printing
if ($ENV{'form.phase'} eq 'two') {
- if($ENV{'form.choice'} eq 'All class print') {
+ if($ENV{'form.choice'} eq 'Standard LaTeX output for whole primary sequence') {
+ &sequence_content_menu(0,$r);
+ } elsif($ENV{'form.choice'} eq 'Standard LaTeX output for the primary sequence') {
+ &sequence_content_menu(1,$r);
+ } elsif($ENV{'form.choice'} eq 'All class print') {
&additional_class_menu($r);
} elsif($ENV{'form.choice'} eq 'Subdirectory print') {
&problem_choice_menu($r);
--sakharuk1037304121--