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";
|