Modified: struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js (original) +++ struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js Sun May 20 14:29:37 2007 @@ -22061,6 +22061,7 @@ dojo.widget.HtmlWidget, { widgetType : "Bind", executeScripts : false, + scriptSeparation : false, targets : "", targetsArray : null, href : "", @@ -22098,6 +22099,13 @@ validate : false, ajaxAfterValidation : false, + //used for scripts downloading & caching + cacheContent : true, + //run script on its own scope + scriptSeparation : true, + //scope for the cript separation + scriptScope : null, + postCreate : function() { var self = this; @@ -22235,14 +22243,7 @@ if(this.executeScripts) { //update targets content var parsed = this.parse(data); - //eval scripts - if(parsed.scripts && parsed.scripts.length > 0) { - var scripts = ""; - for(var i = 0; i < parsed.scripts.length; i++){ - scripts += parsed.scripts[i]; - } - (new Function('_container_', scripts+'; return this;'))(this); - } + this._executeScripts(parsed.scripts); this.setContent(parsed.text); } else { @@ -22417,7 +22418,65 @@ text: s, scripts: scripts }; - } + }, + + //from Dojo content pane + _executeScripts : function (scripts) { + var self = this; + var tmp = "", code = ""; + for (var i = 0; i < scripts.length; i++) { + if (scripts[i].path) { + dojo.io.bind(this._cacheSetting({"url":scripts[i].path, "load":function (type, scriptStr) { + dojo.lang.hitch(self, tmp = ";" + scriptStr); + }, "error":function (type, error) { + error.text = type + " downloading remote script"; + self._handleDefaults.call(self, error, "onExecError", "debug"); + }, "mimetype":"text/plain", "sync":true}, this.cacheContent)); + code += tmp; + } else { + code += scripts[i]; + } + } + try { + if (this.scriptSeparation) { + delete this.scriptScope; + this.scriptScope = new (new Function("_container_", code + "; return this;"))(self); + } else { + var djg = dojo.global(); + if (djg.execScript) { + djg.execScript(code); + } else { + var djd = dojo.doc(); + var sc = djd.createElement("script"); + sc.appendChild(djd.createTextNode(code)); + (this.containerNode || this.domNode).appendChild(sc); + } + } + } + catch (e) { + e.text = "Error running scripts from content:\n" + e.description; + this.log(e); + } + }, + + _cacheSetting : function (bindObj, useCache) { + for (var x in this.bindArgs) { + if (dojo.lang.isUndefined(bindObj[x])) { + bindObj[x] = this.bindArgs[x]; + } + } + if (dojo.lang.isUndefined(bindObj.useCache)) { + bindObj.useCache = useCache; + } + if (dojo.lang.isUndefined(bindObj.preventCache)) { + bindObj.preventCache = !useCache; + } + if (dojo.lang.isUndefined(bindObj.mimetype)) { + bindObj.mimetype = "text/html"; + } + return bindObj; + } + }); @@ -22774,7 +22833,7 @@ }, //from Dojo's ContentPane - //TODO: remove when fixed on Dojo + //TODO: remove when fixed on Dojo (WW-1869) splitAndFixPaths:function (s, url) { var titles = [], scripts = [], tmp = []; var match = [], requires = [], attr = [], styles = [];
Modified: struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/ajax-common.ftl URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/ajax-common.ftl?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/ajax-common.ftl (original) +++ struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/ajax-common.ftl Sun May 20 14:29:37 2007 @@ -73,3 +73,6 @@ <#if parameters.highlightDuration?if_exists != ""> highlightDuration="${parameters.highlightDuration?html}"<#rt/> </#if> + <#if parameters.separateScripts?exists> + scriptSeparation="${parameters.separateScripts?string?html}"<#rt/> + </#if> Modified: struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/bind.ftl URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/bind.ftl?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/bind.ftl (original) +++ struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/bind.ftl Sun May 20 14:29:37 2007 @@ -70,6 +70,9 @@ <#else> "ajaxAfterValidation": false, </#if> + <#if parameters.separateScripts?exists> + "scriptSeparation": ${parameters.separateScripts?string?html},<#rt/> + </#if> }); }); </script> Modified: struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/div.ftl URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/div.ftl?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/div.ftl (original) +++ struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/div.ftl Sun May 20 14:29:37 2007 @@ -20,9 +20,6 @@ <#if parameters.refreshOnShow?exists> refreshOnShow="${parameters.refreshOnShow?string?html}"<#rt/> </#if> - <#if parameters.separateScripts?exists> - scriptSeparation="${parameters.separateScripts?string?html}"<#rt/> - </#if> <#if parameters.preload?exists> preload="${parameters.preload?string?html}"<#rt/> </#if> Modified: struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTest.java?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTest.java (original) +++ struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTest.java Sun May 20 14:29:37 2007 @@ -52,6 +52,7 @@ tag.setHighlightDuration("n"); tag.setValidate("true"); tag.setAjaxAfterValidation("true"); + tag.setSeparateScripts("true"); tag.doStartTag(); tag.doEndTag(); Modified: struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java (original) +++ struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java Sun May 20 14:29:37 2007 @@ -27,6 +27,7 @@ tag.setHighlightColor("p"); tag.setHighlightDuration("q"); tag.setValidate("true"); + tag.setSeparateScripts("true"); tag.doStartTag(); tag.doEndTag(); Modified: struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/SubmitAjaxTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/SubmitAjaxTest.java?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/SubmitAjaxTest.java (original) +++ struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/SubmitAjaxTest.java Sun May 20 14:29:37 2007 @@ -48,6 +48,7 @@ tag.setHighlightDuration("o"); tag.setValidate("true"); tag.setAjaxAfterValidation("true"); + tag.setSeparateScripts("true"); tag.setTabindex("1"); tag.doStartTag(); tag.doEndTag(); @@ -77,6 +78,7 @@ tag.setIndicator("l"); tag.setErrorNotifyTopics("m"); tag.setValidate("true"); + tag.setSeparateScripts("true"); tag.setTabindex("1"); tag.doStartTag(); tag.doEndTag(); @@ -107,6 +109,7 @@ tag.setIndicator("l"); tag.setErrorNotifyTopics("m"); tag.setValidate("true"); + tag.setSeparateScripts("true"); tag.doStartTag(); tag.doEndTag(); Modified: struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt (original) +++ struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt Sun May 20 14:29:37 2007 @@ -20,6 +20,7 @@ "highlightDuration":q, "validate": true, "ajaxAfterValidation":false, + "scriptSeparation": true, }); }); </script> Modified: struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/div-1.txt URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/div-1.txt?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/div-1.txt (original) +++ struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/div-1.txt Sun May 20 14:29:37 2007 @@ -7,7 +7,6 @@ startTimerListenTopics="h" stopTimerListenTopics="i" refreshOnShow="true" - scriptSeparation="false" id="mylabel" href="a" loadingText="b" @@ -21,5 +20,6 @@ showError="true" showLoading="true" highlightColor="o" - highlightDuration="p"> + highlightDuration="p" + scriptSeparation="false"> </div> Modified: struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/href-1.txt URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/href-1.txt?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/href-1.txt (original) +++ struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/href-1.txt Sun May 20 14:29:37 2007 @@ -17,5 +17,6 @@ showError="true" showLoading="true" highlightColor="m" - highlightDuration="n"> + highlightDuration="n" + scriptSeparation="true"> </a> Modified: struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-1.txt URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-1.txt?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-1.txt (original) +++ struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-1.txt Sun May 20 14:29:37 2007 @@ -21,4 +21,5 @@ showLoading="true" highlightColor="n" highlightDuration="o" + scriptSeparation="true" /> Modified: struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-2.txt URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-2.txt?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-2.txt (original) +++ struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-2.txt Sun May 20 14:29:37 2007 @@ -15,5 +15,6 @@ errorNotifyTopics="m" handler="h" indicator="l" + scriptSeparation="true" value="i" /> Modified: struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-3.txt URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-3.txt?view=diff&rev=539946&r1=539945&r2=539946 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-3.txt (original) +++ struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-3.txt Sun May 20 14:29:37 2007 @@ -19,4 +19,5 @@ errorNotifyTopics="m" handler="h" indicator="l" + scriptSeparation="true" />