I like them a lot. I never really got "bind" but these make a lot of sense.

Ethan

P.S. Actually, I think I did understand "bind", but only after seeing
how the binding via css selectors works :-)

On Tue, Apr 5, 2011 at 5:59 PM, Vladimir Ivanov <[email protected]> wrote:
> 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
>

Reply via email to