From: Sam H. v. a. <we...@ma...> - 2005-09-16 18:48:47
|
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 |