--- rat/lonpageflip.pm 2008/12/21 05:00:52 1.75.2.1 +++ rat/lonpageflip.pm 2014/05/20 20:40:46 1.85 @@ -2,7 +2,7 @@ # # Page flip handler # -# $Id: lonpageflip.pm,v 1.75.2.1 2008/12/21 05:00:52 raeburn Exp $ +# $Id: lonpageflip.pm,v 1.85 2014/05/20 20:40:46 musolffc Exp $ # # Copyright Michigan State University Board of Trustees # @@ -27,6 +27,8 @@ # http://www.lon-capa.org/ # + + package Apache::lonpageflip; use strict; @@ -34,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; @@ -215,26 +218,6 @@ 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(<Goto first resource

- -

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', @@ -300,7 +283,7 @@ sub handler { return REDIRECT; } - if ($direction eq 'return' || $direction eq 'navlaunch') { + if ($direction eq 'return') { # -------------------------------------------------------- Return to last known my $last; if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db', @@ -324,16 +307,11 @@ sub handler { } else { $newloc='/adm/navmaps'; } - if ($newloc eq '/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/^[^\/]+//; @@ -350,16 +328,11 @@ 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? @@ -432,24 +405,13 @@ sub handler { if ($direction eq 'back') { &Apache::lonnet::linklog($redirecturl,$currenturl); } -# ------------------------------------------------- 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}); - } - +# ------------------------------------- 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'); - my $url=&Apache::lonnet::absolute_url().$redirecturl; - $url = &add_get_param($url, { 'symb' => $redirectsymb}); $r->header_out(Location => $url); return REDIRECT; } else { @@ -460,13 +422,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'); @@ -476,7 +441,7 @@ $start_page

$lt{'pick'}:

- +
ENDSTART foreach my $id (@possibilities) { @@ -492,21 +457,17 @@ ENDSTART } $r->print('
$lt{'titleheader'}$lt{'type'}
'); } else { - my $start_page= - &Apache::loncommon::start_page('No Resource'); - $r->print(<$lt{'title'} -

$lt{'explain'}

-ENDNONE - } - $r->print(< -
  • $lt{'back'}
  • -
  • $lt{'nav'}
  • - -ENDMENU - $r->print(&Apache::loncommon::end_page()); + $r->print( + &Apache::loncommon::start_page('No Resource') + .'

    '.$lt{'title'}.'

    ' + .'

    '.$lt{'explain'}.'

    '); + } + $r->print( + &Apache::lonhtmlcommon::actionbox( + [''.$lt{'back'}.'', + ''.$lt{'nav'}.'' + ]) + .&Apache::loncommon::end_page()); return OK; } } else { @@ -517,6 +478,7 @@ ENDMENU } else { # ---------------------------------------- No, could not determine where we are $r->internal_redirect('/adm/ambiguous'); + return OK; } } else { # -------------------------- Class was not initialized or page fliped strangely @@ -528,6 +490,44 @@ ENDMENU 1; __END__ +=pod + +=head1 NAME + +Apache::lonpageflip + +=head1 SYNOPSIS + +Deals with forward, backward, and other page flips. + +This is part of the LearningOnline Network with CAPA project +described at http://www.lon-capa.org. + +=head1 OVERVIEW + +(empty) + +=head1 SUBROUTINES + +=over cleanup() + +=item addrid() + +=item fullmove() + +=item hash_src() + +=item move() + +=item get_next_possible_move() + +=item first_accessible_resource() + +=item handler() + +=back + +=cut