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

Howard M. Lewis Ship updated TAP5-1309:
---------------------------------------

    Summary: When using a MultiZoneUpdate, Tapestry will clear the referenced 
zone  (was: No way to leave a zone's content when updating other zones with 
MultiZoneUpdate)

Again, the fix here is that when using MultiZoneUpdate, the content property of 
the JSON reply must be missing, not blank.

> When using a MultiZoneUpdate, Tapestry will clear the referenced zone
> ---------------------------------------------------------------------
>
>                 Key: TAP5-1309
>                 URL: https://issues.apache.org/jira/browse/TAP5-1309
>             Project: Tapestry 5
>          Issue Type: Bug
>    Affects Versions: 5.2.1
>            Reporter: Andy Blower
>            Assignee: Howard M. Lewis Ship
>
> I've spent all day chasing down an issue that appeared when we upgraded to 
> Tapestry 5.2.1 - it doesn't occur with T5.2.0, and I finally managed to find 
> the change that is causing the problem. It's the fix for TAP5-1177 where 
> tapestry.js was changed from
>                                 Tapestry.loadScriptsInReply(reply, function() 
> {
>                                                 /*
>                                                  * In a multi-zone update, 
> the reply.content may be blank or
>                                                  * missing.
>                                                  */
>                                                 reply.content && 
> this.show(reply.content);
>  to
>                                 Tapestry.loadScriptsInReply(reply, function() 
> {
>                                                 /*
>                                                  * In a multi-zone update, 
> the reply.content may be missing,
>                                                  * in which case, leave the 
> curent content in place. TAP5-1177
>                                                  */
>                                                 reply.content != undefined && 
> this.show(reply.content);
> The situation this is causing an issue for is where we have a form in a zone 
> and submitting the form needs to update another zone so MultiZoneUpdate is 
> used which has content in the json for the other zone. i.e.
> {
>   "content" : "",
>   "zones" : {
>     "someThingZone" : "<b>stuff</b>"
>   }
> }
> This used to leave the form inside it's zone alone which is good because some 
> other javascript fires which accesses part of the form. If the form has been 
> removed from the DOM (as happens with T5.2.1) then this Javascript fails. I'm 
> not very familiar with this code, and I've not personally used 
> MultiZoneUpdate, but it seems to me at first glance that the content bit of 
> the json will always be "" for MultiZoneUpdate. All the content goes into the 
> "zones" part of the json. Also, the comment in the T5.2.1 version seems to 
> say that the content should be left alone if content is missing, but since 
> missing is the same as "" it doesn't do that.
> "I think Tapestry should not set the content property of the response when 
> there's a MultiZoneUpdate response, so as to leave the Zone's current content 
> unchanged." - HLS

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to