changeset 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
files media/css/openwebchat.css media/js/openwebchat.js openwebchat.html
diffstat 3 files changed, 29 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/media/css/openwebchat.css	Thu Apr 30 17:47:32 2009 -0700
+++ b/media/css/openwebchat.css	Thu Apr 30 18:15:32 2009 -0700
@@ -50,6 +50,10 @@
     font-variant: small-caps;
 }
 
+.raw-content {
+    display: none;
+}
+
 #templates {
     display: none;
 }
--- 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();
--- a/openwebchat.html	Thu Apr 30 17:47:32 2009 -0700
+++ b/openwebchat.html	Thu Apr 30 18:15:32 2009 -0700
@@ -21,11 +21,6 @@
     severed. Please reload this page to reconnect. (Sorry, this will
     be more user-friendly in the future!)
   </div>
-  <div class="message">
-    <div class="author"></div>
-    <div class="timestamp"></div>
-    <div class="content"></div>
-  </div>
 </div>
 <script src="/media/js/jquery.js"></script>
 <script src="/media/js/json2.js"></script>