annotate src/nabble/view/web/embed/JsEmbed.java @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 package nabble.view.web.embed;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
4 import fschmidt.util.java.HtmlUtils;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
5 import fschmidt.util.servlet.JtpContext;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
6 import nabble.model.ModelHome;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7 import nabble.model.Node;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8 import nabble.model.Site;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
9 import nabble.view.lib.Jtp;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10 import org.slf4j.Logger;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11 import org.slf4j.LoggerFactory;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13 import javax.servlet.ServletException;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14 import javax.servlet.http.HttpServlet;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15 import javax.servlet.http.HttpServletRequest;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16 import javax.servlet.http.HttpServletResponse;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17 import java.io.IOException;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
18 import java.io.PrintWriter;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19 import java.util.ArrayList;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20 import java.util.List;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
21
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
22
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
23 public final class JsEmbed extends HttpServlet {
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
25 private static final Logger logger = LoggerFactory.getLogger(JsEmbed.class);
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
26
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
27 protected void service(HttpServletRequest request, HttpServletResponse response)
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
28 throws ServletException, IOException
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29 {
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
30 response.setHeader("Content-Type","application/x-javascript");
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
31 PrintWriter out = response.getWriter();
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
32
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
33 long siteId = Jtp.getLong(request, "site");
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
34 Site site = ModelHome.getSite(siteId);
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
35 if (site == null) {
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
36 response.sendError(HttpServletResponse.SC_NOT_FOUND, "Site not found");
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37 return;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
38 }
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
39
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
40 long nodeId = Jtp.getLong(request, "node");
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
41 Node node = site.getNode(nodeId);
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
42
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
43 // cache the page
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
44 List<String> events = new ArrayList<String>();
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
45 Jtp.addBreadCrumbEvents( events, site.getRootNode() );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
46 JtpContext jtpContext = (JtpContext)getServletContext().getAttribute(JtpContext.attrName);
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
47 jtpContext.setEtag(request,response, events.toArray( new String[events.size()] ) );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
48
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
49 String baseUrl = Jtp.getBaseUrl(request);
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
50
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
51 String embedUrl = request.getParameter("url");
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
52 logger.info("URL=" + embedUrl);
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
53
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
54 embedUrl = HtmlUtils.urlDecode(embedUrl);
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
55 int pos = embedUrl.indexOf("#nabble-");
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
56 String defaultUrl = node == null ? null : baseUrl+Jtp.path(node);
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
57 if (pos > 0) {
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
58 String sufix = embedUrl.substring(pos+7);
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
59 // if sufix contains #a (with post id)
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
60 int posHash = sufix.indexOf('|');
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
61 if (posHash > 0) {
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
62 sufix = sufix.substring(0, posHash);
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
63 }
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
64 defaultUrl = baseUrl + '/' + sufix + ".html";
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
65 }
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
66
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
67 out.print( "\r\nvar Nabble = new Object();\r\nNabble.defaultHeight = 700;\r\nNabble.currentHeight = 0;\r\nNabble.counter = 0;\r\nNabble.title = document.title == \"\"? \"\" : document.title + \" - \";\r\nNabble.resizeTimeoutID;\r\nNabble.context = '" );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
68 out.print( (baseUrl) );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
69 out.print( "';\r\nNabble.defaultUrl = '" );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
70 out.print( (defaultUrl) );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
71 out.print( "';\r\n\r\nNabble.get = function(id) { return document.getElementById(id); };\r\n\r\nNabble.resizeTimeout = function() {\r\n Nabble.resizeTimeoutID = setTimeout(Nabble.showMoreLink, 6000);\r\n};\r\n\r\nNabble.cancelTimeout = function() {\r\n if (Nabble.resizeTimeoutID) {\r\n clearInterval(Nabble.resizeTimeoutID);\r\n Nabble.get('nabblemore').style.display = 'none';\r\n Nabble.resizeTimeoutID = null;\r\n }\r\n};\r\n\r\nNabble.showMoreLink = function() {\r\n if (Nabble.resizeTimeoutID) {\r\n Nabble.get('nabblemore').style.display = 'block';\r\n }\r\n};\r\n\r\n Nabble.showMore = function() {\r\n if (Nabble.currentHeight == 0)\r\n Nabble.currentHeight = Nabble.defaultHeight;\r\n Nabble.currentHeight += 300;\r\n Nabble.get('nabbleiframe').style.height = Nabble.currentHeight + 'px';\r\n};\r\n\r\nNabble.escape = function(value) {\r\n if (typeof value == 'string') {\r\n var hasSpace = value.indexOf(' ') >= 0;\r\n var hasQuote = value.indexOf('\"') >= 0;\r\n\r\n value = value.replace(/\\;/g, '%3B');\r\n value = value.replace(/\"/g, '\\\\\"');\r\n\r\n if (hasSpace || hasQuote)\r\n value = '\"' + value + '\"';\r\n }\r\n return value;\r\n};\r\n\r\nNabble.unescape = function(value) {\r\n if (value.charAt(0) == '\"' && value.charAt(value.length-1) == '\"')\r\n value = value.substring(1, value.length-1);\r\n\r\n value = value.replace(/\\\\\"/g, '\"');\r\n value = value.replace(/%3B/g, ';');\r\n return value;\r\n};\r\n\r\n Nabble.setCookie = function(name, value) {\r\n name = name+'" );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
72 out.print( (siteId) );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
73 out.print( "';\r\n document.cookie = name + \"=\" + Nabble.escape(value) + \"; path=/\";\r\n};\r\n\r\nNabble.getCookie = function(name) {\r\n name = name+'" );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
74 out.print( (siteId) );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
75 out.print( "';\r\n var dc = document.cookie;\r\n var prefix = name + \"=\";\r\n var begin = dc.indexOf(\"; \" + prefix);\r\n if (begin == -1) {\r\n begin = dc.indexOf(prefix);\r\n if (begin != 0) return null;\r\n } else\r\n begin += 2;\r\n var end = document.cookie.indexOf(\";\", begin);\r\n if (end == -1)\r\n end = dc.length;\r\n return Nabble.unescape(dc.substring(begin + prefix.length, end));\r\n};\r\n\r\nNabble.setPersistentCookie = function(name, value) {\r\n name = name+'" );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
76 out.print( (siteId) );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
77 out.print( "';\r\n var expires = new Date();\r\n expires.setFullYear(expires.getFullYear()+10);\r\n var curCookie = name + \"=\" + Nabble.escape(value) + \"; expires=\" + expires.toGMTString() + \"; path=/\";\r\n document.cookie = curCookie;\r\n};\r\n\r\n Nabble.deleteCookie = function(name) {\r\n name = name+'" );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
78 out.print( (siteId) );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
79 out.print( "';\r\n document.cookie = name + \"=\" +\r\n \"; path=/\" +\r\n \"; expires=Thu, 01-Jan-1970 00:00:01 GMT\";\r\n};\r\n\r\nNabble.noHash = function(url) {\r\n var pos = url.indexOf('#');\r\n return (pos>-1)?url.substring(0, pos):url;\r\n};\r\n\r\nNabble.debug = function(s) {\r\n if (Nabble.debugElement == 0)\r\n return;\r\n if (!Nabble.debugElement) {\r\n Nabble.debugElement = Nabble.get('debug');\r\n if (!Nabble.debugElement) {\r\n Nabble.debugElement = 0;\r\n return;\r\n }\r\n }\r\n Nabble.debugElement.innerHTML = Nabble.debugElement.innerHTML+s+'<br/>';\r\n};\r\n\r\nNabble.loadScript = function(url) {\r\n Nabble.debug('Loading script: ' + url);\r\n var e = document.createElement(\"script\");\r\n e.src = url;\r\n e.type=\"text/javascript\";\r\n document.getElementsByTagName(\"head\")[0].appendChild(e);\r\n};\r\n\r\nNabble.getJs = function(keys) {\r\n if (!window.clientID)\r\n return;\r\n var p = '';\r\n for (var i=0;i<keys.length;i++) {\r\n p += '&key=' + keys[i];\r\n }\r\n var url = Nabble.context+\"/util/SessionService.jtp?action=get\" + p + \"&cid=\" + window.clientID + \"&_=\" + new Date().getTime();\r\n Nabble.loadScript(url);\r\n};\r\n\r\nNabble.scroll = function(y) {\r\n Nabble.debug('[scroll] y=' + y);\r\n if (y == 1 && window.nabble_scroll_top) {\r\n scrollTo(0, 0);\r\n } else if (y > 0 && !window.nabble_ignore_scroll) {\r\n var obj = Nabble.get('nabbleiframe');\r\n do {\r\n y += obj.offsetTop;\r\n } while (obj = obj.offsetParent);\r\n scrollTo(0, y);\r\n }\r\n};\r\n\r\nNabble.resizeFrames = function(height,title,validHeight) {\r\n if (document.title != title && !window.nabble_ignore_title)\r\n document.title = title;\r\n Nabble.debug('[resizeFrames] Counter = ' + (Nabble.counter++) + ' Height = ' + height + ' Title=[' + title + '] History=' + history.length + ' -- cid=' + window.clientID);\r\n\r\n if (height != Nabble.currentHeight) {\r\n Nabble.currentHeight = height;\r\n var f = Nabble.get('nabbleiframe');\r\n if (f) {\r\n f.scrolling = validHeight? 'no' : 'auto';\r\n Nabble.debug('Scrolling=' + f.scrolling);\r\n f.style.height = height + 'px';\r\n Nabble.cancelTimeout();\r\n }\r\n }\r\n};\r\n\r\nNabble.getCurrentUrl = function() {\r\n var currentUrl = Nabble.defaultUrl;\r\n if (Nabble.hash.indexOf('#nabble+') == 0) {\r\n var path = Nabble.hash.substring(8);\r\n path = decodeURIComponent(path);\r\n path = path\r\n .replace(/</g,'%3C')\r\n .replace(/>/g,'%3E')\r\n .replace(/\"/g,'%22')\r\n .replace(/'/g,'%27');\r\n currentUrl = Nabble.context+\"/\" + path;\r\n }\r\n currentUrl += Nabble.realHash == ''? '' : '#' + Nabble.realHash;\r\n return currentUrl;\r\n};\r\n\r\nNabble.getClientID = function() {\r\n var clientID = Nabble.getCookie('clientID');\r\n if (!clientID) {\r\n clientID = new Date().getTime() + '-' + Math.ceil(Math.random() * 1000);\r\n Nabble.setCookie('clientID', clientID);\r\n }\r\n return clientID;\r\n};\r\n\r\nNabble.restart = function(nodeId, baseUrl) {\r\n Nabble.debug('Restart -- baseUrl=' + baseUrl);\r\n Nabble.context = baseUrl;\r\n Nabble.defaultUrl = baseUrl+'/';\r\n Nabble.start();\r\n};\r\n\r\nNabble.getConf = function() {\r\n return window.nabble_ignore_scroll? 'noscroll;':'';\r\n};\r\n\r\nNabble.start = function() {\r\n Nabble.infoLoaded = false;\r\n window.clientID = Nabble.getClientID();\r\n\r\n " );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
80 /* Hash processing */
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
81 out.print( "\r\n var hash = location.hash;\r\n var pipe = hash.indexOf('|');\r\n var realHash = '';\r\n if (pipe > 0) {\r\n " );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
82 /*
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
83 If there is a pipe in the hash, the value after it is the
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
84 hash of the original URL, which must be restored.
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
85 For Example:
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
86 #nabble-t100|a123
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
87 */
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
88 out.print( "\r\n realHash = hash.substring(pipe);\r\n hash = hash.replace(realHash, '');\r\n realHash = realHash.substring(1);\r\n }\r\n " );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
89 /* save the hash and realHash variables because the getCurrentUrl() method will need them.. */
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
90 out.print( "\r\n Nabble.hash = hash;\r\n Nabble.realHash = realHash;\r\n Nabble.infoUrl = Nabble.context+\"/embed/EmbedInfo.jtp?node=" );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
91 out.print( (nodeId) );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
92 out.print( "&cid=\" + window.clientID + \"&hash=\" + realHash + '&conf=' + Nabble.getConf() + \"&_=\" + new Date().getTime() + \"#\" + Nabble.noHash(location.href);\r\n var emptyUrl = Nabble.context+\"/util/Empty.jtp\";\r\n var html = \"<div id='nabblemain'><div style='height:700px'><img src='" );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
93 out.print( (baseUrl) );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
94 out.print( "/images/loading.png' width=94 height=33 alt='Loading...'></div></div>\";\r\n html += \"<div id='nabblemore' style='display:none'><a href=\\\"javascript: void Nabble.showMore()\\\">view more</a></div>\";\r\n html += \"<iframe name='nabbleinfo' id='nabbleinfo' width='1' height='1' style='display:none' src=''></iframe>\";\r\n html += \"<iframe name='nabbleresize' onload='Nabble.getJs([\\\"resizejs\\\", \\\"scrolljs\\\", \\\"others\\\"])' width='1' height='1' style='display:none' src='\" + emptyUrl + \"'></iframe>\";\r\n html += \"<iframe name='nabbleready' onload='Nabble.loadMain()' width='1' height='1' style='display:none' src='\" + emptyUrl + \"'></iframe>\";\r\n var div = Nabble.get('nabbleforum');\r\n div.innerHTML = html;\r\n};\r\n\r\n" );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
95 /*
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
96 1 - Loads the main page as the last page in order to allow the
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
97 embedding code to run before it.
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
98 2 - We must load the iframe using a string because IE (and some
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
99 other browsers) have problems to load an iframe through the DOM.
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
100 3 - The loadMain() function is called when the 'nabbleready' iframe is loaded.
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
101 Note that this iframe doesn't have an initial URL. The first URL is provided in EmbedInfo.jtp.
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
102 */
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
103 out.print( "\r\nNabble.loadMain = function() {\r\n Nabble.debug('Loading main page...infoLoaded='+Nabble.infoLoaded);\r\n if (!Nabble.infoLoaded) {\r\n Nabble.debug('InfoUrl='+Nabble.infoUrl);\r\n Nabble.get('nabbleinfo').setAttribute('src',Nabble.infoUrl);\r\n Nabble.infoLoaded = true;\r\n return;\r\n }\r\n var width = window.nabble_width? window.nabble_width : '100%';\r\n var currentUrl = Nabble.getCurrentUrl();\r\n Nabble.debug('CurrentUrl='+currentUrl);\r\n var m = '<iframe name=\"nabbleiframe\" id=\"nabbleiframe\" src=\"' + currentUrl + '\" width=\"' + width + '\" height=\"' + Nabble.defaultHeight + '\" frameBorder=\"0\" scrolling=\"no\" allowtransparency=\"true\"></iframe>';\r\n Nabble.get('nabblemain').innerHTML = m;\r\n Nabble.resizeTimeout();\r\n}\r\n\r\nNabble.start();\r\n" );
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
104
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
105 }
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
106 }
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
107