--- loncom/interface/lonfeedback.pm 2001/12/19 17:17:46 1.19
+++ loncom/interface/lonfeedback.pm 2002/05/29 18:26:22 1.27
@@ -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.27 2002/05/29 18:26:22 stredwic 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,9 +318,17 @@ 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'});
+ 'senderdomain' => $ENV{'user.domain'},
+ 'screenname' => $ENV{'environment.screenname'},
+ 'plainname' => $ENV{'environment.firstname'}.' '.
+ $ENV{'environment.middlename'}.' '.
+ $ENV{'environment.lastname'}.' '.
+ $ENV{'enrironment.generation'});
if ($anon) {
$contrib{'anonymous'}='true';
}
@@ -320,6 +337,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 +349,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 +368,8 @@ sub handler {
# --------------------------- Get query string for limited number of parameters
- map {
- 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')) {
- unless ($ENV{'form.'.$name}) {
- $ENV{'form.'.$name}=$value;
- }
- }
- } (split(/&/,$ENV{'QUERY_STRING'}));
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+ ['hide','unhide','postdata']);
if (($ENV{'form.hide'}) || ($ENV{'form.unhide'})) {
# ----------------------------------------------------------------- Hide/unhide