Diff for /loncom/interface/lonprintout.pm between versions 1.51 and 1.52

version 1.51, 2002/08/14 20:38:04 version 1.52, 2002/08/30 20:41:09
Line 47  use Apache::inputtags; Line 47  use Apache::inputtags;
 use Apache::edit;  use Apache::edit;
 use Apache::File();  use Apache::File();
 use POSIX qw(strftime);  use POSIX qw(strftime);
   use Apache::loncoursedata;
   
   
 sub headerform {  sub headerform {
Line 73  sub menu_for_output { Line 74  sub menu_for_output {
 (you will print what you see on the screen)<br />  (you will print what you see on the screen)<br />
 ENDMENUOUT1  ENDMENUOUT1
     if ((not $ENV{'request.role'}=~m/^au\./) and (not $ENV{'request.role'}=~m/^ca\./)) {      if ((not $ENV{'request.role'}=~m/^au\./) and (not $ENV{'request.role'}=~m/^ca\./)) {
     $r->print(<<ENDMENUOUT2);   $r->print(<<ENDMENUOUT2);
 <input type="radio" name="choice" value="Standard LaTeX output for the primary sequence">  All problems from the primary sequence<br />  <input type="radio" name="choice" value="Standard LaTeX output for the primary sequence">  All problems from the primary sequence<br />
 <input type="radio" name="choice" value="Standard LaTeX output for whole primary sequence">  The whole primary sequence (problems plus all html and xml files)<br />  <input type="radio" name="choice" value="Standard LaTeX output for whole primary sequence">  The whole primary sequence (problems plus all html and xml files)<br />
 <input type="radio" name="choice" value="Standard LaTeX output for the top level sequence">  All problems from the top level sequence<br />  <input type="radio" name="choice" value="Standard LaTeX output for the top level sequence">  All problems from the top level sequence<br />
 <br />  <br />
 ENDMENUOUT2  ENDMENUOUT2
     }      }
       if ($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) { 
    $r->print(<<ENDMENUOUT6);
     <input type="radio" name="choice" value="All class print">  Print assignment for students in class<br />
   ENDMENUOUT6
       }
       my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});        my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
       $subdirtoprint =~ s/\/[^\/]+$//;        $subdirtoprint =~ s/\/[^\/]+$//;
       if (&Apache::lonnet::allowed('bre',$subdirtoprint) eq 'F') {        if (&Apache::lonnet::allowed('bre',$subdirtoprint) eq 'F') {
Line 114  ENDMENUOUT4 Line 120  ENDMENUOUT4
 </table>  </table>
 </br>   </br> 
 <input type="submit" value="Submit your choice">  <input type="submit" value="Submit your choice">
 </form>  
 </body>  
 </html>  
 ENDMENUOUT5  ENDMENUOUT5
 }  }
   
   
   sub additional_class_menu {
       my $r = shift;
       $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 students which assignments you want to print</h1>
   ENDMENUOUT1
       my $c = $r->connection;    
       my %cache;
       my $courseID=$ENV{'request.course.id'};
       my $classlist=&Apache::loncoursedata::DownloadClasslist($courseID,
                                                   $cache{'ClasslistTimestamp'},
                                                   $c);
       foreach (keys(%$classlist)) {
           if(/^(con_lost|error|no_such_host)/i) {
               untie(%cache);
               return "Error getting student data.";
           }
       }
       my $classlistaa = '';
       foreach my $st (keys(%$classlist)) {
    $classlistaa .= ' SSS '.$st.' => '.$$classlist{$st}.' FFF '."\r\n";
       }
   
       $r->print(<<ENDMENUOUT2);
       $classlistaa <br />
   <input type="hidden" name="phase" value="three">
   <input type="submit" value="Submit">
   ENDMENUOUT2
   }
   
   
   sub additional_print_menu { 
       my $r = shift;
       $r->print(<<ENDMENUOUT);
   <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'}">
   Enter width of the page: <input type="text" name="width" width="10" value="9cm"> <br />
   <input type="hidden" name="phase" value="four">
   <input type="submit" value="Submit">
   </form>
   </body>
   </html>
   ENDMENUOUT
   }
   
   
 sub output_data {  sub output_data {
Line 242  ENDPART Line 294  ENDPART
  if ($file_seq[-1]=~m/REMOVE IT PLEASE/) {   if ($file_seq[-1]=~m/REMOVE IT PLEASE/) {
     pop @file_seq;      pop @file_seq;
  }   }
 #-- produce an output string          #-- produce an output string
  for (my $i=0;$i<=$#file_seq;$i++) {   for (my $i=0;$i<=$#file_seq;$i++) {
             my $urlp = $file_seq[$i];              my $urlp = $file_seq[$i];
     $urlp=~s/\/home\/httpd\/html//;          $urlp=~s/\/home\/httpd\/html//;    
Line 256  ENDPART Line 308  ENDPART
     }      }
  }       }    
  $result = &additional_cleanup($result);   $result = &additional_cleanup($result);
       } elsif ($choice eq 'All class print') { 
   
   
   
     } elsif ($choice eq 'Subdirectory print') {            } elsif ($choice eq 'Subdirectory print') {      
  my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});   my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
  $subdirtoprint =~ s/\/[^\/]+$//;   $subdirtoprint =~ s/\/[^\/]+$//;
Line 317  ENDPART Line 373  ENDPART
         $result =~ s/(\\end{longtable}\s*)\\newline/$1/g;          $result =~ s/(\\end{longtable}\s*)\\newline/$1/g;
  $result =~ s/\$number_of_columns/$number_of_columns/g;   $result =~ s/\$number_of_columns/$number_of_columns/g;
     }      }
       #changes page's parameters for the one column output 
       if ($ENV{'form.numberofcolumns'} == 1) {
    $result =~ s/\\textwidth= 9cm/\\textwidth= $ENV{'form.width'}/;
       }
 #-- LaTeX corrections       #-- LaTeX corrections     
     my $first_comment = index($result,'<!--',0);      my $first_comment = index($result,'<!--',0);
     while ($first_comment != -1) {      while ($first_comment != -1) {
Line 325  ENDPART Line 385  ENDPART
  $first_comment = index($result,'<!--',$first_comment);   $first_comment = index($result,'<!--',$first_comment);
     }      }
     $result =~ s/^\s+$//gm; #remove empty lines      $result =~ s/^\s+$//gm; #remove empty lines
     $result =~ s/\s%/\\%/g;   #corrects %  
     $result =~ s/(\s)+/$1/g; #removes more than one empty space      $result =~ s/(\s)+/$1/g; #removes more than one empty space
     $result =~ s/\\\\\s*\\vskip/\\vskip/gm;      $result =~ s/\\\\\s*\\vskip/\\vskip/gm;
     $result =~ s/\\\\\s*\\noindent\s*(\\\\)+/\\\\\\noindent /g;      $result =~ s/\\\\\s*\\noindent\s*(\\\\)+/\\\\\\noindent /g;
Line 779  sub handler { Line 838  sub handler {
     unless  ($ENV{'form.phase'}) {      unless  ($ENV{'form.phase'}) {
  &menu_for_output($r);   &menu_for_output($r);
     }      }
   #-- additional menu for class printing
        if ($ENV{'form.phase'} eq 'two') {
    if($ENV{'form.choice'} eq 'All class print') {
        &additional_class_menu($r);
    } else {
        $ENV{'form.phase'} = 'three';
    }
        }
   #-- additional menu for page layout (one column case)
       if ($ENV{'form.phase'} eq 'three') {
    if($ENV{'form.numberofcolumns'} == 1) {
       &additional_print_menu($r);
    } else {
       $ENV{'form.phase'} = 'four';
    }
       }
 #-- core part   #-- core part 
     if ($ENV{'form.phase'} eq 'two') {      if ($ENV{'form.phase'} eq 'four') {
  &output_data($r);   &output_data($r);
     }      }
     return OK;      return OK;

Removed from v.1.51  
changed lines
  Added in v.1.52


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