Log Message:
-----------
added feedbackHelper to consolidate generation of feedback form.
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.148
retrieving revision 1.149
diff -Llib/WeBWorK/ContentGenerator.pm -Llib/WeBWorK/ContentGenerator.pm -u -r1.148 -r1.149
--- lib/WeBWorK/ContentGenerator.pm
+++ lib/WeBWorK/ContentGenerator.pm
@@ -1381,6 +1381,42 @@
return $result;
}
+=item feedbackMacro(%params)
+
+Helper macro for displaying the feedback form. Returns a button named "Email
+Instructor". %params contains the request parameters accepted by the Feedback
+module and their values.
+
+=cut
+
+sub feedbackMacro {
+ my ($self, %params) = @_;
+ my $r = $self->r;
+ my $userID = $r->param("user");
+ my $authz = $r->authz;
+ my $urlpath = $r->urlpath;
+ my $courseID = $urlpath->arg("courseID");
+
+ # don't do anything unless the user has permission to
+ return "" unless $authz->hasPermissions($userID, "submit_feedback");
+
+ # feedback form url
+ my $feedbackPage = $urlpath->newFromModule("WeBWorK::ContentGenerator::Feedback", courseID => $courseID);
+ my $feedbackURL = $self->systemLink($feedbackPage, authen => 0); # no authen info for form action
+
+ my $result = CGI::start_form(-method=>"POST", -action=>$feedbackURL) . "\n";
+ $result .= $self->hidden_authen_fields . "\n";
+
+ while (my ($key, $value) = each %params) {
+ $result .= CGI::hidden($key, $value) . "\n";
+ }
+
+ $result .= CGI::p({-align=>"left"}, CGI::submit(-name=>"feedbackForm", -label=>"Email instructor"));
+ $result .= CGI::endform() . "\n";
+
+ return $result;
+}
+
=back
=cut
|