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>