[LON-CAPA-cvs] cvs: loncom(version_2_11_X) /interface lonextresedit.pm
raeburn
raeburn at source.lon-capa.org
Tue Jul 30 15:53:22 EDT 2019
raeburn Tue Jul 30 19:53:22 2019 EDT
Modified files: (Branch: version_2_11_X)
/loncom/interface lonextresedit.pm
Log:
- For 2.11
Backport 1.28, 1.29
Index: loncom/interface/lonextresedit.pm
diff -u loncom/interface/lonextresedit.pm:1.8.2.3 loncom/interface/lonextresedit.pm:1.8.2.4
--- loncom/interface/lonextresedit.pm:1.8.2.3 Sun Jul 28 04:10:31 2019
+++ loncom/interface/lonextresedit.pm Tue Jul 30 19:53:22 2019
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: lonextresedit.pm,v 1.8.2.3 2019/07/28 04:10:31 raeburn Exp $
+# $Id: lonextresedit.pm,v 1.8.2.4 2019/07/30 19:53:22 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -328,6 +328,12 @@
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',
);
&js_escape(\%js_lt);
@@ -383,17 +389,76 @@
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))) {
- window.open(url,"externalpreview","height=400,width=500,scrollbars=1,resizable=1,menubar=0,location=1");
- } else {
- openMyModal(url,500,400,'yes');
+ 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'}";
+ } 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
}
More information about the LON-CAPA-cvs
mailing list