Diff for /loncom/interface/lonprintout.pm between versions 1.119 and 1.122

version 1.119, 2003/02/20 22:11:42 version 1.122, 2003/02/27 21:01:09
Line 202  sub sequence_content_menu { Line 202  sub sequence_content_menu {
         }          }
     }      }
 </script>  </script>
 <b>DDD=$#titles_master_seq</b> $titles_master_seq[0]<br />  <b>
 <input type=button onClick="checkall()" value="Check All">&nbsp;  <input type=button onClick="checkall()" value="Check All">&nbsp;
 <input type=button onClick="uncheckall()" value="Uncheck">&nbsp;  <input type=button onClick="uncheckall()" value="Uncheck">&nbsp;
 <input type="submit" value="Submit">  <input type="submit" value="Submit">
Line 1218  sub handler { Line 1218  sub handler {
     my $r = shift;      my $r = shift;
   
     # A hook for me to work without disturbing Alex.      # A hook for me to work without disturbing Alex.
     if ($ENV{'form.jeremy'}) {      if (!$ENV{'form.jeremy'}) {
         printWizard($r);          printWizard($r);
         return OK;          return OK;
     }      }
Line 1312  sub printWizard { Line 1312  sub printWizard {
     # PRINT_TYPE: What the user wants to print (current docs,      # PRINT_TYPE: What the user wants to print (current docs,
     #  whole sequence, etc.      #  whole sequence, etc.
     $wizard->declareVars(['PRINT_TYPE', 'FORMAT', 'postdata', 'url',      $wizard->declareVars(['PRINT_TYPE', 'FORMAT', 'postdata', 'url',
                           'symb', 'RESOURCES', 'FILES']);                            'symb', 'RESOURCES', 'FILES', 'STUDENTS']);
   
     # Extract map      # Extract map
     my $symb = $wizard->{VARS}->{'symb'};      my $symb = $wizard->{VARS}->{'symb'};
Line 1330  sub printWizard { Line 1330  sub printWizard {
         return $name =~ m/^[^\.]+\.(problem|exam|quiz|assess|survey|form|library)$/;          return $name =~ m/^[^\.]+\.(problem|exam|quiz|assess|survey|form|library)$/;
     };      };
   
     Apache::lonwizard::switch_state->new($wizard, "START", "Selecting Resources to Print", "PRINT_TYPE", [      # What can be printed is a very dynamic decision based on
            ['current_document', "<b>$resourceTitle</b> (exactly what was on the screen)", 'CHOOSE_FORMAT'],      # lots of factors. So we need to dynamically build this list.
            ['map_problems', "Problems from <b>$sequenceTitle</b>", 'CHOOSE_PROBLEMS'],      # To prevent security leaks, states are only added to the wizard
            ['map_problems_pages', "Problems and pages from <b>$sequenceTitle</b>", 'CHOOSE_PROBLEMS_HTML'],      # if they can be reached, which ensures manipulating the querystring
            ['problems_for_students', "Problems from <b>$sequenceTitle</b> for selected students", 'CHOOSE_FORMAT'],      # won't allow anyone to reach states they shouldn't have permission
            ['problems_from_directory', "Problems from <b>$subdir</b>", 'CHOOSE_FROM_SUBDIR'] ],      # to reach.
            "What do you want to print?");      my $printChoices = []; 
     Apache::lonwizard::resource_multichoice->new($wizard, "CHOOSE_PROBLEMS", 'Select Problems', "Select problems to print from <b>$sequenceTitle</b>:", '', 'CHOOSE_FORMAT', 'RESOURCES', sub {my $res = shift; return $res->is_problem()}, undef, $map);      # We can always print the current screen.
     Apache::lonwizard::resource_multichoice->new($wizard, "CHOOSE_PROBLEMS_HTML", 'Select Resources', "Select resources to print from <b>$sequenceTitle</b>:", '', "CHOOSE_FORMAT", 'RESOURCES', sub {my $res = shift; return !$res->is_map()}, undef, $map);      push @{$printChoices}, ['current_document', "<b>$resourceTitle</b> (exactly what was on the screen)", 'CHOOSE_FORMAT'];
     Apache::lonwizard::choose_files->new($wizard, "CHOOSE_FROM_SUBDIR", "Select Files","Select problems you wish to print from <b>$subdir</b>:", '', 'CHOOSE_FORMAT', 'FILES', $subdir, $problemFilter);  
     Apache::lonprintout::page_format_state->new($wizard, "CHOOSE_FORMAT", "Page Format", "FORMAT", "FINAL");      if ($ENV{'form.postdata'}=~ /\/res\//) {
           # Allow problems from sequence
           push @{$printChoices}, ['map_problems', "Problems from <b>$sequenceTitle</b>", 'CHOOSE_PROBLEMS'];
           Apache::lonwizard::resource_multichoice->new($wizard, "CHOOSE_PROBLEMS", 'Select Problems', "Select problems to print from <b>$sequenceTitle</b>:", '', 'CHOOSE_FORMAT', 'RESOURCES', sub {my $res = shift; return $res->is_problem()}, undef, $map);
   
           # Allow all resources from sequence
           push @{$printChoices}, ['map_problems_pages', "Problems and pages from <b>$sequenceTitle</b>", 'CHOOSE_PROBLEMS_HTML'];
           Apache::lonwizard::resource_multichoice->new($wizard, "CHOOSE_PROBLEMS_HTML", 'Select Resources', "Select resources to print from <b>$sequenceTitle</b>:", '', "CHOOSE_FORMAT", 'RESOURCES', sub {my $res = shift; return !$res->is_map()}, undef, $map);
       }
   
       # If the user is priviledged, allow them to print all 
       # problems in the course, optionally for selected students
       if (($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) and ($ENV{'form.postdata'}=~/\/res\//)) { 
           push @{$printChoices}, ['all_problems', '<b>All problems</b> in course (may take a lot of time)', 'CHOOSE_FORMAT'];
           push @{$printChoices}, ['problems_for_students', "Problems from <b>$sequenceTitle</b> for selected students", 'CHOOSE_STUDENTS'];
           Apache::lonwizard::choose_student->new($wizard, "CHOOSE_STUDENTS", "Choose Students", "Select the students you wish to print the problems for:", 'CHOOSE_FORMAT', 'STUDENTS', 1);
       }
   
       # FIXME: That RE should come from a library somewhere.
       if ((&Apache::lonnet::allowed('bre',$subdir) eq 'F') and ($ENV{'form.postdata'}=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)/)) {    
           push @{$printChoices}, ['problems_from_directory', "Problems from <b>$subdir</b>", 'CHOOSE_FROM_SUBDIR'];
           Apache::lonwizard::choose_files->new($wizard, "CHOOSE_FROM_SUBDIR", "Select Files","Select problems you wish to print from <b>$subdir</b>:", '', 'CHOOSE_FORMAT', 'FILES', $subdir, $problemFilter);
       }
   
       # Despite the appearance of states before here, this is the first state.
       Apache::lonwizard::switch_state->new($wizard, "START", "Selecting Resources to Print", "PRINT_TYPE", $printChoices, "What do you want to print?");
       Apache::lonprintout::page_format_state->new($wizard, "CHOOSE_FORMAT", "Page Format", "FORMAT");
   
     $r->print($wizard->display());      $r->print($wizard->display());
   
Line 1396  sub new { Line 1422  sub new {
     return $self;      return $self;
 }  }
   
 sub postprocess {  
     my $self = shift;  
     my $wizard = $self->{WIZARD};  
   
     # We have to manually collect the value and store it in the   
     # wizard variable  
     my $result = $ENV{'form.' . $self->{VAR_NAME} . '.layout'} . '|';  
     $result .= $ENV{'form.' . $self->{VAR_NAME} . '.cols'} . '|';  
     $result .= $ENV{'form.' . $self->{VAR_NAME} . '.paper'};  
       
     $wizard->setVar($self->{VAR_NAME}, $result);  
     $wizard->changeState($self->{NEXT_STATE});  
 }  
   
 sub render {  sub render {
     my $self = shift;      my $self = shift;
     my $wizard = $self->{WIZARD};      my $wizard = $self->{WIZARD};
Line 1463  STATEHTML Line 1475  STATEHTML
     }      }
   
     $result .= "</select></td></tr></table>";      $result .= "</select></td></tr></table>";
       $result .= '<input type="hidden" name="printWizDone" value="1" />';
     return $result;      return $result;
 }  }
   
 1;  1;
   
 package Apache::lonprintout::printwizfinal;  
   
 # This is the final state for the print wizard. It is not generally useful,  
 # so it is not perldoc'ed.  
   
 no strict;  
 @ISA = ('Apache::lonwizard::state');  
 use strict;  
   
 sub new {  
     my $proto = shift;  
     my $class = ref($proto) || $proto;  
     my $self = bless $proto->SUPER::new(shift, shift, shift);  
   
     # All other variables come from the wizard.  
 }  
   
 sub render {  
     my $self = shift;  
     my $wizard = $self->{WIZARD};  
     my $wizvars = $wizard->{VARS};  
   
     my $result = '';  
   
     $result .= "<form method='get' action='/adm/printout'>\n";  
   
     # Nope, I'm lost.  
     $result .= "</form>";  
 }  
   
 1;  
   
 __END__  __END__
   

Removed from v.1.119  
changed lines
  Added in v.1.122


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.