Less jquery, more templating in conversation view
`if (foo) then jquery-dom-insert...` is a poor pattern to follow. Instead, let mustache do the work.
This commit is contained in:
parent
e74cba8a92
commit
d470b0eb53
2 changed files with 14 additions and 7 deletions
|
@ -61,6 +61,13 @@
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
{{#group}}
|
||||||
|
<button class='new-group-update'>Update group</button>
|
||||||
|
<button class='leave-group'>Leave group</button>
|
||||||
|
{{/group}}
|
||||||
|
{{^group}}
|
||||||
|
<button class='end-session'>End Session</button>
|
||||||
|
{{/group}}
|
||||||
<div class='extension-details'>
|
<div class='extension-details'>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Signal for Chrome</li>
|
<li>Signal for Chrome</li>
|
||||||
|
|
|
@ -18,12 +18,17 @@
|
||||||
window.Whisper = window.Whisper || {};
|
window.Whisper = window.Whisper || {};
|
||||||
|
|
||||||
Whisper.ConversationView = Backbone.View.extend({
|
Whisper.ConversationView = Backbone.View.extend({
|
||||||
className: 'conversation',
|
className: function() {
|
||||||
|
return [ 'conversation', this.model.get('type') ].join(' ');
|
||||||
|
},
|
||||||
initialize: function() {
|
initialize: function() {
|
||||||
this.listenTo(this.model, 'destroy', this.stopListening); // auto update
|
this.listenTo(this.model, 'destroy', this.stopListening); // auto update
|
||||||
this.template = $('#conversation').html();
|
this.template = $('#conversation').html();
|
||||||
Mustache.parse(this.template);
|
Mustache.parse(this.template);
|
||||||
this.$el.html(Mustache.render(this.template));
|
|
||||||
|
this.$el.html(Mustache.render(this.template,
|
||||||
|
{ group: this.model.get('type') === 'group' }
|
||||||
|
));
|
||||||
|
|
||||||
this.fileInput = new Whisper.FileInputView({
|
this.fileInput = new Whisper.FileInputView({
|
||||||
el: this.$el.find('.attachments')
|
el: this.$el.find('.attachments')
|
||||||
|
@ -35,11 +40,6 @@
|
||||||
this.$el.find('.discussion-container').append(this.view.el);
|
this.$el.find('.discussion-container').append(this.view.el);
|
||||||
|
|
||||||
this.model.fetchMessages({reset: true});
|
this.model.fetchMessages({reset: true});
|
||||||
|
|
||||||
if (this.model.get('type') === 'group') {
|
|
||||||
this.$el.addClass('group');
|
|
||||||
this.$el.find('.send-message-area').append($('<button>').addClass('new-group-update').text('Update group'));
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
events: {
|
events: {
|
||||||
|
|
Loading…
Reference in a new issue