--- rat/lonpageflip.pm 2018/11/13 03:59:17 1.98 +++ rat/lonpageflip.pm 2021/02/18 14:48:02 1.102 @@ -2,7 +2,7 @@ # # Page flip handler # -# $Id: lonpageflip.pm,v 1.98 2018/11/13 03:59:17 raeburn Exp $ +# $Id: lonpageflip.pm,v 1.102 2021/02/18 14:48:02 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -313,11 +313,17 @@ sub check_http_req { if (($$srcref =~ m{^\Q/public/$cdom/$cnum/syllabus\E($|\?)}) && ($ENV{'SERVER_PORT'} == 443) && ($env{'course.'.$env{'request.course.id'}.'.externalsyllabus'} =~ m{^http://})) { - $$srcref .= (($$srcref =~/\?/)? '&':'?') . 'usehttp=1'; - $usehttp = 1; + unless (&Apache::lonnet::uses_sts()) { + $$srcref .= (($$srcref =~/\?/)? '&':'?') . 'usehttp=1'; + $usehttp = 1; + } } elsif (($$srcref =~ m{^\Q/adm/wrapper/ext/\E(?!https:)}) && ($ENV{'SERVER_PORT'} == 443)) { - $usehttp = 1; + unless (&Apache::lonnet::uses_sts()) { + my ($url,$anchor) = ($$srcref =~ /^([^\#]+)(?:|(\#[^\#]+))$/); + $$srcref = $url . (($$srcref =~/\?/)? '&':'?') . 'usehttp=1' .$anchor; + $usehttp = 1; + } } } return $usehttp; @@ -425,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; @@ -466,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', @@ -478,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'; @@ -515,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 {