--- loncom/interface/lonnavmaps.pm 2001/12/19 17:17:46 1.20 +++ loncom/interface/lonnavmaps.pm 2003/01/10 18:45:30 1.124 @@ -1,7 +1,8 @@ + # 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.124 2003/01/10 18:45:30 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -34,62 +35,1228 @@ # 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 +# Oct-Nov Jeremy Bowers package Apache::lonnavmaps; use strict; use Apache::Constants qw(:common :http); -use Apache::lonnet(); use Apache::loncommon(); -use HTML::TokeParser; +use POSIX qw (floor strftime); + +sub handler { + my $r = shift; + real_handler($r); +} + +sub real_handler { + my $r = shift; + + &Apache::loncommon::get_unprocessed_cgi($ENV{QUERY_STRING}); + + # Handle header-only request + if ($r->header_only) { + if ($ENV{'browser.mathml'}) { + $r->content_type('text/xml'); + } else { + $r->content_type('text/html'); + } + $r->send_http_header; + return OK; + } + + # Send header, don't cache this page + if ($ENV{'browser.mathml'}) { + $r->content_type('text/xml'); + } else { + $r->content_type('text/html'); + } + &Apache::loncommon::no_cache($r); + $r->send_http_header; + + # Create the nav map + my $navmap = Apache::lonnavmaps::navmap->new( + $ENV{"request.course.fn"}.".db", + $ENV{"request.course.fn"}."_parms.db", 1, 1); + + + if (!defined($navmap)) { + my $requrl = $r->uri; + $ENV{'user.error.msg'} = "$requrl:bre:0:0:Course not initialized"; + return HTTP_NOT_ACCEPTABLE; + } + + $r->print("
\n"); + $r->print("Key: | '); + + # Print discussions and feedback header + if ($navmap->{LAST_CHECK}) { + $r->print(''. + ' New discussion since '. + strftime("%A, %b %e at %I:%M %P", localtime($navmap->{LAST_CHECK})). + ' | '.
+ ' New message (click to open) '. + ' | ');
+ } else {
+ $r->print(''. + ' Discussions | '. + ' New message (click to open)'. + ' | '); + } + $r->print('