I think you've found a bug ... 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. Please add to JIRA and I'll see about fixing it soon.
On Thu, Oct 14, 2010 at 12:12 PM, Blower, Andy <andy.blo...@proquest.co.uk> wrote: > 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. > > Howard, what's your opinion? Can content ever be set to something, or left > undefined? I can't see how using MultiZoneUpdate. This is affecting some > pretty major functionality and we have a release in a couple of weeks, so I > need to find a solution to this problem pretty swiftly. I will see if I can > modify our javascript code to work around this without breaking anything > else, but I'm not that hopeful. > > > Cheers, > > Andy. > > P.S. I found some other issues with the JS stacks, but that's not breaking > anything - just may not be what you'd expect. I'll detail those in another > email when I get the time. > -- Howard M. Lewis Ship Creator of Apache Tapestry The source for Tapestry training, mentoring and support. Contact me to learn how I can get you up and productive in Tapestry fast! (971) 678-5210 http://howardlewisship.com --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org