You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2010/05/05 01:09:25 UTC

svn commit: r941087 - in /tapestry/tapestry5/trunk/tapestry-core/src: main/resources/org/apache/tapestry5/tapestry.js test/app1/LinkSubmitDemo.tml

Author: hlship
Date: Tue May  4 23:09:25 2010
New Revision: 941087

URL: http://svn.apache.org/viewvc?rev=941087&view=rev
Log:
TAP5-1129: LinkSubmit should render minimally (and as <span> tag) and then fill in the details on the client

Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
    tapestry/tapestry5/trunk/tapestry-core/src/test/app1/LinkSubmitDemo.tml

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js?rev=941087&r1=941086&r2=941087&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js Tue May  4 23:09:25 2010
@@ -554,32 +554,30 @@ var Tapestry = {
 			Tapestry.ScriptManager.virtualScripts.push(complete);
 		});
 	},
-	
-	/** 
-	 * Creates a clone of the indicated element, but with the alternate tag name.
-	 * Attributes of the original node are copied to the new node. Tag names should
-	 * be all upper-case. The content of the original element is copied to the new element
-	 * and the original element is removed. Event observers on the original element will
-	 * be lost.
-	 * 
-	 * @param element element or element id
-	 * @return the new element
-	 *  @since 5.2.0
-	 */
-	replaceElementTagName : function(element, newTagName)
-	{
-		var newElement = new Element(newTagName);
-		
-		$A($(element).attributes).each(function (attribute) {
-			newElement.writeAttribute(attribute.name, attribute.value);
-		});
-		
-		/** Copy the original element's content over. */
-		newElement.update($(element).innerHTML);
-		
-		$(element).insert({ before: newElement}).remove();
-		
-		return newElement;
+
+	/**
+	 * Creates a clone of the indicated element, but with the alternate tag
+	 * name. Attributes of the original node are copied to the new node. Tag
+	 * names should be all upper-case. The content of the original element is
+	 * copied to the new element and the original element is removed. Event
+	 * observers on the original element will be lost.
+	 * 
+	 * @param element
+	 *            element or element id
+	 * @since 5.2.0
+	 */
+	replaceElementTagName : function(element, newTagName) {
+
+		var tag = $(element).tagName;
+		var outerHTML = $(element).outerHTML;
+
+		var replaceHTML = outerHTML.replace(new RegExp("^<" + tag, "i"),
+				"<" + newTagName).replace(new RegExp("</" + tag + ">$", "i"),
+				"</" + newTagName + ">");
+
+		$(element).insert( {
+			before : replaceHTML
+		}).remove();
 	}
 };
 
@@ -1996,8 +1994,8 @@ Tapestry.ScriptManager = {
  * are not prefixed in any way, valueing readability over preventing naming
  * conflicts.
  * <p>
- * However, this technique is being phased out and will soon be deprecated
- * as it is all too easy to cause memory cycles and leaks (especially in IE).
+ * However, this technique is being phased out and will soon be deprecated as it
+ * is all too easy to cause memory cycles and leaks (especially in IE).
  * 
  * @param element
  *            an element instance or element id

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/app1/LinkSubmitDemo.tml
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/app1/LinkSubmitDemo.tml?rev=941087&r1=941086&r2=941087&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/app1/LinkSubmitDemo.tml (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/app1/LinkSubmitDemo.tml Tue May  4 23:09:25 2010
@@ -1,23 +1,25 @@
 <html t:type="border" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
-    <h1>Link Submit Demo</h1>
-    
-    <p>Result: ${result}.</p>
-
-    <t:form>
-        <t:errors/>
-
-        <t:textfield t:id="name"/>
-        <br/>
-        <t:linksubmit t:id="fred" context="formContext" alt="f">Fred</t:linksubmit>
-        <t:linksubmit t:id="barney" defer="true" event="neighbor" alt="b">Barney</t:linksubmit>
-
-    </t:form>
-
-    <dl>
-        <dt>Name</dt>
-        <dd id="name-value">${name}</dd>
-        <dt>Last Clicked</dt>
-        <dd id="last-clicked">${lastClicked}</dd>
-    </dl>
+  <h1>Link Submit Demo</h1>
+
+  <p>Result: ${result}.</p>
+
+  <t:form>
+    <t:errors/>
+
+    <t:textfield t:id="name"/>
+    <br/>
+    <t:linksubmit t:id="fred" context="formContext" alt="f">
+      <span class="nested">Fred</span>
+    </t:linksubmit>
+    <t:linksubmit t:id="barney" defer="true" event="neighbor" alt="b">Barney</t:linksubmit>
+
+  </t:form>
+
+  <dl>
+    <dt>Name</dt>
+    <dd id="name-value">${name}</dd>
+    <dt>Last Clicked</dt>
+    <dd id="last-clicked">${lastClicked}</dd>
+  </dl>
 
 </html>
\ No newline at end of file