You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2013/07/25 00:57:48 UTC

[jira] [Closed] (TAP5-1896) AjaxFormLoop corrupts list when redisplayed after Remove then server-side failure

     [ https://issues.apache.org/jira/browse/TAP5-1896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship closed TAP5-1896.
--------------------------------------

    Resolution: Won't Fix

Unfortunately, Tapestry doesn't have enough information to handle cases of this complexity. AjaxFormLoop expects the data on the server side to be relatively stable. There simply isn't a way to encode all the data necessary to reconstruct the state.

Tapestry is moving away from heavily stateful UIs based on AjaxFormLoop and friends; I suggest using Backbone or AngularJS for these situations. That sounds like a cop out, but it's really the way of the future.
                
> AjaxFormLoop corrupts list when redisplayed after Remove then server-side failure
> ---------------------------------------------------------------------------------
>
>                 Key: TAP5-1896
>                 URL: https://issues.apache.org/jira/browse/TAP5-1896
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3, 5.2
>            Reporter: Geoff Callender
>            Priority: Critical
>
> To see the effect use an AjaxFormLoop with input field(s) and at least 3 rows built from existing data. It must be in a Form.
> Remove row n. 
> Submit, ensuring in some way that you get a server-side validation error.
> The redisplayed loop will have all the right output values, but the input values will be corrupted:
> - the removed row (n) will be missing (good), 
> - row n+1 will be correct (good),
> - every row below that will have input values that belong to the row before it (bad).
> If you try the process again but this time remove 2 adjacent rows you'll get:
> - the removed rows (n-1 and n) will be missing (good), 
> - row n+1 will be correct (good), 
> - row n+2 will be correct (good),
> - every row below that will have input values that belong 2 rows before it (bad).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira