--- loncom/interface/lonnavmaps.pm 2002/07/25 16:55:53 1.39 +++ loncom/interface/lonnavmaps.pm 2002/11/14 16:47:13 1.104 @@ -1,7 +1,8 @@ + # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.39 2002/07/25 16:55:53 www Exp $ +# $Id: lonnavmaps.pm,v 1.104 2002/11/14 16:47:13 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -44,54 +45,1109 @@ use strict; use Apache::Constants qw(:common :http); use Apache::lonnet(); use Apache::loncommon(); -use HTML::TokeParser; use GDBM_File; +use POSIX qw (floor strftime); -# -------------------------------------------------------------- Module Globals -my %hash; -my @rows; +sub handler { + my $r = shift; -# -# These cache hashes need to be independent of user, resource and course -# (user and course can/should be in the keys) -# + &Apache::loncommon::get_unprocessed_cgi($ENV{QUERY_STRING}); -my %courserdatas; -my %userrdatas; + # 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; + } -# -# These global hashes are dependent on user, course and resource, -# and need to be initialized every time when a sheet is calculated -# -my %courseopt; -my %useropt; -my %parmhash; + # 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 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; + } -# ------------------------------------------------------------------ Euclid gcd + # Header + $r->print(&Apache::loncommon::bodytag('Navigate Course Map','', + '')); + $r->print(''); + + $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('