Diff for /loncom/interface/lonextresedit.pm between versions 1.8 and 1.8.2.4

version 1.8, 2015/06/09 21:22:56 version 1.8.2.4, 2019/07/30 19:53:22
Line 201  sub process_changes { Line 201  sub process_changes {
 }  }
   
 sub extedit_form {  sub extedit_form {
     my ($supplementalflag,$residx,$orig_url,$orig_title,$pathitem,$helpitem,$caller,$symb) = @_;      my ($supplementalflag,$residx,$orig_url,$orig_title,$pathitem,$helpitem,$caller,$symb,$disabled) = @_;
     my %lt = &Apache::lonlocal::texthash(      my %lt = &Apache::lonlocal::texthash(
         ex => 'External Resource',          ex => 'External Resource',
         ed => 'Edit',          ed => 'Edit',
Line 229  sub extedit_form { Line 229  sub extedit_form {
         $fieldsetstyle,$action,$hiddenelem,$form);          $fieldsetstyle,$action,$hiddenelem,$form);
     $fieldsetstyle = 'display: none;';      $fieldsetstyle = 'display: none;';
     $action = '/adm/coursedocs';      $action = '/adm/coursedocs';
       my $protocol = ($ENV{'SERVER_PORT'} == 443?'https':'http');
     if ($residx) {      if ($residx) {
         if ($caller eq 'direct') {          if ($caller eq 'direct') {
             $fieldsetstyle = 'display: block;';              $fieldsetstyle = 'display: block;';
Line 252  sub extedit_form { Line 253  sub extedit_form {
         $urlid = "exturl_$residx";          $urlid = "exturl_$residx";
         $srcclass = ' class="LC_nobreak"';          $srcclass = ' class="LC_nobreak"';
         $extsrc = '<span class="LC_docs_ext_edit">'.$lt{'ul'}.'&nbsp;</span>';          $extsrc = '<span class="LC_docs_ext_edit">'.$lt{'ul'}.'&nbsp;</span>';
         $preview = '&nbsp;<a class="LC_docs_ext_edit" href="javascript:extUrlPreview('."'$urlid'".');">'.$lt{'pr'}.'</a>';          $preview = '&nbsp;<a class="LC_docs_ext_edit" href="javascript:extUrlPreview('."'$urlid','$protocol'".');">'.$lt{'pr'}.'</a>';
         $title = '<span class="LC_docs_ext_edit">'.$lt{'ti'}.'&nbsp;</span>';          $title = '<span class="LC_docs_ext_edit">'.$lt{'ti'}.'&nbsp;</span>';
         $save = $lt{'sv'};          $save = $lt{'sv'};
     } else {      } else {
Line 263  sub extedit_form { Line 264  sub extedit_form {
         $residx = 0;          $residx = 0;
         $orig_url = 'http://';          $orig_url = 'http://';
         $orig_title = $lt{'ex'};          $orig_title = $lt{'ex'};
         $preview = '<input type="button" name="view" value="'.$lt{'pr'}.'" onclick="javascript:extUrlPreview('."'$urlid'".');" />';          $preview = '<input type="button" name="view" value="'.$lt{'pr'}.'" onclick="javascript:extUrlPreview('."'$urlid','$protocol'".');"'.$disabled.' />';
         $save = $lt{'al'};          $save = $lt{'al'};
         $pathitem .= '<br />';          $pathitem .= '<br />';
     }      }
Line 274  $legend Line 275  $legend
 $active  $active
 <span$srcclass>  <span$srcclass>
 $extsrc  $extsrc
 <input type="text" size="$size" name="exturl" id="$urlid" value="$orig_url" />  <input type="text" size="$size" name="exturl" id="$urlid" value="$orig_url" $disabled />
 $preview  $preview
 </span>   </span> 
 <br />  <br />
 <span$srcclass>  <span$srcclass>
 $title  $title
 <input type="text" size="$size" name="exttitle" value="$orig_title" />  <input type="text" size="$size" name="exttitle" value="$orig_title" $disabled />
 <input type="hidden" name="importdetail" value="" />  <input type="hidden" name="importdetail" value="" />
 $pathitem  $pathitem
 $hiddenelem  $hiddenelem
 <input type="button" value="$save" onclick="javascript:setExternal(this.form,'$residx');" />  <input type="button" value="$save" onclick="javascript:setExternal(this.form,'$residx');" $disabled />
 </span>  </span>
 </fieldset>  </fieldset>
 </form>  </form>
Line 297  ENDFORM Line 298  ENDFORM
 }  }
   
 sub display_editor {  sub display_editor {
     my ($url,$folderpath,$symb,$idx) = @_;      my ($url,$folderpath,$symb,$idx,$type,$cdom,$cnum,$hostname) = @_;
     my ($residx,$supplementalflag,$title,$pathitem,$output);      my ($residx,$supplementalflag,$title,$pathitem,$output,$js,$navmap);
     if ($folderpath =~ /^supplemental/) {      if ($folderpath =~ /^supplemental/) {
         $supplementalflag = 1;          $supplementalflag = 1;
         $residx = $idx;          $residx = $idx;
Line 308  sub display_editor { Line 309  sub display_editor {
         (my $map,$residx,my $res) =          (my $map,$residx,my $res) =
             &Apache::lonnet::decode_symb($symb);              &Apache::lonnet::decode_symb($symb);
         $title = &Apache::lonnet::gettitle($symb);          $title = &Apache::lonnet::gettitle($symb);
         my $path = &Apache::loncommon::symb_to_docspath($symb);          my $path = &Apache::loncommon::symb_to_docspath($symb,\$navmap);
         $pathitem = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($path,'<>&"').'" />';          $pathitem = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($path,'<>&"').'" />';
     }      }
     my $js = &Apache::lonhtmlcommon::scripttag(&extedit_javascript());      $js = &Apache::lonhtmlcommon::scripttag(&extedit_javascript());
     my $args = { 'force_register' => $env{'form.register'} };      my $args = { 'force_register' => $env{'form.register'} };
       if ($hostname) {
           $args->{'hostname'} = $hostname;
       }
     return &Apache::loncommon::start_page('External Resource Editor',$js,$args).      return &Apache::loncommon::start_page('External Resource Editor',$js,$args).
            '<div class="LC_left_float">'.             '<div class="LC_left_float">'.
            &extedit_form($supplementalflag,$residx,$url,$title,$pathitem,undef,'direct',$symb).             &extedit_form($supplementalflag,$residx,$url,$title,$pathitem,undef,'direct',$symb).
Line 324  sub extedit_javascript { Line 328  sub extedit_javascript {
     my %js_lt = &Apache::lonlocal::texthash(      my %js_lt = &Apache::lonlocal::texthash(
         invurl  => 'Invalid URL',          invurl  => 'Invalid URL',
         titbl   => 'Title is blank',          titbl   => 'Title is blank',
           mixfra  => 'Show preview in pop-up? (http in https page + no framing)',
           mixonly => 'Show preview in pop-up? (http in https page)',
           fraonly => 'Show preview in pop-up? (framing disallowed)',
           nopopup => 'Pop-up blocked',
           nopriv  => 'Insufficient privileges to use preview',
           badurl  => 'URL is not: http://hostname/path or https://hostname/path',
     );      );
     &js_escape(\%js_lt);      &js_escape(\%js_lt);
   
Line 374  function editext(residx) { Line 384  function editext(residx) {
     return;      return;
 }  }
   
 function extUrlPreview(caller) {  function extUrlPreview(caller,protocol) {
     if (document.getElementById(caller)) {      if (document.getElementById(caller)) {
         var url = document.getElementById(caller).value;          var url = document.getElementById(caller).value;
         if (regexp.test(url)) {          if (regexp.test(url)) {
             openMyModal(url,500,400,'yes');              var http_regex = /^http\:\/\//gi;
               var mixed = 0;
               var noiframe = 0;
               var nopriv = 0;
               var badurl = 0;
               var name = "externalpreview";
               if ((protocol == 'https') && (http_regex.test(url))) {
                   mixed = 1;
               }
               var http = new XMLHttpRequest();
               var lcurl = "/adm/exturlcheck";
               var params = "exturl="+url;
               http.open("POST",lcurl, true);
               http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
               http.onreadystatechange = function() {
                   if (http.readyState == 4) {
                       if (http.status == 200) {
                           if (http.responseText.length > 0) {
                               if (http.responseText == 1) {
                                   noiframe = 1;
                               } else if (http.responseText == -1) {
                                   nopriv = 1;
                               } else if (http.responseText == 0) {
                                   badurl = 1;
                               }
                           }
                           openPreviewWindow(url,name,noiframe,mixed,nopriv,badurl);
                       }
                   }
               }
               http.send(params);
         } else {          } else {
             alert("$js_lt{'invurl'}");              alert("$js_lt{'invurl'}");
         }          }
     }      }
 }  }
   
   var previewLCWindow = null;
   function openPreviewWindow(url,name,noiframe,mixed,nopriv,badurl) {
       if (previewLCWindow !=null) {
           previewLCWindow.close();
       }
       if (badurl) {
           alert("$js_lt{'badurl'}");
       } else if (nopriv) {
           alert("$js_lt{'nopriv'}");
       } else if ((noiframe == 1) || (mixed == 1)) {
           var encurl = encodeURI(url);
           var msg;
           if (mixed == 1) {
               if (noiframe == 1) {
                   msg = "$js_lt{'mixfra'}";
               } else {
                   msg = "$js_lt{'mixonly'}";
               }
           } else {
               msg = "$js_lt{'fraonly'}";
           }
           if (confirm(msg)) {
               previewLCWindow = window.open(url,name,"height=400,width=500,scrollbars=1,resizable=1,menubar=0,location=1");
               if (previewLCWindow != null) {
                   previewLCWindow.focus();
               } else {
                   alert("$js_lt{'nopopup'}");
               }
           }
       } else {
           openMyModal(url,500,400,'yes');
       }
   }
   
 ENDJS  ENDJS
   
 }  }

Removed from v.1.8  
changed lines
  Added in v.1.8.2.4


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