Author: musachy
Date: Sat Feb 24 08:25:27 2007
New Revision: 511297

URL: http://svn.apache.org/viewvc?view=rev&rev=511297
Log:
WW-1589 Linked autocompleter reset on page reload

Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Div.java
    
struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Div.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Div.java?view=diff&rev=511297&r1=511296&r2=511297
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Div.java 
(original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Div.java 
Sat Feb 24 08:25:27 2007
@@ -69,15 +69,15 @@
  * 'formFilter' is the name of a function which will be used to filter the 
fields that will be
  * seralized. This function takes as a parameter the element and returns true 
if the element
  * should be included.<p/>
- * 'updateFreq' sets(in milliseconds) the update interval.
- * 'autoStart' if set to true(true by default) starts the timer automatically
- * 'startTimerListenTopics' is a comma-separated list of topics used to start 
the timer
- * 'stopTimerListenTopics' is a comma-separated list of topics used to stop 
the timer
- * 'listenTopics' comma separated list of topics names, that will trigger a 
request
- * 'indicator' element to be shown while the request executing
+ * 'updateFreq' sets(in milliseconds) the update interval.<p/>
+ * 'autoStart' if set to true(true by default) starts the timer 
automatically<p/>
+ * 'startTimerListenTopics' is a comma-separated list of topics used to start 
the timer<p/>
+ * 'stopTimerListenTopics' is a comma-separated list of topics used to stop 
the timer<p/>
+ * 'listenTopics' comma separated list of topics names, that will trigger a 
request<p/>
+ * 'indicator' element to be shown while the request executing<p/>
  * 'showErrorTransportText': whether errors should be displayed (on 
'targets')</p>
  * 'showLoadingText' show loading text on targets</p>
- * 'notifyTopics' comma separated list of topics names, that will be 
published. Three parameters are passed:
+ * 'notifyTopics' comma separated list of topics names, that will be 
published. Three parameters are passed:<p/>
  * <ul>
  *      <li>data: html or json object when type='load' or type='error'</li>
  *      <li>type: 'before' before the request is made, 'load' when the request 
succeeds, or 'error' when it fails</li>

Modified: 
struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js?view=diff&rev=511297&r1=511296&r2=511297
==============================================================================
--- 
struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js
 (original)
+++ 
struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js
 Sat Feb 24 08:25:27 2007
@@ -21,6 +21,7 @@
 
   this.formId = "";
   this.formFilter = "";
+  this.firstRequest = true;
 
   this.cbox = null;
   this.init = function(/*Widget*/ cbox, /*DomNode*/ node){
@@ -59,10 +60,14 @@
       formNode: dojo.byId(this.formId),
       formFilter: window[this.formFilter],
       load: dojo.lang.hitch(this, function(type, data, evt) {
-         //show indicator
-         dojo.html.hide(this.cbox.indicator);
+        //show indicator
+        dojo.html.hide(this.cbox.indicator);
 
-        this.cbox.notify.apply(this.cbox, [data, type, evt]);
+        //if notifyTopics is published on the first request (onload)
+        //the value of listeners will be reset
+        if(!this.firstRequest) {
+          this.cbox.notify.apply(this.cbox, [data, type, evt]);
+        }
         if(!dojo.lang.isArray(data)) {
            //if there is a dataFieldName, take it
            if(!dojo.string.isBlank(this.cbox.dataFieldName) && 
data[this.cbox.dataFieldName] != null) {
@@ -87,6 +92,7 @@
            data = arrData;
         }
         this.setData(data);
+        this.firstRequest = false;
       }),
       mimetype: "text/json"
     });


Reply via email to