Diff for /loncom/interface/lonprintout.pm between versions 1.57 and 1.58

version 1.57, 2002/09/09 19:27:42 version 1.58, 2002/09/09 20:20:40
Line 118  ENDMENUOUT5 Line 118  ENDMENUOUT5
 }  }
   
   
   sub problem_choice_menu {
       my $r = shift;
       my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
       $subdirtoprint =~ s/\/[^\/]+$//;
       my @list_of_files = ();
       if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) {
    $subdirtoprint =~ s/^[^~]*~(\w+)\//\/home\/$1\/public_html\//;
       } else {
    $subdirtoprint =~ s/.*(\/res\/)/$1/;
       }
       my @content_directory = ();
       if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) {
    @content_directory = &Apache::lonnet::dirlist($subdirtoprint,$ENV{'user.domain'}, $ENV{'user.name'},'');
       } else {
    @content_directory = &Apache::lonnet::dirlist($subdirtoprint);
       }
       for (my $iy=0;$iy<=$#content_directory;$iy++) {
    my @tempo_array = split(/&/,$content_directory[$iy]);
    if ($tempo_array[0] =~ m/^[^\.]+\.(problem|exam|quiz|assess|survey|form|library)$/) {
       push(@list_of_files,$tempo_array[0]);
    }
       }
       $subdirtoprint =~ s/\/$//;
       for (my $i=0;$i<=$#list_of_files;$i++) {
    $list_of_files[$i] = $subdirtoprint.'/'.$list_of_files[$i];
       }
       $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="numberofcolumns" value="$ENV{'form.numberofcolumns'}">
   <h1>Mark problems 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('whattoprint')==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('whattoprint')==0) {
         document.forms.printform.elements[i].checked=false;
               }
           }
       }
   </script>
   <input type=button onClick="checkall()" value="Check for All">&nbsp;
   <input type=button onClick="uncheckall()" value="Check for None">
   <p>
   ENDMENUOUT1
       my $i;
       foreach my $file (@list_of_files) {
    $r->print('<br /><input type=checkbox name="whattoprint'.$i.'" value="'.$file.'"> '.
                     $file);
    $i++;
       }
       $r->print(<<ENDMENUOUT2);
   <br />
   <input type="hidden" name="numberofproblems" value="$i">
   <input type="hidden" name="phase" value="three">
   <input type="submit" value="Submit">
   ENDMENUOUT2
   }
   
   
 sub additional_class_menu {  sub additional_class_menu {
     my $r = shift;      my $r = shift;
     $r->print(<<ENDMENUOUT1);      $r->print(<<ENDMENUOUT1);
Line 133  ENDMENUOUT1 Line 204  ENDMENUOUT1
    $ENV{'course.'.$ENV{'request.course.id'}.'.num'});     $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
     my $now=time;      my $now=time;
     $r->print(<<ENDDISHEADER);      $r->print(<<ENDDISHEADER);
 <input type=hidden name=sendmode value=group>  
 <script>  <script>
     function checkall() {      function checkall() {
  for (i=0; i<document.forms.printform.elements.length; i++) {   for (i=0; i<document.forms.printform.elements.length; i++) {
Line 206  sub additional_print_menu { Line 276  sub additional_print_menu {
     for (my $i=0; $i<$ENV{'form.numberofstudents'};$i++) {      for (my $i=0; $i<$ENV{'form.numberofstudents'};$i++) {
  $what_to_print .= '<input type="hidden" name="whomtoprint'.$i.'" value="'.$ENV{'form.whomtoprint'.$i}.'">';   $what_to_print .= '<input type="hidden" name="whomtoprint'.$i.'" value="'.$ENV{'form.whomtoprint'.$i}.'">';
     }      }
       for (my $i=0; $i<$ENV{'form.numberofproblems'};$i++) {
    $what_to_print .= '<input type="hidden" name="whattoprint'.$i.'" value="'.$ENV{'form.whattoprint'.$i}.'">';
       }
     $r->print(<<ENDMENUOUT);      $r->print(<<ENDMENUOUT);
     $what_to_print      $what_to_print
 <input type="hidden" name="url" value="$ENV{'form.url'}">  <input type="hidden" name="url" value="$ENV{'form.url'}">
 <input type="hidden" name="choice" value="$ENV{'form.choice'}">  <input type="hidden" name="choice" value="$ENV{'form.choice'}">
 <input type="hidden" name="layout" value="$ENV{'form.layout'}">  <input type="hidden" name="layout" value="$ENV{'form.layout'}">
 <input type="hidden" name="numberofstudents" value="$ENV{'form.numberofstudents'}">  <input type="hidden" name="numberofstudents" value="$ENV{'form.numberofstudents'}">
   <input type="hidden" name="numberofproblems" value="$ENV{'form.numberofproblems'}">
 <input type="hidden" name="numberofcolumns" value="$ENV{'form.numberofcolumns'}">  <input type="hidden" name="numberofcolumns" value="$ENV{'form.numberofcolumns'}">
 Define page layout parameters: <br />  Define page layout parameters: <br />
 <b>Width</b>: <input type="text" name="width" width="8" value="9cm"> <br />  <b>Width</b>: <input type="text" name="width" width="8" value="9cm"> <br />
Line 397  ENDPART Line 471  ENDPART
     $current_output =~ s/\\begin{document}/\\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$fullname}}\\hskip 1\.4in } \\vskip 5 mm /;      $current_output =~ s/\\begin{document}/\\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$fullname}}\\hskip 1\.4in } \\vskip 5 mm /;
     $result .= $current_output;      $result .= $current_output;
  }   }
   
  $result = &additional_cleanup($result);   $result = &additional_cleanup($result);
   
   
   
   
   
   
     } elsif ($choice eq 'Subdirectory print') {            } elsif ($choice eq 'Subdirectory print') {      
  my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});      #prints selected problems from the subdirectory 
  $subdirtoprint =~ s/\/[^\/]+$//;          my @list_of_files = ();
  my @list_of_files = ();   for (my $i=0; $i<$ENV{'form.numberofproblems'};$i++) {
  if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) {      if ($ENV{'form.whattoprint'.$i}=~/^\//) {
     $subdirtoprint =~ s/^[^~]*~(\w+)\//\/home\/$1\/public_html\//;  # $result.= $ENV{'form.whattoprint'.$i}.' FFF ';
  } else {   push @list_of_files,$ENV{'form.whattoprint'.$i};
     $subdirtoprint =~ s/.*(\/res\/)/$1/;  
  }  
  my @content_directory = ();  
  if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) {  
     @content_directory = &Apache::lonnet::dirlist($subdirtoprint,$ENV{'user.domain'}, $ENV{'user.name'},'');  
  } else {  
     @content_directory = &Apache::lonnet::dirlist($subdirtoprint);  
  }  
  for (my $iy=0;$iy<=$#content_directory;$iy++) {  
     my @tempo_array = split(/&/,$content_directory[$iy]);  
     if ($tempo_array[0] =~ m/^[^\.]+\.(problem|exam|quiz|assess|survey|form|library)$/) {  
  push(@list_of_files,$tempo_array[0]);  
     }      }
  }   }
  $subdirtoprint =~ s/\/$//;  
  for (my $i=0;$i<=$#list_of_files;$i++) {   for (my $i=0;$i<=$#list_of_files;$i++) {
     my $urlp = $subdirtoprint.'/'.$list_of_files[$i];      my $urlp = $list_of_files[$i];
     my %moreenv;      if ($urlp=~/\//) {
     $moreenv{'form.grade_target'}='tex';   my %moreenv;
     &Apache::lonnet::appenv(%moreenv);   $moreenv{'form.grade_target'}='tex';
     if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) {    &Apache::lonnet::appenv(%moreenv);
  $urlp =~ s/\/home\/([^\/]*)\/public_html/\/~$1/;    if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) { 
     }      $urlp =~ s/\/home\/([^\/]*)\/public_html/\/~$1/; 
     my $texversion=&Apache::lonnet::ssi($urlp);   }
     &Apache::lonnet::delenv('form.grade_target');   my $texversion=&Apache::lonnet::ssi($urlp);
     $texversion =~ s/(\\begin{document})/$1 {\\tiny\\begin{verbatim}$urlp\\end{verbatim}}/;   &Apache::lonnet::delenv('form.grade_target');
     $result .= $texversion;      $texversion =~ s/(\\begin{document})/$1 {\\tiny\\begin{verbatim}$urlp\\end{verbatim}}/;
    $result .= $texversion;
       }   
  }   }
  $result = &additional_cleanup($result);   $result = &additional_cleanup($result);
   
Line 939  sub handler { Line 995  sub handler {
      if ($ENV{'form.phase'} eq 'two') {       if ($ENV{'form.phase'} eq 'two') {
  if($ENV{'form.choice'} eq 'All class print') {   if($ENV{'form.choice'} eq 'All class print') {
      &additional_class_menu($r);       &additional_class_menu($r);
    } elsif($ENV{'form.choice'} eq 'Subdirectory print') {
        &problem_choice_menu($r);
  } else {   } else {
      $ENV{'form.phase'} = 'three';       $ENV{'form.phase'} = 'three';
  }   }

Removed from v.1.57  
changed lines
  Added in v.1.58


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