Get rid of Layout global

Instead, trigger and listen for events on the conversation collection
object.
This commit is contained in:
lilia 2014-11-19 23:08:22 -08:00
parent a835887459
commit d1c5b6da7a
4 changed files with 9 additions and 5 deletions

View file

@ -22,7 +22,7 @@
if (textsecure.storage.getUnencrypted("number_id") === undefined) { if (textsecure.storage.getUnencrypted("number_id") === undefined) {
window.location = '/options.html'; window.location = '/options.html';
} else { } else {
Whisper.Layout = new Whisper.InboxView({el: document}); new Whisper.InboxView({el: document});
textsecure.storage.putUnencrypted("unreadCount", 0); textsecure.storage.putUnencrypted("unreadCount", 0);
extension.navigator.setBadgeText(""); extension.navigator.setBadgeText("");
} }

View file

@ -20,14 +20,14 @@ var Whisper = Whisper || {};
}, },
open: function(e) { open: function(e) {
$('.conversation').trigger('close'); // detach any existing conversation views this.$el.addClass('selected');
if (!this.view) { if (!this.view) {
this.view = new Whisper.ConversationView({ model: this.model }); this.view = new Whisper.ConversationView({ model: this.model });
} else { } else {
this.view.delegateEvents(); this.view.delegateEvents();
} }
this.view.render(); this.model.collection.trigger('selected', this.view);
this.$el.addClass('selected');
}, },
render: function() { render: function() {

View file

@ -57,7 +57,6 @@
}, },
render: function() { render: function() {
Whisper.Layout.setContent(this.$el.show());
this.view.scrollToBottom(); this.view.scrollToBottom();
return this; return this;
} }

View file

@ -44,6 +44,11 @@
}.bind(this)); }.bind(this));
}.bind(this)); }.bind(this));
this.conversations.on('selected', function(view) {
$('.conversation').hide().trigger('close'); // detach any existing conversation views
this.setContent(view.$el.show());
view.render();
}, this);
}, },
events: { events: {
'click #new-message': 'new_message', 'click #new-message': 'new_message',