You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2007/05/20 23:07:19 UTC

svn commit: r539938 - in /tapestry/tapestry4/trunk/tapestry-framework/src: java/org/apache/tapestry/ java/org/apache/tapestry/dojo/html/ java/org/apache/tapestry/services/impl/ js/tapestry/

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);
 	}
 }