Diff for /rat/lonpageflip.pm between versions 1.80.8.9 and 1.80.8.10

version 1.80.8.9, 2016/08/05 21:48:38 version 1.80.8.10, 2018/09/10 19:17:39
Line 255  sub first_accessible_resource { Line 255  sub first_accessible_resource {
     }      }
 }  }
   
   sub reinited_js {
       my ($url,$cid,$timeout) = @_;
       if (!$timeout) {
           $timeout = 0;
       }
       return <<"END";
   <script type="text/javascript">
   // <![CDATA[
   setTimeout(function() {
       var newurl = '$url';
       if (document.getElementById('LC_update_$cid')) {
           document.getElementById('LC_update_$cid').style.display = 'none';
       }
       if ((newurl !== null) && (newurl !== '') && (newurl !== 'undefined')) {
           window.location.href = "$url";
       }
   }, $timeout);
   // ]]>
   </script>
   END
   }
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
   
 sub handler {  sub handler {
Line 271  sub handler { Line 293  sub handler {
   my %cachehash=();     my %cachehash=(); 
   my $multichoice=0;    my $multichoice=0;
   my %multichoicehash=();    my %multichoicehash=();
     my %prog_state=(); 
   my ($redirecturl,$redirectsymb,$enc,$anchor);    my ($redirecturl,$redirectsymb,$enc,$anchor);
   my $next='';    my $next='';
   my @possibilities=();    my @possibilities=();
Line 311  sub handler { Line 334  sub handler {
                       untie(%hash);                        untie(%hash);
                   }                    }
               }                }
                 &Apache::loncommon::content_type($r,'text/html');
                 $r->send_http_header;
                 $r->print(&Apache::loncommon::start_page('Content Changed'));
                 my $preamble = '<div id="LC_update_'.$env{'request.course.id'}.'" class="LC_info">'.
                                '<br />'.
                                &mt('Your course session is being updated because of recent changes by course personnel.').
                                ' '.&mt('Please be patient.').'<br /></div>'.
                                '<div style="padding:0;clear:both;margin:0;border:0"></div>';
                 %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");                my ($furl,$ferr) = &Apache::lonuserstate::readmap("$cdom/$cnum");
                 &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,&mt('Finished'));
               if ($ferr) {                if ($ferr) {
                     &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
                   my $requrl = $r->uri;                    my $requrl = $r->uri;
                   $env{'user.error.msg'}="$requrl:bre:0:0:Course not initialized";                    $env{'user.error.msg'}="$requrl:bre:0:0:Course not initialized";
                   $env{'user.reinit'} = 1;                    $env{'user.reinit'} = 1;
Line 329  sub handler { Line 364  sub handler {
       }        }
       if ($direction eq 'firstres') {        if ($direction eq 'firstres') {
   my $furl=&first_accessible_resource();    my $furl=&first_accessible_resource();
   &Apache::loncommon::content_type($r,'text/html');            $furl=&Apache::lonnet::absolute_url().$furl;
   $r->header_out(Location =>             if ($reinitcheck eq 'update') {
  &Apache::lonnet::absolute_url().$furl);                &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
                      $r->print(&reinited_js($furl,$env{'request.course.id'},100));
   return REDIRECT;                $r->print(&Apache::loncommon::end_page());
                 return OK;
             } else {
         &Apache::loncommon::content_type($r,'text/html');
         $r->header_out(Location => $furl);
         return REDIRECT;
             }
       }        }
       if ($direction eq 'return') {         if ($direction eq 'return') { 
 # -------------------------------------------------------- Return to last known  # -------------------------------------------------------- Return to last known
Line 352  sub handler { Line 393  sub handler {
          } else {           } else {
     $newloc='/adm/navmaps';      $newloc='/adm/navmaps';
          }           }
  &Apache::loncommon::content_type($r,'text/html');           $newloc=&Apache::lonnet::absolute_url().$newloc;
  $r->header_out(Location =>            if ($reinitcheck eq 'update') {
  &Apache::lonnet::absolute_url().$newloc);               $r->print(&reinited_js($newloc,$env{'request.course.id'},100));
                     $r->print(&Apache::loncommon::end_page());
  return REDIRECT;               return OK;
            } else {
                &Apache::loncommon::content_type($r,'text/html');
                $r->header_out(Location => $newloc);
                return REDIRECT;
            }
       }        }
 #  #
 # Is the current URL on the map? If not, start with last known URL  # Is the current URL on the map? If not, start with last known URL
Line 370  sub handler { Line 416  sub handler {
              $last=$hash{'last_known'};               $last=$hash{'last_known'};
              untie(%hash);               untie(%hash);
          }           }
          my $newloc;  
          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');               my $newloc = &Apache::lonnet::absolute_url().
      $r->header_out(Location =>                             '/adm/navmaps';
     &Apache::lonnet::absolute_url().               if ($reinitcheck eq 'update') {
     '/adm/navmaps');                   &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
      return REDIRECT;                   $r->print(&reinited_js($newloc,$env{'request.course.id'},100));
                    $r->print(&Apache::loncommon::end_page());
                    return OK;
                } else {
                    &Apache::loncommon::content_type($r,'text/html');
            $r->header_out(Location => $newloc);
            return REDIRECT;
                }
          }           }
       }        }
 # ------------------------------------------- Do we have any idea where we are?  # ------------------------------------------- Do we have any idea where we are?
Line 470  sub handler { Line 522  sub handler {
                           $url .= $anchor;                            $url .= $anchor;
                       }                        }
                   }                    }
                   &Apache::loncommon::content_type($r,'text/html');                    if ($reinitcheck eq 'update') {
                   $r->header_out(Location => $url);                        &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
                   return REDIRECT;                        $r->print(&reinited_js($url,$env{'request.course.id'},100));
                         $r->print(&Apache::loncommon::end_page());
                         return OK;
                     } else {
                         &Apache::loncommon::content_type($r,'text/html');
                         $r->header_out(Location => $url);
                         return REDIRECT;
                     }
       } else {        } else {
 # --------------------------------------------------------- There was a problem  # --------------------------------------------------------- There was a problem
                   &Apache::loncommon::content_type($r,'text/html');                    &Apache::loncommon::content_type($r,'text/html');
Line 555  ENDSTART Line 614  ENDSTART
       }        }
   } else {    } else {
 # ------------------------------------------------- Problem, could not tie hash  # ------------------------------------------------- Problem, could not tie hash
                 if ($reinitcheck eq 'update') {
                     &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
                     $r->print(&Apache::loncommon::end_page());
                 }
               $env{'user.error.msg'}="/adm/flip:bre:0:1:Course Data Missing";                $env{'user.error.msg'}="/adm/flip:bre:0:1:Course Data Missing";
               return HTTP_NOT_ACCEPTABLE;                 return HTTP_NOT_ACCEPTABLE; 
           }            }
       } else {        } else {
 # ---------------------------------------- No, could not determine where we are  # ---------------------------------------- No, could not determine where we are
   $r->internal_redirect('/adm/ambiguous');            my $newloc = '/adm/ambiguous';
             if ($reinitcheck eq 'update') {
                 &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
                 $r->print(&reinited_js($newloc,$env{'request.course.id'},100));
                 $r->print(&Apache::loncommon::end_page());
             } else {
         $r->internal_redirect($newloc);
             }
           return OK;            return OK;
       }        }
   } else {    } else {

Removed from v.1.80.8.9  
changed lines
  Added in v.1.80.8.10


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