Hear, hear!

I've started using css selectors for a personal project and love them.
 Much more concise and understandable.  Not to mention reducing
confusion for the web designers -- if you split the front-end back-end
responsibilities.


Thanks,
Eric

On Tue, Apr 5, 2011 at 11:25 AM, Ethan Jewett <[email protected]> wrote:
> 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