Diff for /rat/lonpageflip.pm between versions 1.80.8.7 and 1.82

version 1.80.8.7, 2015/03/14 22:29:25 version 1.82, 2013/06/18 13:23:37
Line 36  use LONCAPA; Line 36  use LONCAPA;
 use Apache::Constants qw(:common :http REDIRECT);  use Apache::Constants qw(:common :http REDIRECT);
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonuserstate;  
 use Apache::lonlocal;  
 use HTML::TokeParser;  use HTML::TokeParser;
 use GDBM_File;  use GDBM_File;
   
Line 269  sub handler { Line 267  sub handler {
   my @possibilities=();    my @possibilities=();
    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['postdata']);     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['postdata']);
   if (($env{'form.postdata'})&&($env{'request.course.fn'})) {    if (($env{'form.postdata'})&&($env{'request.course.fn'})) {
       my ($direction,$currenturl) = ($env{'form.postdata'}=~/(\w+)\:(.*)/);        $env{'form.postdata'}=~/(\w+)\:(.*)/;
         my $direction=$1;
       if ($env{'request.course.id'}) {        my $currenturl=$2;
           # 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;  
               }  
           }  
       }  
   
       if ($currenturl=~m|^/enc/|) {        if ($currenturl=~m|^/enc/|) {
   $currenturl=&Apache::lonenc::unencrypted($currenturl);    $currenturl=&Apache::lonenc::unencrypted($currenturl);
       }        }
Line 305  sub handler { Line 282  sub handler {
             
   return REDIRECT;    return REDIRECT;
       }        }
       if ($direction eq 'return') {         if ($direction eq 'return') {
 # -------------------------------------------------------- Return to last known  # -------------------------------------------------------- Return to last known
          my $last;           my $last;
          if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db',           if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db',
Line 328  sub handler { Line 305  sub handler {
             untie %hash;              untie %hash;
          } else {           } else {
     $newloc='/adm/navmaps';      $newloc='/adm/navmaps';
          }           }  
  &Apache::loncommon::content_type($r,'text/html');       &Apache::loncommon::content_type($r,'text/html');
  $r->header_out(Location =>        $r->header_out(Location => 
  &Apache::lonnet::absolute_url().$newloc);      &Apache::lonnet::absolute_url().$newloc);
             
  return REDIRECT;       return REDIRECT;
       }        }
       $currenturl=~s/^https?\:\/\///;        $currenturl=~s/^https?\:\/\///;
       $currenturl=~s/^[^\/]+//;        $currenturl=~s/^[^\/]+//;
Line 350  sub handler { Line 327  sub handler {
          if ($last) {           if ($last) {
      $currenturl=&Apache::lonnet::clutter((&Apache::lonnet::decode_symb($last))[2]);       $currenturl=&Apache::lonnet::clutter((&Apache::lonnet::decode_symb($last))[2]);
  } else {   } else {
      &Apache::loncommon::content_type($r,'text/html');   &Apache::loncommon::content_type($r,'text/html');
      $r->header_out(Location =>    $r->header_out(Location => 
     &Apache::lonnet::absolute_url().   &Apache::lonnet::absolute_url().
     '/adm/noidea.html');   '/adm/noidea.html');
      return REDIRECT;   return REDIRECT;
          }           }
       }        }
 # ------------------------------------------- Do we have any idea where we are?  # ------------------------------------------- Do we have any idea where we are?
Line 412  sub handler { Line 389  sub handler {
       untie(%hash);        untie(%hash);
 # --------------------------------------------------------- Store position info  # --------------------------------------------------------- Store position info
               $cachehash{$startoutmap}{'last_direction'}=[$direction,'notasymb'];                $cachehash{$startoutmap}{'last_direction'}=[$direction,'notasymb'];
               foreach my $thismap (keys(%cachehash)) {                foreach my $thismap (keys %cachehash) {
   my $mapnum=$cachehash{$thismap}->{'mapnum'};    my $mapnum=$cachehash{$thismap}->{'mapnum'};
   delete($cachehash{$thismap}->{'mapnum'});    delete($cachehash{$thismap}->{'mapnum'});
   &Apache::lonnet::symblist($thismap,    &Apache::lonnet::symblist($thismap,
Line 427  sub handler { Line 404  sub handler {
   if ($direction eq 'back') {    if ($direction eq 'back') {
                      &Apache::lonnet::linklog($redirecturl,$currenturl);                       &Apache::lonnet::linklog($redirecturl,$currenturl);
   }    }
 # ------------------------------------- Check for and display critical messages  # ------------------------------------------------- Check for critical messages
                   my ($redirect, $url) = &Apache::loncommon::critical_redirect(300);    if ((time-$env{'user.criticalcheck.time'})>300) {
                   unless ($redirect) {                       my @what=&Apache::lonnet::dump
                       $url=&Apache::lonnet::absolute_url().$redirecturl;                                    ('critical',$env{'user.domain'},
                       $url = &add_get_param($url, { 'symb' => $redirectsymb});                                                $env{'user.name'});
                   }                       if ($what[0]) {
                   &Apache::loncommon::content_type($r,'text/html');                  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);                    $r->header_out(Location => $url);
                   return REDIRECT;                    return REDIRECT;
       } else {        } else {
Line 444  sub handler { Line 432  sub handler {
      'explain' =>       'explain' =>
      'You have reached the end of the sequence of materials.',       'You have reached the end of the sequence of materials.',
      'back' => 'Go Back',       'back' => 'Go Back',
      'nav' => 'Course Contents',       'nav' => 'Navigate Course Content',
      'wherenext' =>       'wherenext' =>
      'There are several possibilities of where to go next',       'There are several possibilities of where to go next',
      'pick' =>       'pick' =>
      'Please click on the the resource you intend to access',       'Please click on the the resource you intend to access',
      'titleheader' => 'Title',       'titleheader' => 'Title',
      'type' => 'Type');       'type' => 'Type');
                   if (&Apache::loncommon::course_type() eq 'Community') {  
                       $lt{'nav'} = &mt('Community Contents');  
                   }  
                   if ($#possibilities>0) {                    if ($#possibilities>0) {
       my $start_page=        my $start_page=
   &Apache::loncommon::start_page('Multiple Resources');    &Apache::loncommon::start_page('Multiple Resources');
Line 483  ENDSTART Line 468  ENDSTART
                           &Apache::loncommon::start_page('No Resource')                            &Apache::loncommon::start_page('No Resource')
                          .'<h2>'.$lt{'title'}.'</h2>'                           .'<h2>'.$lt{'title'}.'</h2>'
                          .'<p>'.$lt{'explain'}.'</p>');                           .'<p>'.$lt{'explain'}.'</p>');
   }                    }
                   $r->print(                    $r->print(
                       &Apache::lonhtmlcommon::actionbox(                        &Apache::lonhtmlcommon::actionbox(
                           ['<a href="/adm/flip?postdata=return:">'.$lt{'back'}.'</a></li>',                            ['<a href="/adm/flip?postdata=return:">'.$lt{'back'}.'</a></li>',

Removed from v.1.80.8.7  
changed lines
  Added in v.1.82


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>