diff --git a/js/models/messages.js b/js/models/messages.js index f67e2ff0d..9c16a55b8 100644 --- a/js/models/messages.js +++ b/js/models/messages.js @@ -218,15 +218,9 @@ }); } - conversation.messageCollection.add(message); conversation.save().then(function() { message.save().then(function() { - updateInbox(); - if (message.isIncoming()) { - notifyConversation(message); - } else { - updateConversation(conversation.id); - } + notifyConversation(message); }); }); }); diff --git a/js/panel_controller.js b/js/panel_controller.js index 3a454ce4b..b098f0a9e 100644 --- a/js/panel_controller.js +++ b/js/panel_controller.js @@ -84,7 +84,6 @@ window.updateInbox = function() { // TODO: remove ConversationController.updateInbox(); }; - conversations.on('change:active_at', ConversationController.updateInbox); ConversationController.updateInbox(); setUnreadCount(storage.get("unreadCount", 0)); @@ -104,8 +103,7 @@ window.updateConversation = function(conversationId) { var conversation = conversations.get(conversationId); if (conversation) { - conversation.fetch(); - conversation.fetchMessages(); + conversation.reload(); } }; @@ -115,12 +113,11 @@ window.notifyConversation = function(message) { var conversationId = message.get('conversationId'); + var conversation = conversations.add({id: conversationId}); if (inboxOpened) { - // already open - updateConversation(conversationId); + conversation.reload(); extension.windows.drawAttention(inboxWindowId); } else if (Whisper.Notifications.isEnabled()) { - var conversation = conversations.add({id: conversationId}); var sender = conversations.add({id: message.get('source')}); conversation.fetch().then(function() { sender.fetch().then(function() { @@ -130,15 +127,14 @@ tag: conversation.id }); notification.onclick = function() { - openConversation(conversation.id); + openInbox(); }; }); }); conversation.fetchMessages(); } else { - openConversation(conversationId); openInbox(); - extension.windows.drawAttention(windowId); + ConversationController.updateInbox(); } }; diff --git a/js/views/inbox_view.js b/js/views/inbox_view.js index 99ed04408..6083babd0 100644 --- a/js/views/inbox_view.js +++ b/js/views/inbox_view.js @@ -66,7 +66,9 @@ appWindow: this.model.appWindow }); $el = view.$el; - $el.find('.message-list').addClass('loading'); + if (conversation.messageCollection.length === 0) { + $el.find('.message-list').addClass('loading'); + } } $el.prependTo(this.el); $el.find('.message-list').trigger('reset-scroll');