--- loncom/interface/lonnavmaps.pm 2001/12/19 17:17:46 1.20 +++ 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.20 2001/12/19 17:17:46 albertel Exp $ +# $Id: lonnavmaps.pm,v 1.23 2002/01/01 20:33:15 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -34,6 +34,9 @@ # 10/02,10/10,10/14,10/16,10/18,10/19,10/31,11/6,11/14,11/16 Gerd Kortemeyer) # # 3/1/1,6/1,17/1,29/1,30/1,2/8,9/21,9/24,9/25 Gerd Kortemeyer +# YEAR=2002 +# 1/1 Gerd Kortemeyer +# package Apache::lonnavmaps; @@ -64,7 +67,6 @@ my %courseopt; my %useropt; my %parmhash; - # ------------------------------------------------------------------ Euclid gcd sub euclid { @@ -470,7 +472,52 @@ sub handler { $r->content_type('text/html'); &Apache::loncommon::no_cache($r); $r->send_http_header; + my $date=localtime; + my $now=time; +# ----------------------------------------- Get email status and discussiontime + + my %emailstatus=&Apache::lonnet::dump('email_status'); + my $logouttime=$emailstatus{'logout'}; + my $courseleave= + $emailstatus{'logout_'.$ENV{'request.course.id'}}; + my $lastcheck= + ($courseleave>$logouttime?$courseleave:$logouttime); + + my %discussiontimes=&Apache::lonnet::dump( + '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( '
'); if (($currenturl=~/^\/res/) && ($currenturl!~/^\/res\/adm/)) { $r->print('Current Location
');
@@ -557,9 +609,41 @@ sub handler {
}
if ($hash{'src_'.$rid} eq $currenturl) {
$add=$add.''.
- '-> ';
+ '> ';
$adde=
- ' <-'.$adde;
+ ' <'.$adde;
+ }
+ my $src=
+ &Apache::lonnet::declutter($hash{'src_'.$rid});
+ $rid=~/^(\d+)\.(\d+)$/;
+ 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.