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