--- loncom/interface/lonfeedback.pm 2003/11/07 16:37:23 1.68 +++ loncom/interface/lonfeedback.pm 2003/11/07 21:21:17 1.69 @@ -1,7 +1,7 @@ # The LearningOnline Network # Feedback # -# $Id: lonfeedback.pm,v 1.68 2003/11/07 16:37:23 www Exp $ +# $Id: lonfeedback.pm,v 1.69 2003/11/07 21:21:17 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -81,13 +81,18 @@ sub list_discussion { my %alldiscussion=(); my $maxdepth=0; + my $target=''; + unless ($ENV{'browser.interface'} eq 'textual' || + $ENV{'environment.remote'} eq 'off' ) { + $target='target="LONcom"'; + } if ($contrib{'version'}) { for (my $id=1;$id<=$contrib{'version'};$id++) { my $idx=$id; my $hidden=($contrib{'hidden'}=~/\.$idx\./); my $deleted=($contrib{'deleted'}=~/\.$idx\./); my $origindex='0.'; - if ($contrib{$idx.':replyto'}) { + if (($contrib{$idx.':replyto'}) && ($ENV{'environment.threadeddiscussion'})) { # this is a follow-up message $original[$idx]=$original[$contrib{$idx.':replyto'}]; $depth[$idx]=$depth[$contrib{$idx.':replyto'}]+1; @@ -154,7 +159,7 @@ sub list_discussion { $ENV{'request.course.id'}. ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) { $sender.=' '.&mt('Reply').''; + $symb.':::'.$idx.'" '.$target.'>'.&mt('Reply').''; } } else { if ($screenname) { @@ -168,8 +173,7 @@ sub list_discussion { } #figure out at what position this needs to print my $thisindex=$idx; -# if ($ENV{'request.discussions.threaded'}) { - if (1) { + if ($ENV{'environment.threadeddiscussion'}) { $thisindex=$origindex.substr('00'.$replies[$depth[$idx]],-2,2); } $alldiscussion{$thisindex}=$idx; @@ -184,9 +188,24 @@ sub list_discussion { } my $discussion=''; if ($visible) { +# Print a the discusssion $discussion.=''; + if ($visible>2) { + my $colspan=$maxdepth+1; + $discussion.=''; + } + foreach (sort { $a <=> $b } keys %alldiscussion) { - $discussion.="\n"; + my $thisdepth=$depth[$alldiscussion{$_}]; + for (1..$thisdepth) { + $discussion.=''; + } + my $colspan=$maxdepth-$thisdepth+1; + $discussion.=""; } $discussion.='
'. + ''.&mt('Threaded View').'  '. + ''.&mt('Chronological View').''. + '
".$discussionitems[$alldiscussion{$_}]. + $discussion.="\n
   ".$discussionitems[$alldiscussion{$_}]. "
'; @@ -218,6 +237,18 @@ sub mail_screen { '','onLoad="window.focus();"'); my $title=&Apache::lonnet::gettitle($feedurl); if (!$title) { $title = $feedurl; } + my $quote=''; + if ($ENV{'form.replydisc'}) { + my ($symb,$idx)=split(/\:\:\:/,$ENV{'form.replydisc'}); + my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'}, + $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, + $ENV{'course.'.$ENV{'request.course.id'}.'.num'}); + unless (($contrib{'hidden'}=~/\.$idx\./) || ($contrib{'deleted'}=~/\.$idx\./)) { + my $message=$contrib{$idx.':message'}; + $message=~s/\n/\
/g; + $quote='
'.&Apache::lontexconvert::msgtexconverted($message).'
'; + } + } my $latexHelp = Apache::loncommon::helpLatexCheatsheet(); $r->print(< @@ -276,6 +307,7 @@ enctype="multipart/form-data"> Please check at least one of the following feedback types: $options
+$quote

My question/comment/feedback:

$latexHelp @@ -627,7 +659,7 @@ sub handler { # --------------------------- Get query string for limited number of parameters &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['hide','unhide','deldisc','postdata','preview','replydisc']); + ['hide','unhide','deldisc','postdata','preview','replydisc','threadedon','threadedoff']); if (($ENV{'form.hide'}) || ($ENV{'form.unhide'})) { # ----------------------------------------------------------------- Hide/unhide @@ -659,6 +691,18 @@ sub handler { &redirect_back($r,&Apache::lonnet::clutter($url), &mt('Changed discussion status').'
','0','0'); + } elsif (($ENV{'form.threadedon'}) || ($ENV{'form.threadedoff'})) { + if ($ENV{'form.threadedon'}) { + &Apache::lonnet::put('environment',{'threadeddiscussion' => 'on'}); + &Apache::lonnet::appenv('environment.threadeddiscussion' => 'on'); + } else { + &Apache::lonnet::del('environment',['threadeddiscussion']); + &Apache::lonnet::delenv('environment\.threadeddiscussion'); + } + my $symb=$ENV{'form.threadedon'}?$ENV{'form.threadedon'}:$ENV{'form.threadedoff'}; + my ($map,$ind,$url)=&Apache::lonnet::decode_symb($symb); + &redirect_back($r,&Apache::lonnet::clutter($url), + &mt('Changed discussion view mode').'
','0','0'); } elsif ($ENV{'form.deldisc'}) { # --------------------------------------------------------------- Hide for good $r->content_type('text/html');