-
+
ENDFORM
-
+ if (wantarray) {
+ return ($link,$form);
+ } else {
+ return $link.$form;
+ }
}
sub display_editor {
- my ($url,$folderpath,$symb,$idx) = @_;
- my ($residx,$supplementalflag,$title,$pathitem,$output);
+ my ($url,$folderpath,$symb,$idx,$type,$cdom,$cnum,$hostname) = @_;
+ my ($residx,$supplementalflag,$title,$pathitem,$output,$js,$navmap);
if ($folderpath =~ /^supplemental/) {
$supplementalflag = 1;
$residx = $idx;
@@ -290,15 +309,14 @@ sub display_editor {
(my $map,$residx,my $res) =
&Apache::lonnet::decode_symb($symb);
$title = &Apache::lonnet::gettitle($symb);
- my $path = &Apache::lonnet::getdocspath($symb);
- if ($map =~ /\.page$/) {
- $pathitem = '';
- } else {
- $pathitem = '';
- }
+ my $path = &Apache::loncommon::symb_to_docspath($symb,\$navmap);
+ $pathitem = '';
}
- my $js = &Apache::lonhtmlcommon::scripttag(&extedit_javascript());
+ $js = &Apache::lonhtmlcommon::scripttag(&extedit_javascript());
my $args = { 'force_register' => $env{'form.register'} };
+ if ($hostname) {
+ $args->{'hostname'} = $hostname;
+ }
return &Apache::loncommon::start_page('External Resource Editor',$js,$args).
''.
&extedit_form($supplementalflag,$residx,$url,$title,$pathitem,undef,'direct',$symb).
@@ -307,10 +325,11 @@ sub display_editor {
}
sub extedit_javascript {
- my %lt = &Apache::lonlocal::texthash(
+ my %js_lt = &Apache::lonlocal::texthash(
invurl => 'Invalid URL',
titbl => 'Title is blank',
);
+ &js_escape(\%js_lt);
my $urlregexp = <<'ENDREGEXP';
/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i
@@ -326,19 +345,20 @@ function setExternal(extform,residx) {
String.prototype.trim = function() {return this.replace(\/^\\s+|\\s+$\/g, "");}; }
var url=extform.exturl.value;
if (title == null || title.trim()=="") {
- alert("$lt{'titbl'}");
+ alert("$js_lt{'titbl'}");
extform.exttitle.focus();
return;
}
if (regexp.test(url)) {
url = escape(url);
+ title = escape(title);
if (residx > 0) {
eval("extform.importdetail.value=title+'='+url+'='+residx;extform.submit();");
} else {
eval("extform.importdetail.value=title+'='+url;extform.submit();");
}
} else {
- alert("$lt{'invurl'}");
+ alert("$js_lt{'invurl'}");
extform.exturl.focus();
return;
}
@@ -358,13 +378,18 @@ function editext(residx) {
return;
}
-function extUrlPreview(caller) {
+function extUrlPreview(caller,protocol) {
if (document.getElementById(caller)) {
var url = document.getElementById(caller).value;
if (regexp.test(url)) {
- openMyModal(url,500,400,'yes');
+ var http_regex = /^http\:\/\//gi;
+ if ((protocol == 'https') && (http_regex.test(url))) {
+ window.open(url,"externalpreview","height=400,width=500,scrollbars=1,resizable=1,menubar=0,location=1");
+ } else {
+ openMyModal(url,500,400,'yes');
+ }
} else {
- alert("$lt{'invurl'}");
+ alert("$js_lt{'invurl'}");
}
}
}