Author: jkuhnert
Date: Sun May 20 14:07:18 2007
New Revision: 539938

URL: http://svn.apache.org/viewvc?view=rev&rev=539938
Log:
Fixes TAPESTRY-1210. Client side logic of submitting inlineeditbox was having 
issues because of stale links.

Modified:
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/ComponentEvent.script
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/InlineEditBox.java
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/InlineEditBox.script
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/WidgetEvent.script
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
    tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/ComponentEvent.script
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/ComponentEvent.script?view=diff&rev=539938&r1=539937&r2=539938
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/ComponentEvent.script
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/ComponentEvent.script
 Sun May 20 14:07:18 2007
@@ -38,7 +38,6 @@
                     if (!content["beventtarget.id"]){
                        content["beventtarget.id"]="${clientId}";
                     }
-                    
                     <foreach expression="formEvent[1]" key="formName">
                    var 
validateState=tapestry.form.forms["${formName}"].validateForm;
                    var validateForm=${formEvent[3]};

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/InlineEditBox.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/InlineEditBox.java?view=diff&rev=539938&r1=539937&r2=539938
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/InlineEditBox.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/InlineEditBox.java
 Sun May 20 14:07:18 2007
@@ -13,23 +13,18 @@
 // limitations under the License.
 package org.apache.tapestry.dojo.html;
 
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import org.apache.hivemind.ApplicationRuntimeException;
-import org.apache.tapestry.IDirect;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.IScript;
-import org.apache.tapestry.PageRenderSupport;
-import org.apache.tapestry.TapestryUtils;
+import org.apache.tapestry.*;
 import org.apache.tapestry.dojo.AbstractWidget;
 import org.apache.tapestry.engine.DirectServiceParameter;
 import org.apache.tapestry.engine.IEngineService;
 import org.apache.tapestry.json.JSONObject;
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 
 /**
  * Wraps a dojo InlineEditBox widget. 
@@ -53,7 +48,6 @@
  * </ul>
  * </p>
  * 
- * @author Jesse Kuhnert
  */
 public abstract class InlineEditBox extends AbstractWidget implements IDirect
 {
@@ -134,7 +128,7 @@
         DirectServiceParameter dsp =
             new DirectServiceParameter(this);
         
-        return getEngine().getLink(true, dsp).getURL();
+        return getEngine().getLink(false, dsp).getURL();
     }
     
     /**

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/InlineEditBox.script
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/InlineEditBox.script?view=diff&rev=539938&r1=539937&r2=539938
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/InlineEditBox.script
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/InlineEditBox.script
 Sun May 20 14:07:18 2007
@@ -20,14 +20,14 @@
 <script>
 
 <input-symbol key="component" required="yes" />
-<input-symbol key="props" required="yes" />
-<let key="box" unique="yes">
-inlineBox
-</let>
-    <body>
-    <unique>
-    dojo.require("tapestry.widget.Widget");
-    </unique>
+<input-symbol key="props" required="yes" />
+<let key="box" unique="yes">
+inlineBox
+</let>
+    <body>
+    <unique>
+    dojo.require("tapestry.widget.Widget");
+    </unique>
     </body>
     <initialization>
     tapestry.widget.synchronizeWidgetState("${component.clientId}", 
"InlineEditBox", ${props}, ${component.destroy});
@@ -38,11 +38,9 @@
     </if-not><if expression="component.disabled">
         ${box}.disable();
     </if>
-    
-    <if expression="component.destroy">
+    dojo.event.connectOnce(${box}.form, "onsubmit", 
function(e){dojo.event.browser.stopEvent(e);}); 
     dojo.event.connectOnce(${box}, "onSave", function(newValue, oldValue){
        tapestry.bind("${component.updateUrl}", 
{"${component.clientId}":newValue}, true);
     });
-    </if>
     </initialization>
 </script>

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/WidgetEvent.script
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/WidgetEvent.script?view=diff&rev=539938&r1=539937&r2=539938
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/WidgetEvent.script
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/html/WidgetEvent.script
 Sun May 20 14:07:18 2007
@@ -34,8 +34,8 @@
                     var content={beventname:"${formEvent[0]}"};
                     tapestry.event.buildEventProperties(e, content);
                     if (!content["beventtarget.id"]) 
content["beventtarget.id"]="${clientId}";
-                    
-                   <foreach expression="formEvent[1]" key="formName">
+
+                  <foreach expression="formEvent[1]" key="formName">
                    var 
validateState=tapestry.form.forms["${formName}"].validateForm;
                    var validateForm=${formEvent[3]};
                    tapestry.form.setFormValidating("${formName}", 
validateForm);

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java?view=diff&rev=539938&r1=539937&r2=539938
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
 Sun May 20 14:07:18 2007
@@ -506,7 +506,7 @@
      * the default behavior is to publish the message to a topic matching the 
category name
      * using <code>dojo.event.topic.publish(category,text);</code>.
      *
-     * @param writer
+     * @param normalWriter
      *          The markup writer to use, this may be ignored or swapped
      *          out for a different writer depending on the implementation 
being used.
      * @param category
@@ -554,6 +554,7 @@
             String errorPage = getErrorPage(page.getPageName());
             
             if (errorPage != null) {
+                
                 _pageRender = true;
                 clearPartialWriters();
                 render.render(getWriter(errorPage, EXCEPTION_TYPE), cycle);
@@ -594,7 +595,7 @@
     {
         for (int i=0; i < _errorPages.size(); i++) {
             String page = (String)_errorPages.get(i);
-            
+
             if (pageName.indexOf(page) > -1)
                 return page;
         }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js?view=diff&rev=539938&r1=539937&r2=539938
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js 
(original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js Sun May 
20 14:07:18 2007
@@ -139,13 +139,13 @@
        },
        
        overrideSubmit:function(e){
-               dojo.event.browser.stopEvent(e);
-                var elm = e.target;
-                if (!dj_undef("form", elm)){
-                    dojo.log.debug("Submit event was generated from element: 
", elm);
-                    elm = elm.form;                    
-                }
-               tapestry.form.submitAsync(elm);
+        dojo.event.browser.stopEvent(e);
+        var elm = e.target;
+        if (!dj_undef("form", elm)){
+            dojo.log.debug("Submit event was generated from element: ", elm);
+            elm = elm.form;
+        }
+        tapestry.form.submitAsync(elm);
        },
        
        /**
@@ -230,7 +230,6 @@
                        dojo.raise("No valid form event found with argument: " 
+ evt);
                        return;
                }
-
         var id=evt.target.getAttribute("id");
                if (!id) {
                        dojo.raise("Form had no id attribute.");
@@ -272,7 +271,6 @@
                        return;
                }
                var id=form.getAttribute("id");
-               
                if (submitName){
                        form.submitname.value=submitName;
                }
@@ -414,7 +412,7 @@
                        if (!content) { content={}; }
                        
content[this.forms[formId].clickedButton.getAttribute("name")]=this.forms[formId].clickedButton.getAttribute("value");
                }
-               
+
                var kwArgs={
                        formNode:form,
                        content:content,
@@ -428,7 +426,7 @@
                if (parms){
                        if (!dj_undef("url", parms)) { kwArgs.url=parms.url; }
                }
-               
+
                if (this.forms[formId].json || parms && parms.json) {
                        kwArgs.headers={"json":true};
                        kwArgs.mimetype="text/json";
@@ -438,7 +436,7 @@
                        kwArgs.load=(function(){tapestry.load.apply(this, 
arguments);});
                }
                tapestry.requestsInFlight++;
-               dojo.io.queueBind(kwArgs);                
+        dojo.io.queueBind(kwArgs);
        }
 }
 


Reply via email to