--- loncom/interface/lonfeedback.pm 2003/10/15 20:13:31 1.63
+++ loncom/interface/lonfeedback.pm 2003/11/03 23:23:34 1.66
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Feedback
#
-# $Id: lonfeedback.pm,v 1.63 2003/10/15 20:13:31 albertel Exp $
+# $Id: lonfeedback.pm,v 1.66 2003/11/03 23:23:34 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -69,17 +69,13 @@ sub list_discussion {
unless ($symb) { return ''; }
my $seeid=&Apache::lonnet::allowed('rin',$crs);
my $viewgrades=&Apache::lonnet::allowed('vgr',$crs);
- my $discussion='';
+ my %discussionitems=();
my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'},
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
$ENV{'course.'.$ENV{'request.course.id'}.'.num'});
if ($contrib{'version'}) {
- unless ($discussiononly) {
- $discussion.=
- '
';
- }
- my $idx;
- for ($idx=1;$idx<=$contrib{'version'};$idx++) {
+ for (my $id=1;$id<=$contrib{'version'};$id++) {
+ my $idx=$id;
my $hidden=($contrib{'hidden'}=~/\.$idx\./);
my $deleted=($contrib{'deleted'}=~/\.$idx\./);
unless ((($hidden) && (!$seeid)) || ($deleted)) {
@@ -128,6 +124,12 @@ sub list_discussion {
$sender.=' '.&mt('Delete').'';
}
+ if (&Apache::lonnet::allowed('pch',
+ $ENV{'request.course.id'}.
+ ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {
+ $sender.=' '.&mt('Reply').'';
+ }
} else {
if ($screenname) {
$sender=''.$screenname.'';
@@ -138,16 +140,17 @@ sub list_discussion {
$vgrlink=&Apache::loncommon::submlink('Submissions',
$contrib{$idx.':sendername'},$contrib{$idx.':senderdomain'},$symb);
}
- $discussion.=''.$sender.' '.$vgrlink.' ('.
+ $discussionitems{$idx}='
'.$sender.' '.$vgrlink.' ('.
localtime($contrib{$idx.':timestamp'}).
'):
'.$message.
'
';
}
}
}
- unless ($discussiononly) {
- $discussion.='';
- }
+ }
+ my $discussion='
';
+ foreach (sort { $a <=> $b } keys %discussionitems) {
+ $discussion.=$discussionitems{$_};
}
if ($discussiononly) {
$discussion.=(< '.
- &mt('Feedback to resource author').'';
- }
- if (&feedback_available(1)) {
- $msgoptions.=
- '
'.
- &mt('Question about resource content');
- }
- if (&feedback_available(0,1)) {
- $msgoptions.=
- '
'.
- &mt('Question/Comment/Feedback about course content');
- }
- if (&feedback_available(0,0,1)) {
- $msgoptions.=
- '
'.
- &mt('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'}:''))) {
- $discussoptions=' '.
- &mt('Contribution to course discussion of resource');
- $discussoptions.='
'.
- &mt('Anonymous contribution to course discussion of resource').
- ' ('.&mt('name only visible to course faculty').')';
+ my ($feedurl) = @_;
+ my $msgoptions='';
+ my $discussoptions='';
+ unless ($ENV{'form.replydisc'}) {
+ if (($feedurl=~/^\/res\//) && ($feedurl!~/^\/res\/adm/)) {
+ $msgoptions=
+ ' '.
+ &mt('Feedback to resource author').'
';
+ }
+ if (&feedback_available(1)) {
+ $msgoptions.=
+ '
'.
+ &mt('Question about resource content');
+ }
+ if (&feedback_available(0,1)) {
+ $msgoptions.=
+ '
'.
+ &mt('Question/Comment/Feedback about course content');
+ }
+ if (&feedback_available(0,0,1)) {
+ $msgoptions.=
+ '
'.
+ &mt('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'}:''))) {
+ $discussoptions=' '.
+ &mt('Contribution to course discussion of resource');
+ $discussoptions.='
'.
+ &mt('Anonymous contribution to course discussion of resource').
+ ' ('.&mt('name only visible to course faculty').')';
}
- }
- if ($msgoptions) { $msgoptions=''.&mt('Sending Messages').'
'.$msgoptions; }
- if ($discussoptions) {
- $discussoptions=''.&mt('Discussion Contributions').'
'.$discussoptions; }
- return $msgoptions.$discussoptions;
+ }
+ if ($msgoptions) { $msgoptions=''.&mt('Sending Messages').'
'.$msgoptions; }
+ if ($discussoptions) {
+ $discussoptions=''.&mt('Discussion Contributions').'
'.$discussoptions; }
+ return $msgoptions.$discussoptions;
}
sub resource_output {
@@ -519,6 +523,9 @@ sub adddiscuss {
$ENV{'environment.lastname'}.' '.
$ENV{'enrironment.generation'},
'attachmenturl'=> $attachmenturl);
+ if ($ENV{'form.replydisc'}) {
+ $contrib{'replyto'}=(split(/\:\:\:/,$ENV{'form.replydisc'}))[1];
+ }
if ($anon) {
$contrib{'anonymous'}='true';
}
@@ -560,10 +567,11 @@ sub show_preview {
}
sub generate_preview_button {
+ my $pre=&mt("Show Preview");
return(<
-
ENDPREVIEW
@@ -579,7 +587,7 @@ sub handler {
# --------------------------- Get query string for limited number of parameters
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['hide','unhide','deldisc','postdata','preview']);
+ ['hide','unhide','deldisc','postdata','preview','replydisc']);
if (($ENV{'form.hide'}) || ($ENV{'form.unhide'})) {
# ----------------------------------------------------------------- Hide/unhide
@@ -649,7 +657,14 @@ sub handler {
$feedurl=~s/^$ENV{'HTTP_HOST'}//;
$feedurl=~s/\?.+$//;
- my $symb=&Apache::lonnet::symbread($feedurl);
+ my $symb;
+ if ($ENV{'form.replydisc'}) {
+ $symb=(split(/\:\:\:/,$ENV{'form.replydisc'}))[0];
+ my ($map,$id,$url)=&Apache::lonnet::decode_symb($symb);
+ $feedurl=&Apache::lonnet::clutter($url);
+ } else {
+ $symb=&Apache::lonnet::symbread($feedurl);
+ }
unless ($symb) {
$symb=$ENV{'form.symb'};
if ($symb) {