--- rat/lonpageflip.pm 2010/03/16 19:56:02 1.80
+++ rat/lonpageflip.pm 2014/04/28 20:23:35 1.80.8.4
@@ -2,7 +2,7 @@
#
# Page flip handler
#
-# $Id: lonpageflip.pm,v 1.80 2010/03/16 19:56:02 droeschl Exp $
+# $Id: lonpageflip.pm,v 1.80.8.4 2014/04/28 20:23:35 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -36,6 +36,7 @@ use LONCAPA;
use Apache::Constants qw(:common :http REDIRECT);
use Apache::lonnet;
use Apache::loncommon();
+use Apache::lonlocal;
use HTML::TokeParser;
use GDBM_File;
@@ -217,6 +218,26 @@ sub get_next_possible_move {
return ($next,$mapurl);
}
+sub navlaunch {
+ my ($r)=@_;
+ &Apache::loncommon::content_type($r,'text/html');
+ &Apache::loncommon::no_cache($r);
+ $r->send_http_header;
+ $r->print(&Apache::loncommon::start_page('Launched'));
+ $r->print(<
Collapse external navigation window
+ENDNAV + $r->print(&Apache::loncommon::end_page()); +} + sub first_accessible_resource { my $furl; if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'.db', @@ -228,7 +249,8 @@ sub first_accessible_resource { my ($name,$value) = split(/=/,$pair); $args{&unescape($name)} = &unescape($value); } - if (!&Apache::lonnet::allowed('bre',$url,$args{'symb'})) { + if ((($env{'environment.remotenavmap'} eq 'on') && ($furl =~ m{^/adm/navmaps})) || + (!&Apache::lonnet::allowed('bre',$url,$args{'symb'}))) { # Wow, we cannot see this ... move forward to the next one that we can see my ($newrid,$newmap)=&move($hash{'first_rid'},$hash{'first_mapurl'},'forward'); # Build the new URL @@ -282,7 +304,7 @@ sub handler { return REDIRECT; } - if ($direction eq 'return') { + if ($direction eq 'return' || $direction eq 'navlaunch') { # -------------------------------------------------------- Return to last known my $last; if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db', @@ -305,12 +327,17 @@ sub handler { untie %hash; } else { $newloc='/adm/navmaps'; - } + } + if (($newloc =~ m{^/adm/navmaps}) && ($direction eq 'navlaunch')) { + &navlaunch($r); + return OK; + } else { &Apache::loncommon::content_type($r,'text/html'); $r->header_out(Location => &Apache::lonnet::absolute_url().$newloc); return REDIRECT; + } } $currenturl=~s/^https?\:\/\///; $currenturl=~s/^[^\/]+//; @@ -327,11 +354,16 @@ sub handler { if ($last) { $currenturl=&Apache::lonnet::clutter((&Apache::lonnet::decode_symb($last))[2]); } else { + if ($direction eq 'return') { &Apache::loncommon::content_type($r,'text/html'); $r->header_out(Location => &Apache::lonnet::absolute_url(). '/adm/noidea.html'); return REDIRECT; + } else { + &navlaunch($r); + return OK; + } } } # ------------------------------------------- Do we have any idea where we are? @@ -419,6 +451,11 @@ sub handler { &Apache::lonnet::appenv({'user.criticalcheck.time'=>time}); } + if (($redirecturl =~ m{^/adm/navmaps}) && + ($env{'environment.remotenavmap'} eq 'on')) { + &navlaunch($r); + return OK; + } &Apache::loncommon::content_type($r,'text/html'); my $url=&Apache::lonnet::absolute_url().$redirecturl; $url = &add_get_param($url, { 'symb' => $redirectsymb}); @@ -432,13 +469,16 @@ sub handler { 'explain' => 'You have reached the end of the sequence of materials.', 'back' => 'Go Back', - 'nav' => 'Navigate Course Content', + 'nav' => 'Course Contents', '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'); @@ -464,21 +504,17 @@ ENDSTART } $r->print(''); } else { - my $start_page= - &Apache::loncommon::start_page('No Resource'); - $r->print(<$lt{'explain'}
-ENDNONE + $r->print( + &Apache::loncommon::start_page('No Resource') + .''.$lt{'explain'}.'
'); } - $r->print(<