--- loncom/interface/lonfeedback.pm 2001/12/19 17:17:46 1.19
+++ 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.19 2001/12/19 17:17:46 albertel 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 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;
@@ -195,14 +197,17 @@ sub screen_header {
'
'.
'Question/Comment/Feedback about course policy';
}
+
if ($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';
- }
- if ($ENV{'request.course.id'}) {
$options.='
'.
'Anonymous contribution to course discussion of resource'.
' (name only visible to course faculty)';
+ }
}
return $options;
}
@@ -255,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);
}
@@ -281,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;
@@ -309,6 +318,9 @@ sub send_msg {
sub adddiscuss {
my ($symb,$email,$anon)=@_;
my $status='';
+ 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'},
'senderdomain' => $ENV{'user.domain'});
@@ -320,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;
@@ -327,7 +344,11 @@ 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.';
}
return $status.'
';
}
@@ -342,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