Author: musachy
Date: Sun Jun  3 09:14:32 2007
New Revision: 543927

URL: http://svn.apache.org/viewvc?view=rev&rev=543927
Log:
WW-1951 Ajax submit button executeScripts="true" evaluates javascript before 
DOM elements are defined

Modified:
    
struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
    
struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js
    
struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js

Modified: 
struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js?view=diff&rev=543927&r1=543926&r2=543927
==============================================================================
--- 
struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
 (original)
+++ 
struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
 Sun Jun  3 09:14:32 2007
@@ -190,10 +190,14 @@
       
       // no validation or validation passed
       if(this.executeScripts) {
-        //update targets content
+        //parse text to extract content and javascript
         var parsed = this.parse(data);
-        this._executeScripts(parsed.scripts);
+         
+        //update targets content
         this.setContent(parsed.text);
+        
+        //execute scripts
+        this._executeScripts(parsed.scripts);
       }
       else {
         this.setContent(data);

Modified: 
struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js?view=diff&rev=543927&r1=543926&r2=543927
==============================================================================
--- 
struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js
 (original)
+++ 
struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js
 Sun Jun  3 09:14:32 2007
@@ -13698,8 +13698,8 @@
 }
 if(this.executeScripts){
 var _b87=this.parse(data);
-this._executeScripts(_b87.scripts);
 this.setContent(_b87.text);
+this._executeScripts(_b87.scripts);
 }else{
 this.setContent(data);
 }
@@ -15179,6 +15179,7 @@
 },getSelectedKey:function(){
 return this.comboBoxSelectionValue.value;
 },setSelectedValue:function(text){
+if(this.dataProvider){
 var data=this.dataProvider.data;
 for(element in data){
 var obj=data[element];
@@ -15187,6 +15188,9 @@
 this.comboBoxSelectionValue.value=obj[1].toString();
 }
 }
+}else{
+this.comboBoxSelectionValue.value=text;
+}
 },getSelectedValue:function(){
 return this.comboBoxValue.value;
 },getText:function(){
@@ -17753,7 +17757,7 @@
 var self=this;
 dojo.lang.forEach(this.beforeSelectTabNotifyTopicsArray,function(_ebb){
 try{
-dojo.event.topic.publish(_ebb,self,tab,_eb9);
+dojo.event.topic.publish(_ebb,_eb9,tab,self);
 }
 catch(ex){
 dojo.debug(ex);
@@ -17766,7 +17770,7 @@
 var self=this;
 dojo.lang.forEach(this.afterSelectTabNotifyTopicsArray,function(_ebc){
 try{
-dojo.event.topic.publish(_ebc,self,tab,_eb9);
+dojo.event.topic.publish(_ebc,tab,self);
 }
 catch(ex){
 dojo.debug(ex);

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=543927&r1=543926&r2=543927
==============================================================================
--- 
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 Jun  3 09:14:32 2007
@@ -22242,10 +22242,14 @@
       
       // no validation or validation passed
       if(this.executeScripts) {
-        //update targets content
+        //parse text to extract content and javascript
         var parsed = this.parse(data);
-        this._executeScripts(parsed.scripts);
+         
+        //update targets content
         this.setContent(parsed.text);
+        
+        //execute scripts
+        this._executeScripts(parsed.scripts);
       }
       else {
         this.setContent(data);
@@ -24618,13 +24622,17 @@
   },
   
   setSelectedValue : function(text) {
-    var data = this.dataProvider.data;
-    for(element in data) {
-       var obj = data[element];
-       if(obj[0].toString() == text) {
-         this.setValue(obj[0].toString());
-         this.comboBoxSelectionValue.value = obj[1].toString();
-       }
+    if(this.dataProvider) {
+      var data = this.dataProvider.data;
+      for(element in data) {
+         var obj = data[element];
+         if(obj[0].toString() == text) {
+           this.setValue(obj[0].toString());
+           this.comboBoxSelectionValue.value = obj[1].toString();
+         }
+      }
+    } else {
+      this.comboBoxSelectionValue.value = text;
     }
   },
   
@@ -28902,7 +28910,7 @@
         var self = this;
         dojo.lang.forEach(this.beforeSelectTabNotifyTopicsArray, 
function(topic) {
           try {
-            dojo.event.topic.publish(topic, self, tab, cancel);
+            dojo.event.topic.publish(topic, cancel, tab, self);
           } catch(ex){
             dojo.debug(ex);
           }
@@ -28916,7 +28924,7 @@
           var self = this;
           dojo.lang.forEach(this.afterSelectTabNotifyTopicsArray, 
function(topic) {
             try {
-              dojo.event.topic.publish(topic, self, tab, cancel);
+              dojo.event.topic.publish(topic, tab, self);
             } catch(ex){
               dojo.debug(ex);
             }


Reply via email to