43 lines · 945 B · Text
RawDownload
class app.views.ListSelect extends app.View  @activeClass: 'active'   @events:    click: 'onClick'   constructor: (@el) -> super   deactivate: ->    @deselect() if super    return   select: (el) ->    @deselect()    if el      el.classList.add @constructor.activeClass      $.trigger el, 'select'    return   deselect: ->    if selection = @getSelection()      selection.classList.remove @constructor.activeClass      $.trigger selection, 'deselect'    return   selectByHref: (href) ->    unless @getSelection()?.getAttribute('href') is href      @select @find("a[href='#{href}']")    return   selectCurrent: ->    @selectByHref location.pathname + location.hash    return   getSelection: ->    @findByClass @constructor.activeClass   onClick: (event) =>    return if event.which isnt 1 or event.metaKey or event.ctrlKey    target = $.eventTarget(event)    if target.tagName is 'A'      @select target    return