--- loncom/interface/lonfeedback.pm 2002/10/28 23:28:52 1.37 +++ loncom/interface/lonfeedback.pm 2003/02/18 15:47:40 1.41 @@ -1,7 +1,7 @@ # The LearningOnline Network # Feedback # -# $Id: lonfeedback.pm,v 1.37 2002/10/28 23:28:52 albertel Exp $ +# $Id: lonfeedback.pm,v 1.41 2003/02/18 15:47:40 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -226,9 +226,10 @@ sub resource_output { } sub clear_out_html { - my $message=$ENV{'form.comment'}; + my ($message,$override)=@_; my $cid=$ENV{'request.course.id'}; - if ($ENV{"course.$cid.allow_limited_html_in_feedback"} =~ m/yes/i) { + if (($ENV{"course.$cid.allow_limited_html_in_feedback"} =~ m/yes/i) || + ($override)) { # allows
','0','0');
+ } elsif ($ENV{'form.deldisc'}) {
+# --------------------------------------------------------------- Hide for good
+ $r->content_type('text/html');
+ $r->send_http_header;
+
+ my $entry=$ENV{'form.deldisc'};
+
+ my ($symb,$idx)=split(/\:\:\:/,$entry);
+ my ($map,$ind,$url)=split(/\_\_\_/,$symb);
+
+ my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+
+
+ my $currentdeleted=$contrib{'deleted'};
+
+ $currentdeleted.='.'.$idx.'.';
+
+ my %newhash=('deleted' => $currentdeleted);
+
+ &Apache::lonnet::store(\%newhash,$symb,$ENV{'request.course.id'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+
+ &redirect_back($r,&Apache::lonnet::clutter($url),
+ 'Changed discussion status ','0','0');
} elsif ($ENV{'form.preview'}) {
# -------------------------------------------------------- User wants a preview
&show_preview($r);
@@ -522,13 +552,18 @@ sub handler {
# Get output from resource
my $usersaw=&resource_output($feedurl);
+# Get resource answer
+ my $useranswer=&Apache::loncommon::get_student_answers(
+ $symb,$ENV{'user.name'},$ENV{'user.domain'},
+ $ENV{'request.course.id'});
+
# Filter HTML out of message (could be nasty)
- my $message=&clear_out_html;
+ my $message=&clear_out_html($ENV{'form.comment'});
# Assemble email
my ($email,$citations)=&assemble_email($feedurl,$message,$prevattempts,
- $usersaw);
-
+ $usersaw,$useranswer);
+
# Who gets this?
my ($typestyle,%to) = &decide_receiver($feedurl);
#
my %html=(B=>1, I=>1, P=>1, A=>1, LI=>1, OL=>1, UL=>1, EM=>1,
@@ -247,7 +248,7 @@ sub clear_out_html {
}
sub assemble_email {
- my ($feedurl,$message,$prevattempts,$usersaw)=@_;
+ my ($feedurl,$message,$prevattempts,$usersaw,$useranswer)=@_;
my $email=<<"ENDEMAIL";
Refers to $feedurl
@@ -259,6 +260,8 @@ $prevattempts
Original screen output (if applicable)
$usersaw
+Correct Answer(s) (if applicable)
+$useranswer
ENDCITE
return ($email,$citations);
}
@@ -339,7 +342,7 @@ sub send_msg {
if ($_) {
my $declutter=&Apache::lonnet::declutter($feedurl);
unless (&Apache::lonmsg::user_normal_msg(split(/\:/,$_),
- 'Feedback ['.$declutter.']',$email,$citations)=~/ok/) {
+ 'Feedback ['.$declutter.']',$email,$citations,$feedurl)=~/ok/) {
$status.='
Error sending message to '.$_.'
';
} else {
$sendsomething++;
@@ -435,7 +438,7 @@ sub handler {
# --------------------------- Get query string for limited number of parameters
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['hide','unhide','postdata','preview']);
+ ['hide','unhide','deldisc','postdata','preview']);
if (($ENV{'form.hide'}) || ($ENV{'form.unhide'})) {
# ----------------------------------------------------------------- Hide/unhide
@@ -467,6 +470,33 @@ sub handler {
&redirect_back($r,&Apache::lonnet::clutter($url),
'Changed discussion status