| … | |
… | |
| 27 | use warnings; |
27 | use warnings; |
| 28 | use CGI qw(); |
28 | use CGI qw(); |
| 29 | #use HTML::Entities; |
29 | #use HTML::Entities; |
| 30 | use Mail::Sender; |
30 | use Mail::Sender; |
| 31 | |
31 | |
| 32 | my $REFRESH_RESIZE_BUTTON = "Reorder, Resize and Update"; # handle submit value idiocy |
32 | my $REFRESH_RESIZE_BUTTON = "Set preview to: "; # handle submit value idiocy |
| 33 | sub initialize { |
33 | sub initialize { |
| 34 | my ($self) = @_; |
34 | my ($self) = @_; |
| 35 | my $r = $self->r; |
35 | my $r = $self->r; |
| 36 | my $db = $r->db; |
36 | my $db = $r->db; |
| 37 | my $ce = $r->ce; |
37 | my $ce = $r->ce; |
| … | |
… | |
| 303 | $self->saveProblem($temp_body, "${emailDirectory}/$output_file" ); |
303 | $self->saveProblem($temp_body, "${emailDirectory}/$output_file" ); |
| 304 | unless ( $self->{submitError} or not -w "${emailDirectory}/$output_file" ) { # if there are no errors report success |
304 | unless ( $self->{submitError} or not -w "${emailDirectory}/$output_file" ) { # if there are no errors report success |
| 305 | $self->{message} .= "Message saved to file <code>${emailDirectory}/$output_file</code>."; |
305 | $self->{message} .= "Message saved to file <code>${emailDirectory}/$output_file</code>."; |
| 306 | } |
306 | } |
| 307 | |
307 | |
| 308 | } elsif ($action eq 'Preview') { |
308 | } elsif ($action eq 'Preview message') { |
| 309 | $self->{response} = 'preview'; |
309 | $self->{response} = 'preview'; |
| 310 | |
310 | |
| 311 | } elsif ($action eq 'Send Email') { |
311 | } elsif ($action eq 'Send Email') { |
| 312 | $self->{response} = 'send_email'; |
312 | $self->{response} = 'send_email'; |
| 313 | |
313 | |
| … | |
… | |
| 438 | |
438 | |
| 439 | my $root = $ce->{webworkURLs}->{root}; |
439 | my $root = $ce->{webworkURLs}->{root}; |
| 440 | my $sendMailPage = $urlpath->newFromModule($urlpath->module,courseID=>$courseName); |
440 | my $sendMailPage = $urlpath->newFromModule($urlpath->module,courseID=>$courseName); |
| 441 | my $sendMailURL = $self->systemLink($sendMailPage, authen => 0); |
441 | my $sendMailURL = $self->systemLink($sendMailPage, authen => 0); |
| 442 | |
442 | |
| 443 | return CGI::em("You are not authorized to access the Instructor tools.") unless $authz->hasPermissions($user, "access_instructor_tools"); |
443 | return CGI::em("You are not authorized to access the Instructor tools.") unless $authz->hasPermissions($user, "access_instructor_tools"); |
| 444 | |
444 | |
| 445 | my $userTemplate = $db->newUser; |
445 | my $userTemplate = $db->newUser; |
| 446 | my $permissionLevelTemplate = $db->newPermissionLevel; |
446 | my $permissionLevelTemplate = $db->newPermissionLevel; |
| 447 | |
447 | |
| 448 | # This code will require changing if the permission and user tables ever have different keys. |
448 | # This code will require changing if the permission and user tables ever have different keys. |
| … | |
… | |
| 539 | "<b>Merge file:</b> $merge_file", CGI::br(), |
539 | "<b>Merge file:</b> $merge_file", CGI::br(), |
| 540 | CGI::submit(-name=>'action', -value=>'Set merge file to:'),CGI::br(), |
540 | CGI::submit(-name=>'action', -value=>'Set merge file to:'),CGI::br(), |
| 541 | CGI::popup_menu(-name=>'merge_file', |
541 | CGI::popup_menu(-name=>'merge_file', |
| 542 | -values=>\@sorted_merge_files, |
542 | -values=>\@sorted_merge_files, |
| 543 | -default=>$merge_file, |
543 | -default=>$merge_file, |
| 544 | ), "\n",CGI::hr(),CGI::br(), |
544 | ), "\n",CGI::hr(), |
| 545 | CGI::submit(-name=>'action', -value=>'preview',-label=>'Preview')," email to ", |
545 | CGI::b("Viewing email for: "), "$preview_user",CGI::br(), |
|
|
546 | CGI::submit(-name=>'action', -value=>'resize', -label=>$REFRESH_RESIZE_BUTTON),' ', |
| 546 | CGI::popup_menu(-name=>'preview_user', |
547 | CGI::popup_menu(-name=>'preview_user', |
| 547 | -values=>\@users, |
548 | -values=>\@users, |
| 548 | #-labels=>\%classlistLabels, |
549 | #-labels=>\%classlistLabels, |
| 549 | -default=>$preview_user, |
550 | -default=>$preview_user, |
| 550 | ), |
551 | ), |
|
|
552 | CGI::br(), |
|
|
553 | CGI::submit(-name=>'action', -value=>'preview',-label=>'Preview message'),' ', |
|
|
554 | |
|
|
555 | CGI::br(), |
|
|
556 | |
| 551 | CGI::hr(), |
557 | CGI::hr(), |
| 552 | CGI::submit(-name=>'action', -value=>'resize', -label=>$REFRESH_RESIZE_BUTTON),CGI::br(), |
|
|
| 553 | " Rows: ", CGI::textfield(-name=>'rows', -size=>3, -value=>$rows), |
558 | " Rows: ", CGI::textfield(-name=>'rows', -size=>3, -value=>$rows), |
| 554 | " Columns: ", CGI::textfield(-name=>'columns', -size=>3, -value=>$columns), |
559 | " Columns: ", CGI::textfield(-name=>'columns', -size=>3, -value=>$columns), |
| 555 | CGI::br(),CGI::br(), |
560 | CGI::br(),CGI::i('Press any action button to update display'),CGI::br(), |
| 556 | #show available macros |
561 | #show available macros |
| 557 | CGI::popup_menu( |
562 | CGI::popup_menu( |
| 558 | -name=>'dummyName', |
563 | -name=>'dummyName', |
| 559 | -values=>['', '$SID', '$FN', '$LN', '$SECTION', '$RECITATION','$STATUS', '$EMAIL', '$LOGIN', '$COL[3]', '$COL[-1]'], |
564 | -values=>['', '$SID', '$FN', '$LN', '$SECTION', '$RECITATION','$STATUS', '$EMAIL', '$LOGIN', '$COL[3]', '$COL[-1]'], |
| 560 | -labels=>{''=>'list of insertable macros', |
565 | -labels=>{''=>'list of insertable macros', |