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
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