[system] / branches / rel-2-0-pr1-hardcopy-changes / webwork-modperl / lib / WeBWorK / ContentGenerator / Hardcopy.pm Repository:
ViewVC logotype

Diff of /branches/rel-2-0-pr1-hardcopy-changes/webwork-modperl/lib/WeBWorK/ContentGenerator/Hardcopy.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 733 Revision 735
26sub go { 26sub go {
27 my ($self, $singleSet) = @_; 27 my ($self, $singleSet) = @_;
28 28
29 my $r = $self->{r}; 29 my $r = $self->{r};
30 my $ce = $self->{courseEnvironment}; 30 my $ce = $self->{courseEnvironment};
31 my @sets = $r->param("set"); 31 my @sets = $r->param("hcSet");
32 my @users = $r->param("user"); 32 my @users = $r->param("hcUser");
33 33
34 # add singleSet to the list of sets 34 # add singleSet to the list of sets
35 if (length $singleSet > 0) { 35 if (length $singleSet > 0) {
36 $singleSet =~ s/^set//; 36 $singleSet =~ s/^set//;
37 unshift @sets, $singleSet; 37 unshift @sets, $singleSet unless grep { $_ eq $singleSet } @sets;
38 } 38 }
39 39
40 # default user is the effectiveUser 40 # default user is the effectiveUser
41 unless (@users) { 41 unless (@users) {
42 unshift @users, $r->param("effectiveUser"); 42 unshift @users, $r->param("effectiveUser");
52 $self->{users} = \@users; 52 $self->{users} = \@users;
53 $self->{errors} = []; 53 $self->{errors} = [];
54 $self->{warnings} = []; 54 $self->{warnings} = [];
55 55
56 if ($r->param("generateHardcopy")) { 56 if ($r->param("generateHardcopy")) {
57 my $filePath = eval { $self->generateHardcopy() }; 57 my ($tempDir, $fileName) = eval { $self->generateHardcopy() };
58 if ($@) { 58 if ($@) {
59 $self->{generationError} = $@; 59 $self->{generationError} = $@;
60 } else { 60 } else {
61 my ($fileName) = $filePath =~ m/([^\/]*)$/; 61 my $filePath = "$tempDir/$fileName";
62 62
63 $r->content_type("application/x-pdf"); 63 $r->content_type("application/x-pdf");
64 # as per RFC2183: 64 # as per RFC2183:
65 $r->header_out("Content-Disposition", "attachment; filename=$fileName"); 65 $r->header_out("Content-Disposition", "attachment; filename=$fileName");
66 $r->send_http_header(); 66 $r->send_http_header();
237 return ""; 237 return "";
238} 238}
239 239
240sub generateHardcopy($) { 240sub generateHardcopy($) {
241 my $self = shift; 241 my $self = shift;
242 my @sets = @{$self->{hcSets}}; 242 my @sets = @{$self->{sets}};
243 my @users = @{$self->{hcUsers}}; 243 my @users = @{$self->{users}};
244 my $multiSet = $self->{permissionLevel} > 0; 244 my $multiSet = $self->{permissionLevel} > 0;
245 my $multiUser = $self->{permissionLevel} > 0; 245 my $multiUser = $self->{permissionLevel} > 0;
246
247 # sanity checks 246 # sanity checks
248 unless (@sets) { 247 unless (@sets) {
249 die ["RETRY", "No sets were specified."]; 248 die ["RETRY", "No sets were specified."];
250 } 249 }
251 unless (@users) { 250 unless (@users) {
276 # determine name of PDF file 275 # determine name of PDF file
277 my $courseName = $self->{courseEnvironment}->{courseName}; 276 my $courseName = $self->{courseEnvironment}->{courseName};
278 my $fileNameSet = (@sets > 1 ? "multiset" : $sets[0]); 277 my $fileNameSet = (@sets > 1 ? "multiset" : $sets[0]);
279 my $fileNameUser = (@users > 1 ? "multiuser" : $users[0]); 278 my $fileNameUser = (@users > 1 ? "multiuser" : $users[0]);
280 my $fileName = "$courseName.$fileNameUser.$fileNameSet.pdf"; 279 my $fileName = "$courseName.$fileNameUser.$fileNameSet.pdf";
281 280
282 # for each user ... generate TeX for each set 281 # for each user ... generate TeX for each set
283 my $tex; 282 my $tex;
284 foreach my $user (@users) { 283 foreach my $user (@users) {
285 $tex .= getMultiSetTeX(@sets); 284 $tex .= $self->getMultiSetTeX(@sets);
286 } 285 }
287 286
288 # deal with PG errors 287 # deal with PG errors
289 if (@{$self->{errors}}) { 288 if (@{$self->{errors}}) {
290 die ["PGFAIL"]; 289 die ["PGFAIL"];
293 # "try" to generate pdf 292 # "try" to generate pdf
294 eval { $self->latex2pdf($tex, $tempDir, $fileName) }; 293 eval { $self->latex2pdf($tex, $tempDir, $fileName) };
295 if ($@) { 294 if ($@) {
296 die ["FAIL", "Failed to generate PDF from tex", $@]; 295 die ["FAIL", "Failed to generate PDF from tex", $@];
297 } 296 }
297
298 return $tempDir, $fileName;
298} 299}
299 300
300# ----- 301# -----
301 302
302sub latex2pdf { 303sub latex2pdf {

Legend:
Removed from v.733  
changed lines
  Added in v.735

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9