Repository: tapestry-5 Updated Branches: refs/heads/master 677629acd -> 33f9e65b9
TAP5-2308: reset the FormFragment's clientId field in the AfterRender phase Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/33f9e65b Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/33f9e65b Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/33f9e65b Branch: refs/heads/master Commit: 33f9e65b933654b32d4a67ef6dcbc6b357eb7393 Parents: 677629a Author: Jochen Kemnade <[email protected]> Authored: Wed Sep 9 13:42:00 2015 +0200 Committer: Jochen Kemnade <[email protected]> Committed: Wed Sep 9 13:42:00 2015 +0200 ---------------------------------------------------------------------- .../corelib/components/FormFragment.java | 2 ++ .../app1/BeanEditorWithFormFragmentDemo.tml | 26 +++++++++++--------- .../app1/BeanEditorWithFormFragmentTests.groovy | 17 ++++++++++++- 3 files changed, 32 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/33f9e65b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java ---------------------------------------------------------------------- diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java index 2ee623f..6de0214 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java @@ -237,6 +237,8 @@ public class FormFragment implements ClientElement environment.pop(FormSupport.class); + + clientId = null; } public String getClientId() http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/33f9e65b/tapestry-core/src/test/app1/BeanEditorWithFormFragmentDemo.tml ---------------------------------------------------------------------- diff --git a/tapestry-core/src/test/app1/BeanEditorWithFormFragmentDemo.tml b/tapestry-core/src/test/app1/BeanEditorWithFormFragmentDemo.tml index 3d8b8dc..12ac795 100644 --- a/tapestry-core/src/test/app1/BeanEditorWithFormFragmentDemo.tml +++ b/tapestry-core/src/test/app1/BeanEditorWithFormFragmentDemo.tml @@ -2,18 +2,20 @@ <h1>Bean Editor With Form Fragment Demo</h1> <t:form> - <t:beaneditor object="job" - include="title,canBeDoneRemotely"> - <p:canBeDoneRemotely> - <t:checkbox t:id="canBeDoneRemotely" value="job.canBeDoneRemotely" - t:mixins="triggerfragment" TriggerFragment.fragment="jobAddress" TriggerFragment.invert="true"/> - <t:label for="canBeDoneRemotely" /> - </p:canBeDoneRemotely> - </t:beaneditor> - - <t:formfragment t:id="jobAddress" visible="!job.canBeDoneRemotely"> - <t:beaneditor object="job" include="address" /> - </t:formfragment> + <t:loop source="literal:[1,2]"> + <t:beaneditor object="job" + include="title,canBeDoneRemotely"> + <p:canBeDoneRemotely> + <t:checkbox t:id="canBeDoneRemotely" value="job.canBeDoneRemotely" + t:mixins="triggerfragment" TriggerFragment.fragment="jobAddress" TriggerFragment.invert="true"/> + <t:label for="canBeDoneRemotely" /> + </p:canBeDoneRemotely> + </t:beaneditor> + + <t:formfragment t:id="jobAddress" visible="!job.canBeDoneRemotely"> + <t:beaneditor object="job" include="address" /> + </t:formfragment> + </t:loop> </t:form> </html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/33f9e65b/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/BeanEditorWithFormFragmentTests.groovy ---------------------------------------------------------------------- diff --git a/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/BeanEditorWithFormFragmentTests.groovy b/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/BeanEditorWithFormFragmentTests.groovy index 0c81d15..bbd63f8 100644 --- a/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/BeanEditorWithFormFragmentTests.groovy +++ b/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/BeanEditorWithFormFragmentTests.groovy @@ -12,10 +12,25 @@ class BeanEditorWithFormFragmentTests extends GroovyTapestryCoreTestCase @Test void beaneditor_with_formfragment_and_triggerfragment_mixin() { - open "/BeanEditorWithFormFragmentDemo" + openLinks("Bean Editor With Form Fragment Demo", "Reset Page State") assert isVisible("css=#address") click "css=#canBeDoneRemotely" assert !isVisible("css=#address") } + + /** TAP5-2308 */ + @Test + void beaneditor_with_formfragment_and_triggerfragment_mixin_within_loop() + { + openLinks("Bean Editor With Form Fragment Demo", "Reset Page State") + assert isVisible("css=#address") + assert isVisible("css=#address_0") + click "css=#canBeDoneRemotely" + assert !isVisible("css=#address") + assert isVisible("css=#address_0") + click "css=#canBeDoneRemotely_0" + assert !isVisible("css=#address") + assert !isVisible("css=#address_0") + } }
