--- loncom/interface/lonfeedback.pm 2003/10/21 00:22:23 1.64 +++ loncom/interface/lonfeedback.pm 2003/11/04 03:32:55 1.67 @@ -1,7 +1,7 @@ # The LearningOnline Network # Feedback # -# $Id: lonfeedback.pm,v 1.64 2003/10/21 00:22:23 www Exp $ +# $Id: lonfeedback.pm,v 1.67 2003/11/04 03:32:55 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -73,12 +73,14 @@ sub list_discussion { 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 $visible=0; if ($contrib{'version'}) { 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)) { + $visible++; my $message=$contrib{$idx.':message'}; $message=~s/\n/\
/g; $message=&Apache::lontexconvert::msgtexconverted($message); @@ -148,9 +150,14 @@ sub list_discussion { } } } - my $discussion='
'; - foreach (sort { $a <=> $b } keys %discussionitems) { - $discussion.=$discussionitems{$_}; + my $discussion=''; + if ($visible) { + $discussion.=''; + foreach (sort { $a <=> $b } keys %discussionitems) { + $discussion.="\n"; + } + $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 { @@ -522,6 +530,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'; } @@ -563,10 +574,11 @@ sub show_preview { } sub generate_preview_button { + my $pre=&mt("Show Preview"); return(< - ENDPREVIEW @@ -582,7 +594,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 @@ -652,7 +664,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) {