--- loncom/interface/lonnavmaps.pm 2001/09/25 18:24:37 1.17
+++ loncom/interface/lonnavmaps.pm 2002/01/01 18:37:59 1.22
@@ -1,6 +1,30 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
+# $Id: lonnavmaps.pm,v 1.22 2002/01/01 18:37:59 www Exp $
+#
+# Copyright Michigan State University Board of Trustees
+#
+# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
+#
+# LON-CAPA is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# LON-CAPA is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LON-CAPA; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# /home/httpd/html/adm/gpl.txt
+#
+# http://www.lon-capa.org/
+#
# (Page Handler
#
# (TeX Content Handler
@@ -10,12 +34,16 @@
# 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;
use strict;
use Apache::Constants qw(:common :http);
use Apache::lonnet();
+use Apache::loncommon();
use HTML::TokeParser;
use GDBM_File;
@@ -39,7 +67,6 @@ my %courseopt;
my %useropt;
my %parmhash;
-
# ------------------------------------------------------------------ Euclid gcd
sub euclid {
@@ -443,10 +470,56 @@ sub handler {
# ---------------------------------------------------------------- Send headers
$r->content_type('text/html');
+ &Apache::loncommon::no_cache($r);
$r->send_http_header;
- $r->print(
- '
Navigate LON-CAPA Maps');
+ 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(
+ 'Navigate LON-CAPA Maps');
$r->print('print('>'.
''.
- 'Navigate Course Map
');
+ 'Navigate Course Map
'.
+ "$date
");
$r->rflush();
if (($currenturl=~/^\/res/) &&
($currenturl!~/^\/res\/adm/)) {
@@ -531,9 +605,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.