Diff for /rat/lonwrapper.pm between versions 1.49.2.7.2.2 and 1.70

version 1.49.2.7.2.2, 2020/02/17 01:31:20 version 1.70, 2020/01/14 14:26:39
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 Apache::lonhomework();
 use LONCAPA qw(:DEFAULT :match);  use LONCAPA qw(:DEFAULT :match);
 use HTML::Entities();  use HTML::Entities();
   
Line 50  sub wrapper { Line 51  sub wrapper {
     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 89  sub wrapper { Line 89  sub wrapper {
         $args->{'only_body'} = $env{'form.only_body'};          $args->{'only_body'} = $env{'form.only_body'};
     }      }
   
     my $headjs;      my ($countdown,$donemsg);
       if (($exttool) && (&Apache::lonnet::EXT('resource.0.gradable') =~ /^yes$/i)) {
 #          $Apache::lonhomework::browse = &Apache::lonnet::allowed('bre',$url);
 # Where iframe is in use, if window.onload() executes before the custom resize function          if ($env{'form.markaccess'}) {
 # has been defined (jQuery), two global javascript vars (LCnotready and LCresizedef)              my $symb=&Apache::lonnet::symbread($url);
 # are used to ensure document.ready() triggers a call to resize, so the iframe contents              my @interval=&Apache::lonnet::EXT('resource.0.interval',$symb);
 # do not obscure the Functions menu.              my ($timelimit) = split(/_/,$interval[0]);
 #              my $setres = &Apache::lonnet::set_first_access($interval[1],$timelimit);
               if ($setres eq 'ok') {
     unless (($env{'browser.mobile'}) || ($exttool eq 'window') || ($exttool eq 'tab') || $uselink) {                  delete($env{'form.markaccess'});
         $headjs = '              }
           } elsif ($env{'form.LC_interval_done'} eq 'true') {
               my $symb=&Apache::lonnet::symbread($url);
               if ($symb) {
                   (my $donebuttonresult,$donemsg) = &Apache::lonhomework::zero_timer($symb);
                   undef($env{'form.LC_interval_done'});
                   undef($env{'form.LC_interval_done_proctorpass'});
               }
           }
           my ($status,$result,$resource_due) =
               &Apache::lonexttool::gradabletool_access_check();
           undef($Apache::lonhomework::browse);
           if ($status eq 'CAN_ANSWER') {
               if ($resource_due) {
                   my $time_left = $resource_due - time();
                   if ($resource_due && ($time_left > 0)) {
                       $countdown ='
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  // <![CDATA['."\n".
 var LCnotready = 0;                               &Apache::lonhtmlcommon::countdown().'
 var LCresizedef = 0;  
 // ]]>  // ]]>
 </script>'."\n";  </script>'."\n".
                       &Apache::lonhtmlcommon::set_due_date($resource_due);
                   }
               }
           } else {
               if ($status eq 'SHOW_ANSWER') {
                   $result = &Apache::lonexttool::display_score().
                             &Apache::lonfeedback::list_discussion('tool','OPEN');
               }
               return &Apache::loncommon::start_page('Menu',undef,$args).
                      $result.
                      &Apache::loncommon::end_page();
           }
     }      }
   
     my $startpage = &Apache::loncommon::start_page('Menu',$headjs,$args);      my $startpage = &Apache::loncommon::start_page('Menu',undef,$args).$countdown.$donemsg;
     my $endpage = &Apache::loncommon::end_page();      my $endpage = &Apache::loncommon::end_page();
   
     if (($uselink) && ($title eq '')) {      if (($uselink) && ($title eq '')) {
Line 167  ENDLINK Line 194  ENDLINK
             if ($explanation ne '') {              if ($explanation ne '') {
                 $output .= '<div>'.$explanation.'</div>';                  $output .= '<div>'.$explanation.'</div>';
             }              }
               if (&Apache::lonnet::EXT('resource.0.gradable')) {
                   $output .= &Apache::lonfeedback::list_discussion('tool','OPEN');
               }
         } else {          } else {
             if ($uselink) {              if ($uselink) {
                 $linktext = &mt('Link to resource');                  $linktext = &mt('Link to resource');
Line 213  ENDLINK Line 243  ENDLINK
                 var pos = height + hdrtop + offset;                  var pos = height + hdrtop + offset;
                 \$('.LC_iframecontainer').css('top', pos);                  \$('.LC_iframecontainer').css('top', pos);
             });              });
             LCresizedef = 1;  
             if (LCnotready == 1) {  
                 LCnotready = 0;  
                 \$(window).trigger('resize');  
             }  
         });          });
         window.onload = function(){          window.onload = function(){  \$(window).trigger('resize') };
             if (LCresizedef) {  
                 LCnotready = 0;  
                 \$(window).trigger('resize');  
             } else {  
                 LCnotready = 1;  
             }  
         };  
 SCRIPT  SCRIPT
         # javascript will position the iframe if window was resized (or zoomed)          # javascript will position the iframe if window was resized (or zoomed)
         my $dest = &HTML::Entities::encode($url.$anchor,'&<>"');          my $dest = &HTML::Entities::encode($url.$anchor,'&<>"');
Line 274  sub handler { Line 292  sub handler {
   
     for ($url){      for ($url){
         s|^/adm/wrapper||;          s|^/adm/wrapper||;
         $is_ext = $_ =~ s|^/ext/|http://|;          $is_ext = $_ =~ s|^/ext/|http://|;         
         s|http://https://?|https://| if ($is_ext);          s|http://https://|https://|;
         s|&colon;|:|g;          s|&colon;|:|g;
     }      }
   
Line 409  described at http://www.lon-capa.org. Line 427  described at http://www.lon-capa.org.
   
 =over  =over
   
 =item wrapper($r,$url,$brcrum,$absolute,$is_ext,$is_pdf,$exttool,$linktext,$explanation,$title,$width,$height)  =item wrapper($r,$url,$brcrum,$absolute,$is_ext,$is_pdf,$linktext,$explanation,$title,$width,$height)
   
 =over  =over
   

Removed from v.1.49.2.7.2.2  
changed lines
  Added in v.1.70


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