diff media/js/openwebchat.js @ 78:0effc4481d18

refactored display code a bit
author Atul Varma <varmaa@toolness.com>
date Thu, 30 Apr 2009 18:15:32 -0700
parents 1c99c08d2a54
children 91f31d2030b9
line wrap: on
line diff
--- a/media/js/openwebchat.js	Thu Apr 30 17:47:32 2009 -0700
+++ b/media/js/openwebchat.js	Thu Apr 30 18:15:32 2009 -0700
@@ -179,6 +179,24 @@
       window.scrollTo(0, $('#bottom').position().top);
     }
 
+    function msg2dom(msg) {
+      var message = $('<div class="message"></div>');
+      message.append('<div class="author"></div>');
+      message.append('<div class="timestamp"></div>');
+      message.append('<div class="content"></div>');
+      message.append('<div class="raw-content"></div>');
+
+      $('.content', message).html(msg.content);
+      $('.raw-content', message).text(msg.content);
+
+      $('.author', message).text(msg.author);
+      $('.timestamp', message).text(msg.time);
+
+      return message;
+    }
+
+    var lastAuthor;
+
     function onMessage(msg, doAnimation) {
       if (typeof(doAnimation) == "undefined")
         doAnimation = true;
@@ -186,24 +204,20 @@
       if (owStorage.get('lastMessage') == msg.content)
         owStorage.set('lastMessage', '');
 
-      var block = $('#templates .message').clone();
-      $('.content', block).html(msg.content);
+      var message = msg2dom(msg);
 
-      var author = msg.author ? msg.author : 'Anonymous';
-      if (author != $('#content .author:last').text())
-        $('.author', block).text(author);
+      if (msg.author == lastAuthor)
+        $('.author', message).hide();
       else
-        $('.author', block).remove();
-
-      $('.timestamp', block).text(msg.time);
+        lastAuthor = msg.author;
 
       if (doAnimation)
-        block.hide();
+        message.hide();
 
-      $('#incoming-messages').append(block);
+      $('#incoming-messages').append(message);
 
       if (doAnimation)
-        block.slideDown(scrollToBottom);
+        message.slideDown(scrollToBottom);
     }
 
     $('#incoming-messages').hide();