--- loncom/interface/lonnavdisplay.pm 2015/03/01 20:42:08 1.29 +++ loncom/interface/lonnavdisplay.pm 2015/03/30 22:29:24 1.32 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Display Handler # -# $Id: lonnavdisplay.pm,v 1.29 2015/03/01 20:42:08 raeburn Exp $ +# $Id: lonnavdisplay.pm,v 1.32 2015/03/30 22:29:24 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -38,6 +38,7 @@ use Apache::lonhtmlcommon(); use Apache::lonnet; use Apache::lonlocal; use Apache::londocs(); +use Apache::lonuserstate; sub handler { my $r = shift; @@ -48,11 +49,7 @@ sub real_handler { my $r = shift; # Handle header-only request if ($r->header_only) { - if ($env{'browser.mathml'}) { - &Apache::loncommon::content_type($r,'text/xml'); - } else { - &Apache::loncommon::content_type($r,'text/html'); - } + &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; return OK; } @@ -65,17 +62,26 @@ sub real_handler { return REDIRECT; } + # Check if course needs to be re-initialized + my $loncaparev = $r->dir_config('lonVersion'); + my ($result,@reinit) = &Apache::loncommon::needs_coursereinit($loncaparev); - - # Send header, don't cache this page - if ($env{'browser.mathml'}) { - &Apache::loncommon::content_type($r,'text/xml'); - } else { + if ($result eq 'switch') { &Apache::loncommon::content_type($r,'text/html'); + $r->send_http_header; + $r->print(&Apache::loncommon::check_release_result(@reinit)); + return OK; + } elsif ($result eq 'update') { + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my ($furl,$ferr) = &Apache::lonuserstate::readmap("$cdom/$cnum"); + if ($ferr) { + my $requrl = $r->uri; + $env{'user.error.msg'}="$requrl:bre:0:0:Course not initialized"; + $env{'user.reinit'} = 1; + return HTTP_NOT_ACCEPTABLE; + } } - &Apache::loncommon::no_cache($r); - - my %toplinkitems=(); # Create the nav map my $navmap = Apache::lonnavmaps::navmap->new(); @@ -86,6 +92,9 @@ sub real_handler { $env{'user.reinit'} = 1; return HTTP_NOT_ACCEPTABLE; } + + # Send header, don't cache this page + &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; # ------------------------------------------------------------ Get query string @@ -125,6 +134,7 @@ sub real_handler { return OK; } + my %toplinkitems=(); my @resources = $navmap->retrieveResources(); my $sequenceCount = 0; my $problemCount = 0;