From: Mike G. v. a. <we...@ma...> - 2009-06-04 02:35:34
|
Log Message: ----------- Added a provision allowing "email instructor" button to MathNerds. Modified Files: -------------- webwork2/lib/WeBWorK: ContentGenerator.pm Revision Data ------------- Index: ContentGenerator.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator.pm,v retrieving revision 1.195 retrieving revision 1.196 diff -Llib/WeBWorK/ContentGenerator.pm -Llib/WeBWorK/ContentGenerator.pm -u -r1.195 -r1.196 --- lib/WeBWorK/ContentGenerator.pm +++ lib/WeBWorK/ContentGenerator.pm @@ -51,6 +51,7 @@ use URI::Escape; use WeBWorK::Debug; use WeBWorK::PG; +use MIME::Base64; use WeBWorK::Template qw(template); use mod_perl; @@ -1457,8 +1458,11 @@ return "" unless $authz->hasPermissions($userID, "submit_feedback"); my $feedbackURL = $r->ce->{courseURLs}{feedbackURL}; + my $feedbackFormURL = $r->ce->{courseURLs}{feedbackFormURL}; if (defined $feedbackURL and $feedbackURL ne "") { return $self->feedbackMacro_url($feedbackURL); + } elsif (defined $feedbackFormURL and $feedbackFormURL ne "") { + return $self->feedbackMacro_form($feedbackFormURL,%params); } else { return $self->feedbackMacro_email(%params); } @@ -1480,6 +1484,7 @@ $result .= $self->hidden_authen_fields . "\n"; while (my ($key, $value) = each %params) { + next if $key eq 'pg_object'; # not used in internal feedback mechanism $result .= CGI::hidden($key, $value) . "\n"; } $result .= CGI::p({-align=>"left"}, CGI::submit(-name=>"feedbackForm", -label=>$feedbackName)); @@ -1488,6 +1493,34 @@ return $result; } +sub feedbackMacro_form { + my ($self, $feedbackFormURL, %params) = @_; + my $r = $self->r; + my $ce = $r->ce; + my $urlpath = $r->urlpath; + my $courseID = $urlpath->arg("courseID"); + + # feedback form url + my $feedbackName = $ce->{feedback_button_name} || "Email instructor"; + + my $result = CGI::start_form(-method=>"POST", -action=>$feedbackFormURL,-target=>"WW_info") . "\n"; + $result .= $self->hidden_authen_fields . "\n"; + + while (my ($key, $value) = each %params) { + if ($key eq 'pg_object') { + my $tmp = $value->{body_text}; + $tmp .= CGI::p(CGI::b("Note: "). CGI::i($value->{result}->{msg})) if $value->{result}->{msg} ; + $result .= CGI::hidden($key, encode_base64($tmp, "") ); + } else { + $result .= CGI::hidden($key, $value) . "\n"; + } + } + $result .= CGI::p({-align=>"left"}, CGI::submit(-name=>"feedbackForm", -label=>$feedbackName)); + $result .= CGI::endform() . "\n"; + + return $result; +} + sub feedbackMacro_url { my ($self, $url) = @_; my $feedbackName = $self->r->ce->{feedback_button_name} || "Email instructor"; |