Diff for /rat/lonwrapper.pm between versions 1.49.2.4.2.1 and 1.55

version 1.49.2.4.2.1, 2017/06/22 02:11:30 version 1.55, 2016/11/30 16:02:27
Line 38  use Apache::loncommon(); Line 38  use Apache::loncommon();
 use Apache::lonhtmlcommon();  use Apache::lonhtmlcommon();
 use Apache::lonextresedit();  use Apache::lonextresedit();
 use Apache::lonexttool();  use Apache::lonexttool();
 use LONCAPA qw(:DEFAULT :match);  use LONCAPA qw(:DEFAULT :match);;
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
 sub wrapper {  sub wrapper {
     my ($url,$brcrum,$absolute,$is_ext,$is_pdf,$exttool,$linktext,$explanation,      my ($url,$brcrum,$absolute,$is_ext,$is_pdf,$exttool,$title) = @_;
         $title,$width,$height) = @_;  
   
     my $forcereg;      my $forcereg;
     unless ($env{'form.folderpath'}) {      unless ($env{'form.folderpath'}) {
         $forcereg = 1;          $forcereg = 1;
     }      }
   
     my %lt = &Apache::lonlocal::texthash(      my %lt = &Apache::lonlocal::texthash(
                                           'noif' => 'No iframe support.',                                            'noif' => 'No iframe support.',
                                           'show' => 'Show content in pop-up window',                                            'show' => 'Show content in pop-up window',
Line 76  sub wrapper { Line 74  sub wrapper {
         $args->{'bread_crumbs'} = $brcrum;          $args->{'bread_crumbs'} = $brcrum;
     }      }
     if ($absolute) {      if ($absolute) {
         $args->{'use_absolute'} = $absolute;          $args->{'use_absolute'} = $absolute; 
     }  
     if ($env{'form.only_body'}) {  
         $args->{'only_body'} = $env{'form.only_body'};  
     }      }
   
     my $startpage = &Apache::loncommon::start_page('Menu',undef,$args);      my $startpage = &Apache::loncommon::start_page('Menu',undef,$args);
     my $endpage = &Apache::loncommon::end_page();      my $endpage = &Apache::loncommon::end_page();
       
     if (($env{'browser.mobile'}) || ($exttool eq 'window') || ($exttool eq 'tab')) {      if (($env{'browser.mobile'}) || ($exttool eq 'window')) {
         my $output = $startpage;          my $output = $startpage;
         if ($is_pdf) {          if ($is_pdf) {
             if ($title eq '') {              if ($title eq '') {
Line 101  sub wrapper { Line 96  sub wrapper {
                 $output .= $title.'<br />';                  $output .= $title.'<br />';
             }              }
             $output .= '<a href="'.$url.'">'.&mt('Link to PDF (for mobile devices)').'</a>';              $output .= '<a href="'.$url.'">'.&mt('Link to PDF (for mobile devices)').'</a>';
         } elsif (($exttool eq 'window') || ($exttool eq 'tab')) {          } elsif ($exttool eq 'window') {
             if ($linktext eq '') {              $output .= '<div>'.
                 $linktext = &mt('Launch External Tool');                         '<a href="'.$url.'" target="LC_LTI" style="padding:0;clear:both;margin:0;border:0">'.
             }                         &mt('Launch External Tool').'</a>'.
             if ($exttool eq 'tab') {                         '</div>';
                 $output .= '<div>'.  
                            '<a href="'.$url.'" target="LCExternalToolTab" style="padding:0;clear:both;margin:0;border:0">'.  
                            $linktext.'</a>'.  
                            '</div>';  
             } else {  
                 $output .= <<"ENDLINK";  
 <script type="text/javascript">  
 // <![CDATA[  
 var windowObjectReference = null;  
 var PreviousUrl;  
   
 function openSinglePopup(strUrl) {  
     if (windowObjectReference == null || windowObjectReference.closed) {  
         windowObjectReference = window.open(strUrl, "LCExternalToolPopUp",  
                                             "height=$height,width=$width,scrollbars=yes,resizable=yes,status=yes,menubar=no,location=no'");  
     } else if(PreviousUrl != strUrl) {  
         windowObjectReference = window.open(strUrl, "LCExternalToolPopUp",  
                                             "height=$height,width=$width,scrollbars=yes,resizable=yes,status=yes,menubar=no,location=no'");  
         windowObjectReference.focus();  
     } else {  
         windowObjectReference.focus();  
     };  
     PreviousUrl = strUrl;  
 }  
 // ]]>  
 </script>  
 <div>  
 <a href="$url" target="LCExternalToolPopUp" onclick="openSinglePopup(this.href); return false;">  
 $linktext</a>  
 </div>  
 ENDLINK  
             }  
             if ($explanation ne '') {  
                 $output .= '<div>'.$explanation.'</div>';  
             }  
         } else {          } else {
             $output .= '<div style="overflow:scroll; -webkit-overflow-scrolling:touch;">'."\n".              $output .= '<div style="overflow:scroll; -webkit-overflow-scrolling:touch;">'."\n".
                        '<iframe src="'.$url.$anchor.'" height="100%" width="100%" frameborder="0">'."\n".                         '<iframe src="'.$url.$anchor.'" height="100%" width="100%" frameborder="0">'."\n".
Line 201  sub handler { Line 161  sub handler {
     return OK if $r->header_only;      return OK if $r->header_only;
   
     my $url = $r->uri;      my $url = $r->uri;
     my ($is_ext,$brcrum,$absolute,$is_pdf,$exttool,$cdom,$cnum,      my ($is_ext,$brcrum,$absolute,$is_pdf,$exttool,$cdom,$cnum);
         $linktext,$explanation,$width,$height);   
   
     for ($url){      for ($url){
         s|^/adm/wrapper||;          s|^/adm/wrapper||;
Line 211  sub handler { Line 170  sub handler {
         s|&colon;|:|g;                        s|&colon;|:|g;              
     }      }
   
   
     if ($url =~ /\.pdf$/i) {      if ($url =~ /\.pdf$/i) {
         $is_pdf = 1;          $is_pdf = 1;
     } elsif ($url =~ m{^/adm/($match_domain)/($match_courseid)/(\d+)/ext\.tool$}) {      } elsif ($url =~ m{^/adm/($match_domain)/($match_courseid)/(\d+)/exttools?$}) {
         $cdom = $1;          $cdom = $1;
         $cnum = $2;          $cnum = $2;
         my $marker = $3;          my $marker = $3;
         $exttool = 'iframe';          $exttool = 'iframe';
         my $exttoolremote;          my %toolhash = &Apache::lonnet::get('exttool_'.$marker,['target'],$cdom,$cnum);
         my %toolhash = &Apache::lonnet::get('exttool_'.$marker,['target','linktext','explanation','id','width','height'],  
                                             $cdom,$cnum);  
         if ($toolhash{'id'}) {  
             my %ltitools = &Apache::lonnet::get_domain_ltitools($cdom);  
             if (ref($ltitools{$toolhash{'id'}}) eq 'HASH') {  
                 $exttoolremote = $ltitools{$toolhash{'id'}}{'url'};  
             }  
         }  
         if ($toolhash{'target'} eq 'window') {          if ($toolhash{'target'} eq 'window') {
             $exttool = 'window';             $exttool = 'window'; 
             $width = $toolhash{'width'};  
             $height = $toolhash{'height'};  
         } elsif ($toolhash{'target'} eq 'tab') {  
             $exttool = 'tab';  
         }  
         if (($exttool eq 'window') || ($exttool eq 'tab')) {  
             $linktext = $toolhash{'linktext'};  
             $explanation = $toolhash{'explanation'};  
         } elsif (($exttoolremote =~ /^http:/) && ($ENV{'SERVER_PORT'} == 443)) {  
             $exttool = 'tab';  
         }          }
     }      }
   
     if (($is_ext) || ($exttool)) {      if (($is_ext) || ($exttool)) {
         &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},          &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
             ['forceedit','register','folderpath','symb','idx','title','anchor']);              ['forceedit','register','folderpath','symb','idx','title','anchor']);
Line 260  sub handler { Line 201  sub handler {
                 }                  }
             }              }
             my $type = 'ext';              my $type = 'ext';
               my %ltitools;
             if ($exttool) {              if ($exttool) {
                 $type = 'tool';                  $type = 'tool';
                   %ltitools = &Apache::lonnet::get_domain_ltitools($cdom);
             }              }
             $r->print(              $r->print(
                 &Apache::lonextresedit::display_editor($url,$env{'form.folderpath'},                  &Apache::lonextresedit::display_editor($url,$env{'form.folderpath'},
                                                        $env{'form.symb'},                                                         $env{'form.symb'},
                                                        $env{'form.idx'},$type,$cdom,                                                         $env{'form.idx'},$type,$cdom,
                                                        $cnum));                                                         $cnum,\%ltitools));
             return OK;              return OK;
         } elsif ($env{'form.folderpath'} =~ /^supplemental/) {          } elsif ($env{'form.folderpath'} =~ /^supplemental/) {
             my $crstype = &Apache::loncommon::course_type();              my $crstype = &Apache::loncommon::course_type();
             my $title = $env{'form.title'};              my $title = $env{'form.title'};
             if ($title eq '') {              if ($title eq '') {
                 $title = &mt('External Resource');                  if ($is_ext) {
                       $title = &mt('External Resource');
                   } else {
                       $title = &mt('External Tool');
                   }
             }              }
             $brcrum =              $brcrum =
                 &Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1);                  &Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1);
Line 283  sub handler { Line 230  sub handler {
 #  #
 # Actual URL  # Actual URL
 #  #
     if (($url=~/$LONCAPA::assess_re/) && (!$exttool)) {      if ($url=~/$LONCAPA::assess_re/) {
 #  #
 # This is uploaded homework  # This is uploaded homework
 #  #
Line 304  sub handler { Line 251  sub handler {
         }          }
   
         # encrypt url if not external          # encrypt url if not external
         unless ($is_ext) {          unless ($is_ext || $exttool) {
             &Apache::lonenc::check_encrypt(\$url);              &Apache::lonenc::check_encrypt(\$url);
         }          }
   
         $r->print( wrapper($url,$brcrum,$absolute,$is_ext,$is_pdf,$exttool,          $r->print( wrapper($url,$brcrum,$absolute,$is_ext,$is_pdf,$exttool) );
                            $linktext,$explanation,undef,$width,$height) );  
   
     } # not just the menu      } # not just the menu
           
Line 336  described at http://www.lon-capa.org. Line 282  described at http://www.lon-capa.org.
   
 =over  =over
   
 =item wrapper($url,$brcrum,$absolute,$is_ext,$is_pdf,$exttool,$title))  =item wrapper($url,$brcrum,$absolute,$is_ext,$is_pdf,$title))
   
 =over  =over
   

Removed from v.1.49.2.4.2.1  
changed lines
  Added in v.1.55


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.