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.
>