Fixup change:active_at handling when setting null

When a conversation goes from active to not active, it should be removed
the view rather than promoted.

// FREEBIE
pull/749/head
lilia 10 years ago
parent 712cad352c
commit a390e37abc

@ -8,10 +8,14 @@
Whisper.ConversationListView = Whisper.ListView.extend({ Whisper.ConversationListView = Whisper.ListView.extend({
tagName: 'div', tagName: 'div',
itemView: Whisper.ConversationListItemView, itemView: Whisper.ConversationListItemView,
moveToTop: function(conversation) { onChangeActiveAt: function(conversation) {
var $el = this.$('.' + conversation.cid); var $el = this.$('.' + conversation.cid);
if ($el && $el.length > 0) { if ($el && $el.length > 0) {
$el.prependTo(this.el); if (conversation.get('active_at')) {
$el.prependTo(this.el);
} else {
$el.remove();
}
} }
} }
}); });

@ -87,17 +87,17 @@
this.openConversation.bind(this, null)); this.openConversation.bind(this, null));
var inboxCollection = bg.getInboxCollection(); var inboxCollection = bg.getInboxCollection();
this.inboxView = new Whisper.ConversationListView({ this.inboxListView = new Whisper.ConversationListView({
el : this.$('.conversations'), el : this.$('.conversations'),
collection : inboxCollection collection : inboxCollection
}).render(); }).render();
this.inboxView.listenTo(inboxCollection, 'change:active_at', this.inboxView.moveToTop); this.inboxListView.listenTo(inboxCollection, 'change:active_at', this.inboxListView.onChangeActiveAt);
new SocketView().render().$el.appendTo(this.$('.socket-status')); new SocketView().render().$el.appendTo(this.$('.socket-status'));
extension.windows.beforeUnload(function() { extension.windows.beforeUnload(function() {
this.inboxView.stopListening(); this.inboxListView.stopListening();
}.bind(this)); }.bind(this));
new Whisper.WindowControlsView({ new Whisper.WindowControlsView({

Loading…
Cancel
Save