Ethan, it's great that you have introduced binding via css selectors! It makes me feel that upgrade to Lift 2.2 wasn't useless :s)
Vladimir 2011/4/5 Ethan Jewett <[email protected]> > Hi Dick, > > Currently my plan for ESME-268 is to handle it in Timeline.scala. > Yesterday I got the reply and conversation functionality working there > and the next step is to re-implement the resend (and add the author, > which I forgot before!). If you take a look at the branch, you'll see > that what I'm doing is moving away from handling the timeline using > display_messages_top.js and moving towards handling it using Lift's > templates and JsCmds. The advantage of doing it this way is that we > will no longer need to think about the communication between the > client (browser) and the server (Lift), as Lift will handle it. What > we have now in the branch is a lot simpler than what we had before in > some ways. > > Can you try handling it in Timeline.scala in the branch? That would > be great. The place to look it the "renderMessage" method. At the end > of this method is a piece of code that looks like: > > ("#avatar [src]" #> imageUrl & > ".updates-box [id]" #> messageId & > ".msgbody *" #> messageBody & > ".supp_data *" #> suppString & > ".reply [href]" #> replyHref & > convTransform )(messageTemplate) > > What this does is transform the XML in the messageTemplate variable > (at the bottom of Timeline.scala - but this will be in a template > later) into different XML based on the rules outlined here: > http://simply.liftweb.net/index-7.10.html > > So, for example: "#avatar [src]" #> imageUrl > This does the following: Finds all elements with class="avatar" and > makes the value of the src attribute the string imageUrl. This causes > the correct image to display along with the message. > > The convTransform val is an example of a transform that is chosen > dynamically based on some context about the message. We'll want to do > something similar for the resend by adding another '&' and > transformation clause after convTransform, but based on a comparison > between User.currentUser (a Box[String]) and the user on the message > which you get by doing m._1.author.obj.map(_.id), which I think > returns a Box[Long], but it should be the same value as the String. > > Want to take a shot at it? If you have issues with the Scala, just > send it to the list and I'll take a look. > > Ethan > > On Tue, Apr 5, 2011 at 5:03 AM, Richard Hirsch <[email protected]> > wrote: > > @Ethan since you are currently rewriting the timelines - if you could > > add the current user to the timeline, I can deal with ESME-268 (User > > should not be offered the option to "resend" their own messages - it > > has no effect) > > > > D. > > > -- Best Regards, Vladimir Ivanov
