--- loncom/interface/lonnavmaps.pm 2002/01/01 16:02:28 1.21 +++ loncom/interface/lonnavmaps.pm 2002/01/01 20:33:15 1.23 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.21 2002/01/01 16:02:28 www Exp $ +# $Id: lonnavmaps.pm,v 1.23 2002/01/01 20:33:15 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -488,7 +488,36 @@ sub handler { 'discussiontimes', $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, $ENV{'course.'.$ENV{'request.course.id'}.'.num'}); - + + my %feedback=(); + my %error=(); + foreach my $msgid ( + split(/\&/,&Apache::lonnet::reply('keys:'. + $ENV{'user.domain'}.':'. + $ENV{'user.name'}.':nohist_email', + $ENV{'user.home'}))) { + $msgid=&Apache::lonnet::unescape($msgid); + my $plain=&Apache::lonnet::unescape( + &Apache::lonnet::unescape($msgid)); + if ($plain=~/(Error|Feedback) \[([^\]]+)\]/) { + my ($what,$url)=($1,$2); + my %status= + &Apache::lonnet::get('email_status',[$msgid]); + if ($status{$msgid}=~/^error\:/) { + $status{$msgid}=''; + } + + if (($status{$msgid} eq 'new') || + (!$status{$msgid})) { + if ($what eq 'Error') { + $error{$url}.=','.$msgid; + } else { + $feedback{$url}.=','.$msgid; + } + } + } + } +# ----------------------------------------------------------- Start Page Output $r->print( 'Navigate LON-CAPA Maps'); $r->print('Navigate Course Map'. "

$date

"); $r->rflush(); + $r->print( + ' New discussion since '. + localtime($lastcheck). + '
New message (click to open)

'); if (($currenturl=~/^\/res/) && ($currenturl!~/^\/res\/adm/)) { $r->print('Current Location

'); @@ -580,14 +613,38 @@ sub handler { $adde= ' <'.$adde; } + my $src= + &Apache::lonnet::declutter($hash{'src_'.$rid}); $rid=~/^(\d+)\.(\d+)$/; - my $symb=&Apache::lonnet::declutter($hash{'map_id_'.$1}).'___'.$2.'___'. - &Apache::lonnet::declutter($hash{'src_'.$rid}); + my $symb= + &Apache::lonnet::declutter($hash{'map_id_'.$1}).'___'.$2.'___'.$src; if ($discussiontimes{$symb}>$lastcheck) { $adde= ''. $adde; } + if ($error{$src}) { + foreach (split(/\,/,$error{$src})) { + if ($_) { + $adde= + ' ' + .$adde; + } + } + } + if ($feedback{$src}) { + foreach (split(/\,/,$feedback{$src})) { + if ($_) { + $adde= + ' ' + .$adde; + } + } + } $r->print($add.''.$hwk. $hash{'title_'.$rid}.$hwke.''.$adde);