Anton Shestakov <av6@dwimlabs.net>, Mon, 21 Mar 2016 20:21:40 +0800
index: try to disconnect cleanly before browser tab/window is closed
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) -> else if @_foldable(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() @model.get('contact')?.get('d/handle') or @model.get('from') @rivet = rivets.bind(@el, model: @model, view: this) 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) return @$el.scrollTop() + @$el.height() == @$el.get(0).scrollHeight @$el.scrollTop(@$el.get(0).scrollHeight)