Sha256: 73e7658b20b6bd57e725abcb651ef5d413f88ae329167870cc2e51010ac9c9a5

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

Lanes.Screens.ChangeListener = {

    model_events:
        'remote-update': 'onChange'

    events:
        'show.bs.dropdown .changes-notification': 'onChangesShow'

    session:
        change_count: ['number', true, 0]

    derived:
        changes: deps:[], fn: ->
            new Lanes.Data.ChangeSetCollection([],{ parent: this })
        changes_visible: { deps: ['change_count'], fn:-> @change_count > 0 }

    bindings:
        'changes_visible': { selector: '.changes-notification', type: 'toggle' }
        'change_count': [
            { selector: '.changes-notification .title span',             type: 'text' }
            { selector: '.changes-notification .dropdown-toggle .badge', type: 'text' }
        ]

    subviews:
        changesDropDown:
            hook: 'changes-display'
            view: 'ModelUpdate'
            collection: 'changes'

    onChange: (model,change)->
        @changes.add(change)
        @change_count += 1

    bindModel: (model)->
        Lanes.Views.Base.prototype.bindModel.call(this, model)
        @changes.reset([])
        @change_count = 0

    onChangesShow: (ev)->
        this.changes.invoke('updateTimeAgo')
        this.$('.changes-notification .scroller').animate({ scrollTop: 0 })

}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lanes-0.0.8 client/lanes/screens/ChangeListener.coffee
lanes-0.0.5 client/lanes/screens/ChangeListener.coffee