[LON-CAPA-cvs] cvs: loncom /interface lonfeedback.pm
www
lon-capa-cvs@mail.lon-capa.org
Fri, 07 Nov 2003 21:21:17 -0000
www Fri Nov 7 16:21:17 2003 EDT
Modified files:
/loncom/interface lonfeedback.pm
Log:
Threaded discussion done (looks like).
Index: loncom/interface/lonfeedback.pm
diff -u loncom/interface/lonfeedback.pm:1.68 loncom/interface/lonfeedback.pm:1.69
--- loncom/interface/lonfeedback.pm:1.68 Fri Nov 7 11:37:23 2003
+++ loncom/interface/lonfeedback.pm Fri Nov 7 16:21:17 2003
@@ -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 @@
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 @@
$ENV{'request.course.id'}.
($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {
$sender.=' <a href="/adm/feedback?replydisc='.
- $symb.':::'.$idx.'">'.&mt('Reply').'</a>';
+ $symb.':::'.$idx.'" '.$target.'>'.&mt('Reply').'</a>';
}
} else {
if ($screenname) {
@@ -168,8 +173,7 @@
}
#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 @@
}
my $discussion='';
if ($visible) {
+# Print a the discusssion
$discussion.='<table bgcolor="#AAAAAA" cellpadding="2" cellspacing="2" border="0">';
+ if ($visible>2) {
+ my $colspan=$maxdepth+1;
+ $discussion.='<tr><td bgcolor="DDDDBB" colspan="'.$colspan.'">'.
+ '<a href="/adm/feedback?threadedon='.$symb.'">'.&mt('Threaded View').'</a> '.
+ '<a href="/adm/feedback?threadedoff='.$symb.'">'.&mt('Chronological View').'</a>'.
+ '</td></tr>';
+ }
+
foreach (sort { $a <=> $b } keys %alldiscussion) {
- $discussion.="\n<tr bgcolor='#CCCCCC'><td>".$discussionitems[$alldiscussion{$_}].
+ $discussion.="\n<tr>";
+ my $thisdepth=$depth[$alldiscussion{$_}];
+ for (1..$thisdepth) {
+ $discussion.='<td> </td>';
+ }
+ my $colspan=$maxdepth-$thisdepth+1;
+ $discussion.="<td bgcolor='#CCCCCC' colspan='".$colspan."'>".$discussionitems[$alldiscussion{$_}].
"</td></tr>";
}
$discussion.='</table>';
@@ -218,6 +237,18 @@
'','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/\<br \/\>/g;
+ $quote='<blockquote>'.&Apache::lontexconvert::msgtexconverted($message).'</blockquote>';
+ }
+ }
my $latexHelp = Apache::loncommon::helpLatexCheatsheet();
$r->print(<<ENDDOCUMENT);
<html>
@@ -276,6 +307,7 @@
<input type="hidden" name="replydisc" value="$ENV{'form.replydisc'}" />
Please check at least one of the following feedback types:
$options<hr />
+$quote
<p>My question/comment/feedback:</p>
<p>
$latexHelp
@@ -627,7 +659,7 @@
# --------------------------- 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 @@
&redirect_back($r,&Apache::lonnet::clutter($url),
&mt('Changed discussion status').'<br />','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').'<br />','0','0');
} elsif ($ENV{'form.deldisc'}) {
# --------------------------------------------------------------- Hide for good
$r->content_type('text/html');