--- loncom/interface/lonfeedback.pm 2004/04/28 21:13:13 1.78 +++ loncom/interface/lonfeedback.pm 2004/04/28 23:59:53 1.79 @@ -1,7 +1,7 @@ # The LearningOnline Network # Feedback # -# $Id: lonfeedback.pm,v 1.78 2004/04/28 21:13:13 raeburn Exp $ +# $Id: lonfeedback.pm,v 1.79 2004/04/28 23:59:53 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -56,10 +56,15 @@ sub list_discussion { } unless ($symb) { return ''; } - my %dischash = &Apache::lonnet::restore($symb,$ENV{'request.course.id'}.'_discuss',$ENV{'user.domain'},$ENV{'user.name'}); + my %dischash = &Apache::lonnet::restore($symb,'nohist_'.$ENV{'request.course.id'}.'_discuss',$ENV{'user.domain'},$ENV{'user.name'}); my %readids = (); my $showonlyunread; + my $prevread = 0; + foreach my $key (keys %dischash) { + if ($key eq 'lastread') { + $prevread = $dischash{$key}; + } if ($key eq 'showonlyunread') { $showonlyunread = $dischash{$key}; } else { @@ -94,6 +99,13 @@ sub list_discussion { $ENV{'environment.remote'} eq 'off' ) { $target='target="LONcom"'; } + + my $now = time; + my %discinfo = ( + 'lastread' => $now, + ); + &Apache::lonnet::cstore(\%discinfo,$symb,'nohist_'.$ENV{'request.course.id'}.'_discuss',$ENV{'user.domain'},$ENV{'user.name'}); + if ($contrib{'version'}) { for (my $id=1;$id<=$contrib{'version'};$id++) { my $idx=$id; @@ -201,13 +213,21 @@ sub list_discussion { } $alldiscussion{$thisindex}=$idx; $index[$idx]=$thisindex; - $discussionitems[$idx]='

'. - '
'.$subject.'  '. + my $posttime = $contrib{$idx.':timestamp'}; + my $spansize = 2; + $discussionitems[$idx]='

'; + if ($prevread > 0 && $prevread < $posttime) { + $discussionitems[$idx] .= ''; + $spansize ++; + } + $discussionitems[$idx] .= ''; + localtime($posttime).')'. + ''; if ($showonlyunread && $readids{$idx}) { - $discussionitems[$idx] .= '
NEW  '. + ''.$subject.'  '. $sender.' '.$vgrlink.' ('. - localtime($contrib{$idx.':timestamp'}). - ')  '.$ctlink.'
  '. + $ctlink.'
Check "Show all posts?" or "Mark unread?", then "Save read settings" to display message
'; + $discussionitems[$idx] .= '

Check "Show all posts?" or "Mark unread?", then "Save read settings" to display message
'; } else { $discussionitems[$idx] .= '

'.$message.'

'; } @@ -306,7 +326,9 @@ sub mail_screen { my $message=$contrib{$idx.':message'}; $message=~s/\n/\
/g; $quote='
'.&Apache::lontexconvert::msgtexconverted($message).'
'; - $subject = 'Re: '.$contrib{$idx.':subject'}; + if ($idx > 0) { + $subject = 'Re: '.$contrib{$idx.':subject'}; + } } } my $latexHelp = Apache::loncommon::helpLatexCheatsheet(); @@ -764,7 +786,7 @@ sub handler { } elsif ($ENV{'form.onlyunread'}) { $readinghash{'showonlyunread'} = 1; } - &Apache::lonnet::cstore(\%readinghash,$symb,$ENV{'request.course.id'}.'_discuss',$ENV{'user.domain'},$ENV{'user.name'}); + &Apache::lonnet::cstore(\%readinghash,$symb,'nohist_'.$ENV{'request.course.id'}.'_discuss',$ENV{'user.domain'},$ENV{'user.name'}); } &redirect_back($r,&Apache::lonnet::clutter($url),&mt('Changed reading status'),'0','0'); @@ -791,7 +813,7 @@ sub handler { } if ($chgcount > 0) { - &Apache::lonnet::cstore(\%readinghash,$symb,$ENV{'request.course.id'}.'_discuss',$ENV{'user.domain'},$ENV{'user.name'}); + &Apache::lonnet::cstore(\%readinghash,$symb,'nohist_'.$ENV{'request.course.id'}.'_discuss',$ENV{'user.domain'},$ENV{'user.name'}); } } @@ -830,7 +852,7 @@ sub handler { $ENV{'course.'.$ENV{'request.course.id'}.'.num'}); &redirect_back($r,&Apache::lonnet::clutter($url), - &mt('Changed read status').'
','0','0'); + &mt('Changed discussion status').'
','0','0'); } elsif (($ENV{'form.threadedon'}) || ($ENV{'form.threadedoff'})) { &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header;