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/07 22:28:29 UTC

svn commit: r1089990 - in /esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet: ConversationTimeline.scala PersonalTimeline.scala StreamTimeline.scala TagTimeline.scala Timeline.scala UserMessagesTimeline.scala

Author: esjewett
Date: Thu Apr  7 20:28:29 2011
New Revision: 1089990

URL: http://svn.apache.org/viewvc?rev=1089990&view=rev
Log:
[ESME-328] Add author name, update all timelines to use new rendering approach

Modified:
    esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/ConversationTimeline.scala
    esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/PersonalTimeline.scala
    esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/StreamTimeline.scala
    esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/TagTimeline.scala
    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/comet/UserMessagesTimeline.scala

Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/ConversationTimeline.scala
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/ConversationTimeline.scala?rev=1089990&r1=1089989&r2=1089990&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/ConversationTimeline.scala (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/ConversationTimeline.scala Thu Apr  7 20:28:29 2011
@@ -52,10 +52,8 @@ class ConversationTimeline extends Timel
   
   override def lowPriority = {   
     case ConvDistributor.MessageReceived(msg, r) =>         
-      messages = ((msg.id.is,r,true) :: messages).take(40)  
-      
-//TODO: Adapt to new timeline format
-      reRender(false)
+      messages = ((msg.id.is,r,true) :: messages).take(40) 
+      prependMessage(msg,r,true)
   }   
 
 }

Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/PersonalTimeline.scala
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/PersonalTimeline.scala?rev=1089990&r1=1089989&r2=1089990&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/PersonalTimeline.scala (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/PersonalTimeline.scala Thu Apr  7 20:28:29 2011
@@ -51,10 +51,7 @@ class PersonalTimeline extends Timeline 
   override def lowPriority = {
     case UserActor.MessageReceived(msg, r) => {
       messages = ( (msg.id.is,r,false) :: messages).take(40)
-      val mess = Message.findMessages(Seq(msg.id.is)).head._2
-      val newMessage = renderMessage((mess,r,false))    
-      val update = PrependHtml(jsId, newMessage)
-      partialUpdate(update)
+      prependMessage(msg,r,false)
     }
       
     case UserActor.Resend(msgId) =>

Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/StreamTimeline.scala
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/StreamTimeline.scala?rev=1089990&r1=1089989&r2=1089990&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/StreamTimeline.scala (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/StreamTimeline.scala Thu Apr  7 20:28:29 2011
@@ -100,7 +100,7 @@ class StreamTimeline extends PublicTimel
   override def lowPriority = {
     case ForceRender =>      
 // TODO: Adapt to new timeline format
-      reRender(false)
+      reRender(true)
 
     case Distributor.NewMessage(msg) =>     
       
@@ -124,7 +124,7 @@ class StreamTimeline extends PublicTimel
         }
       }  
 // TODO: Adapt to new timeline format
-      else reRender(false)
+      else reRender(true)
   }
   
   def getMessages:List[(Long,MailboxReason,Boolean)] = {     

Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/TagTimeline.scala
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/TagTimeline.scala?rev=1089990&r1=1089989&r2=1089990&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/TagTimeline.scala (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/TagTimeline.scala Thu Apr  7 20:28:29 2011
@@ -26,7 +26,7 @@ import net.liftweb.util.Helpers.TimeSpan
 
 import org.apache.esme._
 import actor.{Distributor,UserActor,TagDistributor}
-import model._        
+import model._                    
 
 class TagTimeline extends Timeline {  
   
@@ -54,8 +54,8 @@ class TagTimeline extends Timeline {  
   
   override def lowPriority = {
     case TagDistributor.MessageReceived(msg, r) =>
-      messages = ((msg.id.is,r,true) :: messages).take(40)
-      reRender(false)
+      messages = ((msg.id.is,r,true) :: messages).take(40) 
+      prependMessage(msg,r,false)
   }   
 
 }
\ No newline at end of file

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=1089990&r1=1089989&r2=1089990&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 Thu Apr  7 20:28:29 2011
@@ -26,7 +26,8 @@ import net.liftweb.util.Helpers._
 import scala.xml._
 import js._
 import JsCmds._
-import JE._
+import JE._      
+import net.liftweb.http.js.jquery.JqJsCmds.{PrependHtml} 
 
 import org.apache.esme._
 import org.apache.esme.actor._
@@ -54,7 +55,8 @@ trait Timeline extends CometActor {   
   def render = { 
   
 // TODO - handle clearMessages = true.   
-// TODO - Get resend working
+// TODO - Get resend working    
+// TODO - need to escape the replyHref string so that messages with ? in them don't bomb
   
     val msgMap = Message.findMessages(messages map {_._1})
     val toDisplay = for ((id, reason, resent) <- messages;
@@ -65,11 +67,12 @@ trait Timeline extends CometActor {   
   }  
   
   protected def renderMessage(m: (Message,MailboxReason,Boolean)) = {
-    val imageUrl = m._1.author.obj.map(_.image_url).openOr("")
+    val imageUrl = m._1.author.obj.map(_.image_url).openOr("")       
+    val authorNickname = m._1.author.obj.map(_.niceName).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("")  
-    val replyHref = "javascript:setReplyTo(" + m._1.id.is.toString + ", '"+ messageBody + "', " + m._1.pool.obj.map(_.id.is).openOr(0) + ", '" + m._1.author.obj.map(_.nickname).openOr("") + "')" 
+    val replyHref = "javascript:setReplyTo(" + m._1.id.is.toString + ", '"+ messageBody + "', " + m._1.pool.obj.map(_.id.is).openOr(0) + ", '" + authorNickname + "')" 
                               
     val convId = m._1.conversation.is  
     val convHref = LiftRules.context.path + "/conversation/" + convId
@@ -77,7 +80,9 @@ trait Timeline extends CometActor {   
       ".conversation [href]" #> convHref
     } else {
       ".conversation" #> Text("")
-    }
+    }   
+                        
+    val authorHref = LiftRules.context.path + "/user/" + authorNickname
     
 // TODO: Put date in the "ago" format
     val messageDateStr = toInternetDate(m._1.when)
@@ -98,13 +103,21 @@ trait Timeline extends CometActor {   
      ".msgbody *" #> messageBody &
      ".supp_data *" #> suppString &
      ".reply [href]" #> replyHref &
-     convTransform )(messageTemplate)
+     convTransform &       
+     ".author [href]" #> authorHref &
+     ".author *" #> authorNickname )(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 
-  } 
+  }     
+  
+  protected def prependMessage(m:Message, r:MailboxReason, rs:Boolean) {     
+    val newMessage = renderMessage((m,r,rs))    
+    val update = PrependHtml(jsId, newMessage)
+    partialUpdate(update)
+  }
 
 // TODO Should be factored out into a template  
   val messageTemplate = 

Modified: esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/UserMessagesTimeline.scala
URL: http://svn.apache.org/viewvc/esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/UserMessagesTimeline.scala?rev=1089990&r1=1089989&r2=1089990&view=diff
==============================================================================
--- esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/UserMessagesTimeline.scala (original)
+++ esme/branches/esme-328_comet_timeline_rewrite/src/main/scala/org/apache/esme/comet/UserMessagesTimeline.scala Thu Apr  7 20:28:29 2011
@@ -59,13 +59,12 @@ class UserMessagesTimeline extends Timel
     case UserActor.MessageReceived(msg, r) =>   
       if(msg.author == user) {
         messages = ( (msg.id.is,r,true) :: messages).take(40)   
-// TODO: Adapt to new timeline format
-        reRender(false)
+        prependMessage(msg,r,true)
       }        
       
-    case UserActor.Resend(msgId) =>     
-      messages = ( (msgId,ResendReason(user.id.is),true) :: messages).take(40)       
-// TODO: Adapt to new timeline format
-      reRender(false)      
+    case UserActor.Resend(msgId) =>      
+      val resendReason = ResendReason(user.id.is)
+      messages = ( (msgId,resendReason,true) :: messages).take(40)       
+      prependMessage(Message.findMessages(Seq(msgId)).head._2, resendReason, true)
   }   
 }
\ No newline at end of file