diff --git a/js/models/conversations.js b/js/models/conversations.js index 7644aed3..9d17d7f6 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -123,6 +123,10 @@ message.send(sendFunc(this.get('id'), body, attachments, now)); }, + isSearchable: function() { + return !this.get('left') || !!this.get('lastMessage'); + }, + endSession: function() { if (this.isPrivate()) { var now = Date.now(); diff --git a/js/models/messages.js b/js/models/messages.js index 1079d5fd..0b386f64 100644 --- a/js/models/messages.js +++ b/js/models/messages.js @@ -394,7 +394,10 @@ }); }, - fetchConversation: function(conversationId) { + fetchConversation: function(conversationId, limit) { + if (typeof limit !== 'number') { + limit = 100; + } return new Promise(function(resolve) { var upper; if (this.length === 0) { @@ -404,7 +407,7 @@ // not our first rodeo, fetch older messages. upper = this.at(0).get('received_at'); } - var options = {remove: false, limit: 100}; + var options = {remove: false, limit: limit}; options.index = { // 'conversation' index on [conversationId, received_at] name : 'conversation', diff --git a/js/views/conversation_search_view.js b/js/views/conversation_search_view.js index 5226e831..4dc810ad 100644 --- a/js/views/conversation_search_view.js +++ b/js/views/conversation_search_view.js @@ -67,7 +67,11 @@ } this.pending = this.pending.then(function() { return this.typeahead.search(query).then(function() { - this.typeahead_view.collection.reset(this.typeahead.models); + this.typeahead_view.collection.reset( + this.typeahead.filter(function(m) { + return m.isSearchable(); + }) + ); }.bind(this)); }.bind(this)); this.trigger('show');