changeset 79:91f31d2030b9

simplified msg display code more
author Atul Varma <varmaa@toolness.com>
date Thu, 30 Apr 2009 18:34:30 -0700
parents 0effc4481d18
children 002868ce7212
files media/js/openwebchat.js
diffstat 1 files changed, 16 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/media/js/openwebchat.js	Thu Apr 30 18:15:32 2009 -0700
+++ b/media/js/openwebchat.js	Thu Apr 30 18:34:30 2009 -0700
@@ -69,11 +69,6 @@
   listenForMessages: function listenForMessages(options) {
     var self = this;
 
-    function processMessage(msg) {
-      options.storage.append(msg);
-      options.onMessage(msg);
-    }
-
     jQuery.ajax(
       {type: 'GET',
        url: 'listen',
@@ -90,7 +85,9 @@
        success: function(data, textStatus) {
          // TODO: Make sure data.messages is an array.
          for (var i = 0; i < data.messages.length; i++)
-           processMessage(data.messages[i]);
+           options.storage.append(data.messages[i]);
+
+         options.onMessages(data.messages);
          // Start another long poll.
          self.listenForMessages(options);
        }
@@ -197,10 +194,7 @@
 
     var lastAuthor;
 
-    function onMessage(msg, doAnimation) {
-      if (typeof(doAnimation) == "undefined")
-        doAnimation = true;
-
+    function onMessage(msg, container) {
       if (owStorage.get('lastMessage') == msg.content)
         owStorage.set('lastMessage', '');
 
@@ -211,25 +205,28 @@
       else
         lastAuthor = msg.author;
 
-      if (doAnimation)
-        message.hide();
+      container.append(message);
+    }
+
+    function onMessages(msgs) {
+      var container = $('<div class="messages"></div>');
 
-      $('#incoming-messages').append(message);
+      for (var i = 0; i < msgs.length; i++)
+        onMessage(msgs[i], container);
 
-      if (doAnimation)
-        message.slideDown(scrollToBottom);
+      container.hide();
+      $('#incoming-messages').append(container);
+      container.slideDown(scrollToBottom);
     }
 
     $('#incoming-messages').hide();
-
     for (var i = 0; i < convStorage.length; i++)
-      onMessage(convStorage.get(i), false);
-
+      onMessage(convStorage.get(i), $('#incoming-messages'));
     $('#incoming-messages').slideDown();
 
     OpenWebChat.listenForMessages(
       {storage: convStorage,
-       onMessage: onMessage,
+       onMessages: onMessages,
        onError: function onError(exception) {
          if (window.console)
            window.console.log('The error', exception, 'occurred.');