--- rat/lonpageflip.pm 2015/03/14 22:29:25 1.80.8.7 +++ rat/lonpageflip.pm 2013/05/10 12:49:39 1.81 @@ -2,7 +2,7 @@ # # Page flip handler # -# $Id: lonpageflip.pm,v 1.80.8.7 2015/03/14 22:29:25 raeburn Exp $ +# $Id: lonpageflip.pm,v 1.81 2013/05/10 12:49:39 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -36,8 +36,6 @@ use LONCAPA; use Apache::Constants qw(:common :http REDIRECT); use Apache::lonnet; use Apache::loncommon(); -use Apache::lonuserstate; -use Apache::lonlocal; use HTML::TokeParser; use GDBM_File; @@ -269,30 +267,9 @@ sub handler { my @possibilities=(); &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['postdata']); if (($env{'form.postdata'})&&($env{'request.course.fn'})) { - my ($direction,$currenturl) = ($env{'form.postdata'}=~/(\w+)\:(.*)/); - - if ($env{'request.course.id'}) { - # Check if course needs to be re-initialized - my $loncaparev = $r->dir_config('lonVersion'); - my ($result,@reinit) = &Apache::loncommon::needs_coursereinit($loncaparev); - 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; - } - } - } - + $env{'form.postdata'}=~/(\w+)\:(.*)/; + my $direction=$1; + my $currenturl=$2; if ($currenturl=~m|^/enc/|) { $currenturl=&Apache::lonenc::unencrypted($currenturl); } @@ -305,7 +282,7 @@ sub handler { return REDIRECT; } - if ($direction eq 'return') { + if ($direction eq 'return') { # -------------------------------------------------------- Return to last known my $last; if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db', @@ -328,12 +305,12 @@ sub handler { untie %hash; } else { $newloc='/adm/navmaps'; - } - &Apache::loncommon::content_type($r,'text/html'); - $r->header_out(Location => - &Apache::lonnet::absolute_url().$newloc); + } + &Apache::loncommon::content_type($r,'text/html'); + $r->header_out(Location => + &Apache::lonnet::absolute_url().$newloc); - return REDIRECT; + return REDIRECT; } $currenturl=~s/^https?\:\/\///; $currenturl=~s/^[^\/]+//; @@ -350,11 +327,11 @@ sub handler { if ($last) { $currenturl=&Apache::lonnet::clutter((&Apache::lonnet::decode_symb($last))[2]); } else { - &Apache::loncommon::content_type($r,'text/html'); - $r->header_out(Location => - &Apache::lonnet::absolute_url(). - '/adm/noidea.html'); - return REDIRECT; + &Apache::loncommon::content_type($r,'text/html'); + $r->header_out(Location => + &Apache::lonnet::absolute_url(). + '/adm/noidea.html'); + return REDIRECT; } } # ------------------------------------------- Do we have any idea where we are? @@ -412,7 +389,7 @@ sub handler { untie(%hash); # --------------------------------------------------------- Store position info $cachehash{$startoutmap}{'last_direction'}=[$direction,'notasymb']; - foreach my $thismap (keys(%cachehash)) { + foreach my $thismap (keys %cachehash) { my $mapnum=$cachehash{$thismap}->{'mapnum'}; delete($cachehash{$thismap}->{'mapnum'}); &Apache::lonnet::symblist($thismap, @@ -427,13 +404,24 @@ sub handler { if ($direction eq 'back') { &Apache::lonnet::linklog($redirecturl,$currenturl); } -# ------------------------------------- Check for and display critical messages - my ($redirect, $url) = &Apache::loncommon::critical_redirect(300); - unless ($redirect) { - $url=&Apache::lonnet::absolute_url().$redirecturl; - $url = &add_get_param($url, { 'symb' => $redirectsymb}); - } - &Apache::loncommon::content_type($r,'text/html'); +# ------------------------------------------------- Check for critical messages + if ((time-$env{'user.criticalcheck.time'})>300) { + my @what=&Apache::lonnet::dump + ('critical',$env{'user.domain'}, + $env{'user.name'}); + if ($what[0]) { + if (($what[0] ne 'con_lost') && + ($what[0]!~/^error\:/)) { + $redirecturl='/adm/email?critical=display'; + $redirectsymb=''; + } + } + &Apache::lonnet::appenv({'user.criticalcheck.time'=>time}); + } + + &Apache::loncommon::content_type($r,'text/html'); + my $url=&Apache::lonnet::absolute_url().$redirecturl; + $url = &add_get_param($url, { 'symb' => $redirectsymb}); $r->header_out(Location => $url); return REDIRECT; } else { @@ -444,16 +432,13 @@ sub handler { 'explain' => 'You have reached the end of the sequence of materials.', 'back' => 'Go Back', - 'nav' => 'Course Contents', + 'nav' => 'Navigate Course Content', 'wherenext' => 'There are several possibilities of where to go next', 'pick' => 'Please click on the the resource you intend to access', 'titleheader' => 'Title', 'type' => 'Type'); - if (&Apache::loncommon::course_type() eq 'Community') { - $lt{'nav'} = &mt('Community Contents'); - } if ($#possibilities>0) { my $start_page= &Apache::loncommon::start_page('Multiple Resources'); @@ -479,17 +464,21 @@ ENDSTART } $r->print(''); } else { - $r->print( - &Apache::loncommon::start_page('No Resource') - .'

'.$lt{'title'}.'

' - .'

'.$lt{'explain'}.'

'); + my $start_page= + &Apache::loncommon::start_page('No Resource'); + $r->print(<$lt{'title'} +

$lt{'explain'}

+ENDNONE } - $r->print( - &Apache::lonhtmlcommon::actionbox( - [''.$lt{'back'}.'', - ''.$lt{'nav'}.'' - ]) - .&Apache::loncommon::end_page()); + $r->print(< +
  • $lt{'back'}
  • +
  • $lt{'nav'}
  • + +ENDMENU + $r->print(&Apache::loncommon::end_page()); return OK; } } else {