Anton Shestakov <av6@dwimlabs.net>, Sun, 03 Apr 2016 18:47:43 +0800
contacts: rename d/avatar attribute to avatar/url
coffee/messages.coffee
Permissions: -rw-r--r--
class Tram.Message extends Backbone.Model @on 'add change:stamp', -> @set('d/mstamp', moment(@get('stamp'))) class Tram.Messages extends Backbone.Collection splitThreshold: 30 * 60 * 1000 model.get('stamp').valueOf() @_splitOrFold(prev, model) @_splitOrFold(model, next) _splitOrFold: (m1, m2) -> Math.abs(m1.get('stamp').valueOf() - m2.get('stamp').valueOf()) > @splitThreshold m1.get('from') is m2.get('from') and Math.abs(m1.get('stamp').valueOf() - m2.get('stamp').valueOf()) < @foldThreshold class Tram.MessageView extends Backbone.View template: $('#message-template').html() @$el.attr('data-id', @model.get('id')) @$avatarColumn = @$('.avatar-column') @listenTo(@model, 'change:contact', @updateContact) if not @model.previous('contact')? and @model.get('contact')? av = new Tram.AvatarView(model: contact) @$avatarColumn.prepend(av.render().el) @model.get('contact')?.get('d/handle') or @model.get('from') @rivet = rivets.bind(@el, model: @model, view: this) contact = @model.get('contact') av = new Tram.AvatarView(model: contact) @$avatarColumn.prepend(av.render().el) class Tram.LogApp extends Backbone.View @listenTo(@collection, 'add', @onAdd) onAdd: (model, collection) -> mi = collection.indexOf(model) view = new Tram.MessageView(model: model) @$el.children().eq(mi - 1).after(el) @$el.scrollTop() + @$el.height() == @$el.get(0).scrollHeight @$el.scrollTop(@$el.get(0).scrollHeight)