Cable-Desktop/js/views/message_view.js
lilia 28290477f4 Nicer timestamps with momentjs
This dependency may be a little heavy for our current use case, but we can
roll with it for now and find something slimmer if it turns out yagni.

Closes #77
Closes #40
2014-11-12 11:45:58 -08:00

37 lines
960 B
JavaScript

var Whisper = Whisper || {};
(function () {
'use strict';
Whisper.MessageView = Backbone.View.extend({
tagName: "li",
className: "entry",
initialize: function() {
this.$el.addClass(this.model.get('type'));
this.template = $('#message').html();
Mustache.parse(this.template);
this.listenTo(this.model, 'change', this.render); // auto update
this.listenTo(this.model, 'destroy', this.remove); // auto update
},
render: function() {
this.$el.html(
Mustache.render(this.template, {
message: this.model.get('body'),
timestamp: moment(this.model.get('timestamp')).fromNow(),
attachments: this.model.get('attachments'),
bubble_class: this.model.get('type') === 'outgoing' ? 'sent' : 'incoming',
sender: this.model.thread().get('type') === 'group' ? this.model.get('person') : ''
})
);
return this;
}
});
})();