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