| … | |
… | |
| 362 | } else { |
362 | } else { |
| 363 | warn "Didn't recognize button $action"; |
363 | warn "Didn't recognize button $action"; |
| 364 | } |
364 | } |
| 365 | |
365 | |
| 366 | |
366 | |
| 367 | |
|
|
| 368 | } #end initialize |
367 | } #end initialize |
| 369 | |
368 | |
| 370 | |
369 | |
| 371 | |
370 | |
| 372 | |
371 | |
| … | |
… | |
| 375 | my ($self) = @_; |
374 | my ($self) = @_; |
| 376 | my $r = $self->r; |
375 | my $r = $self->r; |
| 377 | my $urlpath = $r->urlpath; |
376 | my $urlpath = $r->urlpath; |
| 378 | my $setID = $urlpath->arg("setID"); |
377 | my $setID = $urlpath->arg("setID"); |
| 379 | my $response = (defined($self->{response}))? $self->{response} : ''; |
378 | my $response = (defined($self->{response}))? $self->{response} : ''; |
|
|
379 | |
| 380 | if ($response eq 'preview') { |
380 | if ($response eq 'preview') { |
| 381 | $self->print_preview($setID); |
381 | $self->print_preview($setID); |
| 382 | } elsif (($response eq 'send_email')){ |
382 | } elsif (($response eq 'send_email')){ |
| 383 | $self->{message} .= CGI::h3("Email sent to "). join(" ", @{$self->{ra_send_to}}); |
383 | $self->{message} .= CGI::i("Email sent to ". scalar(@{$self->{ra_send_to}})." students."); |
| 384 | $self->print_form($setID); |
384 | $self->print_form($setID); |
| 385 | } else { |
385 | } else { |
| 386 | $self->print_form($setID); |
386 | $self->print_form($setID); |
| 387 | } |
387 | } |
| 388 | |
388 | |
| … | |
… | |
| 403 | my $rh_merge_data = $self->read_scoring_file("$merge_file", "$delimiter"); |
403 | my $rh_merge_data = $self->read_scoring_file("$merge_file", "$delimiter"); |
| 404 | |
404 | |
| 405 | my ($msg, $preview_header) = $self->process_message($ur,$rh_merge_data); |
405 | my ($msg, $preview_header) = $self->process_message($ur,$rh_merge_data); |
| 406 | |
406 | |
| 407 | my $recipients = join(" ",@{$self->{ra_send_to} }); |
407 | my $recipients = join(" ",@{$self->{ra_send_to} }); |
| 408 | my $errorMessage = defined($self->{submitError}) ? CGI::h3($self->{submitError} ) : '' ; |
408 | my $errorMessage = defined($self->{submitError}) ? CGI::div({class=>'ResultsWithError'},$self->{submitError} ) : '' ; |
|
|
409 | $self->addmessage($errorMessage) if $errorMessage; |
| 409 | $msg = join("", |
410 | $msg = join("", |
| 410 | $errorMessage, |
411 | $errorMessage, |
| 411 | $preview_header, |
412 | $preview_header, |
| 412 | "To: " , $ur->email_address,"\n", |
413 | "To: " , $ur->email_address,"\n", |
| 413 | "From: " , $self->{from} , "\n" , |
414 | "From: " , $self->{from} , "\n" , |
| … | |
… | |
| 736 | |
737 | |
| 737 | # get record from merge file |
738 | # get record from merge file |
| 738 | # FIXME this is inefficient. The info should be cached |
739 | # FIXME this is inefficient. The info should be cached |
| 739 | my @COL = defined($rh_merge_data->{$SID}) ? @{$rh_merge_data->{$SID} } : (); |
740 | my @COL = defined($rh_merge_data->{$SID}) ? @{$rh_merge_data->{$SID} } : (); |
| 740 | if ($merge_file ne 'None' && not defined($rh_merge_data->{$SID}) ) { |
741 | if ($merge_file ne 'None' && not defined($rh_merge_data->{$SID}) ) { |
| 741 | $self->submission_error( "No merge data for $SID $FN $LN $LOGIN"); |
742 | $self->submission_error( "No merge data for student id:$SID; name:$FN $LN; login:$LOGIN"); |
| 742 | } |
743 | } |
| 743 | |
744 | |
| 744 | my $endCol = @COL; |
745 | my $endCol = @COL; |
| 745 | # for safety, only evaluate special variables |
746 | # for safety, only evaluate special variables |
| 746 | my $msg = $text; |
747 | my $msg = $text; |