You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@esme.apache.org by es...@apache.org on 2011/04/03 14:51:02 UTC
svn commit: r1088273 - in /esme/branches/esme-328_comet_timeline_rewrite: ./
src/main/scala/org/apache/esme/comet/ src/main/scala/org/apache/esme/model/
src/main/webapp/info_view/ src/main/webapp/templates-hidden/
Author: esjewett
Date: Sun Apr 3 12:51:01 2011
New Revision: 1088273
URL: http://svn.apache.org/viewvc?rev=1088273&view=rev
Log:
[ESME-328] Basic rewrite structure in place. Timelines should all be working, but there is a lot still left to fix in the actual message display. New messages are not yet added to the timeline dynamically.
Added:
esme/branches/esme-328_comet_timeline_rewrite/
- copied from r1088227, esme/trunk/server/
Removed:
esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/templates-hidden/timeline_conversation.html
esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/templates-hidden/timeline_personal.html
esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/templates-hidden/timeline_tag.html
esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/templates-hidden/timeline_user_messages.html
Modified:
esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/Timeline.scala
esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/model/Message.scala
esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/model/User.scala
esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/conversation.html
esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/messages.html
esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/tag.html
esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/user.html
esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/templates-hidden/message_core.html
Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/Timeline.scala
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/Timeline.scala?rev=1088273&r1=1088227&r2=1088273&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/Timeline.scala (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/Timeline.scala Sun Apr 3 12:51:01 2011
@@ -35,7 +35,8 @@ import lib._
import java.text._
-trait Timeline extends CometActor {
+trait Timeline extends CometActor {
+
protected var messages: List[(Long,MailboxReason,Boolean)] = Nil
protected var clearMessages: Boolean = false
protected val jsId: String
@@ -50,33 +51,72 @@ trait Timeline extends CometActor {
super.localShutdown()
}
- def render = {
+ def render = {
+
+// TODO - handle clearMessages = true.
+// TODO - Get resend, reply, and conversation working
+
val msgMap = Message.findMessages(messages map {_._1})
val toDisplay = for ((id, reason, resent) <- messages;
msg <- msgMap.get(id))
- yield (msg, reason, resent)
-
- // Only clear messages if someone has demanded a complete reset by setting the flag
- def clearFunc:JsCmd = if(clearMessages) {
- clearMessages = false
- JsFunc("clearMessages", jsId).cmd
+ yield (msg, reason, resent)
+
+ <div id={"\""+jsId+"\""}>{toDisplay.map(renderMessage(_))}</div>
+ }
+
+ private def renderMessage(m: (Message,MailboxReason,Boolean)) = {
+ val imageUrl = m._1.author.obj.map(_.image_url).openOr("")
+ val messageId = "message_" + m._1.id.is.toString
+ val messageBody = m._1.digestedXHTML
+ val messagePool:String = m._1.pool.obj.map("in pool \'" + _.getName + "\'").openOr("")
+
+// TODO: Put date in the "ago" format
+ val messageDateStr = toInternetDate(m._1.when)
+ val messageReason = if(m._2.attr.length > 0){
+ if(m._2.attr.key == "resent_from") {
+ "resent by " + User.find(m._2.attr.value).map(_.nickname).openOr("")
+ } else {
+ "caused by " + m._2.attr.key
+ }
} else {
- Run("")
+ "via " + m._1.source
}
-
- OnLoad(
- clearFunc &
- JsCrVar ("root", Message.root) &
- JsCrVar(jsId, JsArray(
- filter(toDisplay).map{case (msg, reason, resent) =>
- JsObj(("message",msg.asJs),("reason",reason.asJs), ("resent",resent))
- } :_*)) &
- JsFunc("displayMessages", JsVar(jsId), jsId, JsVar("root")).cmd
- )
- }
+
+ val suppString = messagePool + " " + messageDateStr + " " + messageReason
+
+ ("#avatar [src]" #> imageUrl &
+ ".updates-box [id]" #> messageId &
+ ".msgbody *" #> messageBody &
+ ".supp_data *" #> suppString )(messageTemplate)
+ }
// If we need to filter out some messages on display, override this method.
def filter(msgs:List[(Message,MailboxReason,Boolean)]):List[(Message,MailboxReason,Boolean)] = {
msgs
- }
+ }
+
+// TODO Should be factored out into a template
+ val messageTemplate =
+ <div class="updates-box" id="message">
+ <div class="avatar">
+ <img id="avatar" width="40px" src=""/>
+ </div>
+ <div class="update2">
+ <a href="" class="author"/>
+ <div class="msgbody"/>
+ <div class="supp_data"/>
+ <div class="actions">
+ <a href="#" class="resend">
+ <lift:loc>ui_messages_message_label_resend</lift:loc>
+ </a><span class="resend">| </span>
+ <a href="#" class="reply">
+ <lift:loc>ui_messages_message_label_reply</lift:loc>
+ </a>
+ <span class="conversation">| </span>
+ <a class="conversation">
+ <lift:loc>ui_messages_message_label_conversation</lift:loc>
+ </a>
+ </div>
+ </div>
+ </div>
}
Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/model/Message.scala
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/model/Message.scala?rev=1088273&r1=1088227&r2=1088273&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/model/Message.scala (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/model/Message.scala Sun Apr 3 12:51:01 2011
@@ -43,9 +43,7 @@ import lib._
object Message extends Message with LongKeyedMetaMapper[Message] {
val logger: Logger = Logger ("org.apache.esme.model.Message")
-
- val root = LiftRules.context.path
-
+
private def fixConversation(msg: Message) {
if (!msg.conversation.defined_? && msg.replyTo.defined_?) {
for (replyTo <- msg.replyTo.obj) {
@@ -55,7 +53,9 @@ object Message extends Message with Long
msg.conversation(replyTo.conversation)
}
}
- }
+ }
+
+ val root = LiftRules.context.path
def cacheSize: Int = 10000
Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/model/User.scala
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/model/User.scala?rev=1088273&r1=1088227&r2=1088273&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/model/User.scala (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/model/User.scala Sun Apr 3 12:51:01 2011
@@ -287,7 +287,7 @@ class User extends KeyedMapper[Long, Use
def image_url: String = (imageUrl.is) match {
case (f) if f.length > 1 => f
- case (_) => "/images/avatar.jpg"
+ case (_) => LiftRules.context.path + "/images/avatar.jpg"
}
Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/conversation.html
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/conversation.html?rev=1088273&r1=1088227&r2=1088273&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/conversation.html (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/conversation.html Sun Apr 3 12:51:01 2011
@@ -29,7 +29,9 @@
</script>
</div>
<div class="container-aux">
- <lift:embed what="templates-hidden/timeline_conversation"/>
+ <lift:conv_info>
+ <conv:cometTimeline />
+ </lift:conv_info>
</div>
</lift:conv_info>
</lift:surround>
Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/messages.html
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/messages.html?rev=1088273&r1=1088227&r2=1088273&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/messages.html (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/messages.html Sun Apr 3 12:51:01 2011
@@ -25,6 +25,6 @@
</div>
<div class="container-aux">
- <lift:embed what="templates-hidden/timeline_personal"/>
+ <lift:comet type="PersonalTimeline" />
</div>
</lift:surround>
\ No newline at end of file
Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/tag.html
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/tag.html?rev=1088273&r1=1088227&r2=1088273&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/tag.html (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/tag.html Sun Apr 3 12:51:01 2011
@@ -16,7 +16,14 @@
specific language governing permissions and limitations *
under the License. *
-->
-<lift:surround with="base" at="left">
+<lift:surround with="base" at="left">
+ <head>
+ <script type="text/javascript">
+ var postPostCallback = function() {
+ clearReplyTo();
+ };
+ </script>
+ </head>
<lift:tag_display>
<div id="back-header">
<h1>
@@ -25,8 +32,10 @@
</h1>
<lift:embed what="templates-hidden/message_update_box"/>
</div>
- <div class="container-aux">
- <lift:embed what="templates-hidden/timeline_tag"/>
+ <div class="container-aux">
+ <lift:tag_display>
+ <tag:cometTimeline />
+ </lift:tag_display>
</div>
<script>
jQuery('#vMsg').val("#<tag:name/>")
Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/user.html
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/user.html?rev=1088273&r1=1088227&r2=1088273&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/user.html (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/info_view/user.html Sun Apr 3 12:51:01 2011
@@ -44,7 +44,9 @@
<div id="tabs-1">
<dl class="">
<dd class="b-clouds">
- <lift:embed what="templates-hidden/timeline_user_messages"/>
+ <lift:user_info>
+ <user:cometTimeline />
+ </lift:user_info>
</dd>
</dl>
</div>
Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/templates-hidden/message_core.html
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/templates-hidden/message_core.html?rev=1088273&r1=1088227&r2=1088273&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/templates-hidden/message_core.html (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/webapp/templates-hidden/message_core.html Sun Apr 3 12:51:01 2011
@@ -18,11 +18,6 @@
-->
<div class="updates-box" id="message">
- <head>
- <script src="/scripts/display_messages_top.js" type="text/javascript" />
- <script src="/scripts/pretty.js" type="text/javascript" />
- <lift:UserSnip.resendScript/>
- </head>
<div class="avatar">
<img id="avatar" width="40px"/>
</div> <!--end avatar-->
@@ -43,7 +38,7 @@
</a>
</div> <!--end actions-->
</div> <!--end update2-->
-
+
</div>