--- rat/lonpageflip.pm 2018/12/27 20:11:16 1.99 +++ rat/lonpageflip.pm 2021/02/18 14:48:02 1.102 @@ -2,7 +2,7 @@ # # Page flip handler # -# $Id: lonpageflip.pm,v 1.99 2018/12/27 20:11:16 raeburn Exp $ +# $Id: lonpageflip.pm,v 1.102 2021/02/18 14:48:02 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -320,7 +320,8 @@ sub check_http_req { } elsif (($$srcref =~ m{^\Q/adm/wrapper/ext/\E(?!https:)}) && ($ENV{'SERVER_PORT'} == 443)) { unless (&Apache::lonnet::uses_sts()) { - $$srcref .= (($$srcref =~/\?/)? '&':'?') . 'usehttp=1'; + my ($url,$anchor) = ($$srcref =~ /^([^\#]+)(?:|(\#[^\#]+))$/); + $$srcref = $url . (($$srcref =~/\?/)? '&':'?') . 'usehttp=1' .$anchor; $usehttp = 1; } } @@ -430,12 +431,12 @@ sub handler { my $preamble = '
'. '
'. &mt('Your course session is being updated because of recent changes by course personnel.'). - ' '.&mt('Please be patient.').'
'. + ' '.&mt('Please be patient').'.
'. '
'; %prog_state = &Apache::lonhtmlcommon::Create_PrgWin($r,undef,$preamble); &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,&mt('Updating course')); my ($furl,$ferr) = &Apache::lonuserstate::readmap("$cdom/$cnum"); - &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,&mt('Finished')); + &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,&mt('Finished!')); if ($ferr) { &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); my $requrl = $r->uri; @@ -471,7 +472,7 @@ sub handler { return REDIRECT; } } - if ($direction eq 'return') { + if ($direction eq 'return') { # -------------------------------------------------------- Return to last known my ($newloc,$usehttp); if (($last) && (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'.db', @@ -483,8 +484,12 @@ sub handler { $usehttp = &check_http_req(\$newloc); if ($hash{'encrypted_'.$id}) { $newloc=&Apache::lonenc::encrypted($newloc); - } elsif ($newloc =~ m{^(/adm/wrapper/ext/[^\#]+)\#([^\#]+)$}) { - $newloc = $1.&escape('#').$2; + } + if ($newloc =~ m{^(/adm/wrapper/ext/[^\#]+)(?:|(\#[^\#]+))$}) { + my ($url,$anchor) = ($1,$2); + if ($anchor) { + $newloc = $url.(($url=~/\?/)?'&':'?').'symb='.&escape($last).$anchor; + } } } else { $newloc='/adm/navmaps'; @@ -520,7 +525,6 @@ sub handler { $last=$hash{'last_known'}; untie(%hash); } - my $newloc; if ($last) { $currenturl=&Apache::lonnet::clutter((&Apache::lonnet::decode_symb($last))[2]); } else {