--- loncom/interface/lonfeedback.pm 2001/12/27 18:37:32 1.20
+++ loncom/interface/lonfeedback.pm 2002/03/26 16:15:34 1.25
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Feedback
#
-# $Id: lonfeedback.pm,v 1.20 2001/12/27 18:37:32 www Exp $
+# $Id: lonfeedback.pm,v 1.25 2002/03/26 16:15:34 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -39,8 +39,10 @@
# 2/13 Guy Albertelli
# 7/25 Gerd Kortemeyer
# 7/26 Guy Albertelli
-# 7/26,8/10,10/1,11/5,11/6,12/27 Gerd Kortemeyer
-
+# 7/26,8/10,10/1,11/5,11/6,12/27,12/29 Gerd Kortemeyer
+# YEAR=2002
+# 1/1,1/16 Gerd Kortemeyer
+#
package Apache::lonfeedback;
@@ -197,7 +199,9 @@ sub screen_header {
}
if ($ENV{'request.course.id'}) {
- if (&Apache::lonnet::allowed('pch',$ENV{'request.course.id'})) {
+ if (&Apache::lonnet::allowed('pch',
+ $ENV{'request.course.id'}.
+ ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {
$options.='
'.
'Contribution to course discussion of resource';
$options.='
'.
@@ -256,24 +260,27 @@ sub decide_receiver {
}
if ($ENV{'form.question'}) {
$typestyle.='Submitting as Question
';
- map {
+ foreach (split(/\,/,
+ $ENV{'course.'.$ENV{'request.course.id'}.'.question.email'})
+ ) {
$to{$_}=1;
- } split(/\,/,
- $ENV{'course.'.$ENV{'request.course.id'}.'.question.email'});
+ }
}
if ($ENV{'form.course'}) {
$typestyle.='Submitting as Comment
';
- map {
+ foreach (split(/\,/,
+ $ENV{'course.'.$ENV{'request.course.id'}.'.comment.email'})
+ ) {
$to{$_}=1;
- } split(/\,/,
- $ENV{'course.'.$ENV{'request.course.id'}.'.comment.email'});
+ }
}
if ($ENV{'form.policy'}) {
$typestyle.='Submitting as Policy Feedback
';
- map {
+ foreach (split(/\,/,
+ $ENV{'course.'.$ENV{'request.course.id'}.'.policy.email'})
+ ) {
$to{$_}=1;
- } split(/\,/,
- $ENV{'course.'.$ENV{'request.course.id'}.'.policy.email'});
+ }
}
return ($typestyle,%to);
}
@@ -282,16 +289,17 @@ sub send_msg {
my ($feedurl,$email,$citations,%to)=@_;
my $status='';
my $sendsomething=0;
- map {
+ foreach (keys %to) {
if ($_) {
+ my $declutter=&Apache::lonnet::declutter($feedurl);
unless (&Apache::lonmsg::user_normal_msg(split(/\:/,$_),
- 'Feedback '.$feedurl,$email,$citations) eq 'ok') {
+ 'Feedback ['.$declutter.']',$email,$citations) eq 'ok') {
$status.='
Error sending message to '.$_.'
';
} else {
$sendsomething++;
}
}
- } keys %to;
+ }
my %record=&Apache::lonnet::restore('_feedback');
my ($temp)=keys %record;
@@ -310,7 +318,8 @@ sub send_msg {
sub adddiscuss {
my ($symb,$email,$anon)=@_;
my $status='';
- if (&Apache::lonnet::allowed('pch',$ENV{'request.course.id'})) {
+ if (&Apache::lonnet::allowed('pch',$ENV{'request.course.id'}.
+ ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {
my %contrib=('message' => $email,
'sendername' => $ENV{'user.name'},
@@ -323,6 +332,11 @@ sub adddiscuss {
&Apache::lonnet::store(\%contrib,$symb,$ENV{'request.course.id'},
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
$ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+ my %storenewentry=($symb => time);
+ $status.='
Updating discussion time: '.
+ &Apache::lonnet::put('discussiontimes',\%storenewentry,
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
}
my %record=&Apache::lonnet::restore('_discussion');
my ($temp)=keys %record;
@@ -330,7 +344,8 @@ sub adddiscuss {
my %newrecord=();
$newrecord{'resource'}=$symb;
$newrecord{'subnumber'}=$record{'subnumber'}+1;
- $status.=' '.&Apache::lonnet::cstore(\%newrecord,'_discussion');
+ $status.='
Registering: '.
+ &Apache::lonnet::cstore(\%newrecord,'_discussion');
}
} else {
$status.='Failed.';
@@ -348,16 +363,16 @@ sub handler {
# --------------------------- Get query string for limited number of parameters
- map {
+ foreach (split(/&/,$ENV{'QUERY_STRING'})) {
my ($name, $value) = split(/=/,$_);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
- if (($name eq 'hide') || ($name eq 'unhide')) {
+ if (($name eq 'hide') || ($name eq 'unhide') || ($name eq 'postdata')) {
unless ($ENV{'form.'.$name}) {
$ENV{'form.'.$name}=$value;
}
}
- } (split(/&/,$ENV{'QUERY_STRING'}));
+ }
if (($ENV{'form.hide'}) || ($ENV{'form.unhide'})) {
# ----------------------------------------------------------------- Hide/unhide