--- loncom/interface/lonextresedit.pm 2023/07/05 18:10:06 1.8.2.4.4.1 +++ loncom/interface/lonextresedit.pm 2017/11/30 14:41:20 1.21 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: lonextresedit.pm,v 1.8.2.4.4.1 2023/07/05 18:10:06 raeburn Exp $ +# $Id: lonextresedit.pm,v 1.21 2017/11/30 14:41:20 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -258,6 +258,7 @@ sub process_changes { sub update_exttool { my ($marker,$cdom,$cnum,$args) = @_; + my %toolhash=&Apache::lonnet::dump('exttool_'.$marker,$cdom,$cnum); my (%newhash,$changed,@deleted,$errormsg); ($newhash{'target'},$newhash{'width'},$newhash{'height'},$newhash{'linktext'},$newhash{'explanation'}, $newhash{'crslabel'},$newhash{'crstitle'},$newhash{'crsappend'}) = split(/:/,$args); @@ -343,7 +344,7 @@ sub extedit_form { 'crstitlediv','crslabeldiv','crsappenddiv', 'crstitle','crslabel','crsappend','windiv', 'linktextdiv','explanationdiv','linktext', - 'explanation','providerurl'); + 'explanation','providerurl'); $dispdivstyle = 'display:none'; $dimendivstyle = 'display:none'; $windivstyle = 'display:none'; @@ -374,9 +375,9 @@ sub extedit_form { $rows = 10; $cols = 45; if ($type eq 'tool') { - $legend = $lt{'te'}; - } else { $legend = $lt{'ee'}; + } else { + $legend = $lt{'te'}; } $legend = ''.$legend.''; if ($symb) { @@ -562,7 +563,7 @@ sub extedit_form { '
'. ''.&mt('Append to URL[_1]', ' ('.$providerurl.')
'). - '

'. + '
'. '
'; } my $chooser = $toolelem; @@ -655,7 +656,7 @@ sub extedit_javascript { " var ltitoolsLink = new Array($num);\n". " var ltitoolsExplain = new Array($num);\n". " var ltitoolsLabel = new Array($num);\n". - " var ltitoolsTitle = new Array($num);\n". + " var ltitoolsTitle = new Array($num);\n"; " var ltitoolsAppend = new Array($num);\n"; my $i = 0; foreach my $key (sort { $a <=> $b } keys(%{$toolsref})) { @@ -672,7 +673,6 @@ sub extedit_javascript { } else { $providerurl = $toolsref->{$key}->{'url'}; } - $providerurl = &LONCAPA::map::qtunescape($providerurl); $toolsjs .= ' ltitools['.$i.'] = '."'$key';\n". ' ltitoolsTarget['.$i.'] = '."'$target';\n". ' ltitoolsWidth['.$i.'] = '."'$width';\n". @@ -695,6 +695,7 @@ sub extedit_javascript { my $append = $toolsref->{$key}->{'crsconf'}->{'append'}; $toolsjs .= ' ltitoolsAppend['.$i.'] = '."'$append';\n"; } + $i++; } } @@ -702,12 +703,6 @@ sub extedit_javascript { my %js_lt = &Apache::lonlocal::texthash( invurl => 'Invalid URL', 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', invtool => 'Please select an external tool', ); &js_escape(\%js_lt); @@ -824,7 +819,7 @@ function setExternal(extform,residx,type if (residx > 0) { labelinput += '_'+residx; titleinput += '_'+residx; - appendinput += '_'+residx; + appendinput += '_'+residx; } if (document.getElementById(labelinput)) { var crslabel = document.getElementById(labelinput).value; @@ -875,73 +870,14 @@ function extUrlPreview(caller,protocol) var url = document.getElementById(caller).value; if (regexp.test(url)) { 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 { - 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'}"; + window.open(url,"externalpreview","height=400,width=500,scrollbars=1,resizable=1,menubar=0,location=1"); } else { - msg = "$js_lt{'mixonly'}"; + openMyModal(url,500,400,'yes'); } } 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'}"); - } + alert("$js_lt{'invurl'}"); } - } else { - openMyModal(url,500,400,'yes'); } } @@ -1082,13 +1018,13 @@ function updateExttool(caller,form,suppl document.getElementById(appenddiv).style.display = 'inline'; if (document.getElementById(providerurl)) { if ((ltitoolsUrl[j] != '') && (ltitoolsUrl[j] != null)) { - document.getElementById(providerurl).innerHTML = ' ('+ltitoolsUrl[j]+')
'; + document.getElementById(providerurl).innerHTML.value = ' ('+ltitoolsUrl[j]+')
'; } } } else { document.getElementById(appenddiv).style.display = 'none'; if (document.getElementById(providerurl)) { - document.getElementById(providerurl).innerHTML = ''; + document.getElementById(providerurl).innerHTML.value = ''; } } }