Sha256: d84d4a91b54a38b674c6851bdf563b0ee11e23c91ef480307683dba66c3a2b9c

Contents?: true

Size: 850 Bytes

Versions: 34

Compression:

Stored size: 850 Bytes

Contents

Spine  = @Spine or require('spine')
$      = Spine.$

class Spine.List extends Spine.Controller
  events:
    'click .item': 'click'

  selectFirst: false

  constructor: ->
    super
    @bind 'change', @change

  template: ->
    throw 'Override template'

  change: (item) =>
    @current = item

    unless @current
      @children().removeClass('active')
      return

    @children().removeClass('active')
    $(@children().get(@items.indexOf(@current))).addClass('active')

  render: (items) ->
    @items = items if items
    @html @template(@items)
    @change @current
    if @selectFirst
      unless @children('.active').length
        @children(':first').click()

  children: (sel) ->
    @el.children(sel)

  click: (e) ->
    item = @items[$(e.currentTarget).index()]
    @trigger('change', item)
    true

module?.exports = Spine.List

Version data entries

34 entries across 34 versions & 5 rubygems

Version Path
flipper-ui-0.2.0.beta2 lib/flipper/ui/assets/javascripts/spine/list.coffee
flipper-ui-0.2.0.beta1 lib/flipper/ui/assets/javascripts/spine/list.coffee
spine-rails-0.1.2 vendor/assets/javascripts/spine/list.coffee
spine-rails-0.1.1 vendor/assets/javascripts/spine/list.coffee
event_cal-2.0.2 vendor/assets/javascripts/lib/spinelib/list.js.coffee
event_cal-2.0.1 vendor/assets/javascripts/lib/spinelib/list.js.coffee
event_cal-2.0.0 vendor/assets/javascripts/lib/spinelib/list.js.coffee
event_cal-1.3.0 vendor/assets/javascripts/lib/spinelib/list.js.coffee
event_cal-1.2.5 vendor/assets/javascripts/lib/spinelib/list.js.coffee
event_cal-1.2.4 vendor/assets/javascripts/lib/spinelib/list.js.coffee
event_cal-1.2.3 vendor/assets/javascripts/lib/spinelib/list.js.coffee
event_cal-1.2.2 vendor/assets/javascripts/lib/spinelib/list.js.coffee
event_cal-1.2.1 vendor/assets/javascripts/lib/spinelib/list.js.coffee
event_cal-1.2 vendor/assets/javascripts/lib/spinelib/list.js.coffee
event_cal-1.1 vendor/assets/javascripts/lib/spinelib/list.js.coffee
event_cal-1.0 vendor/assets/javascripts/lib/spinelib/list.js.coffee
spinebox-0.0.15 lib/spinebox/templates/app/app/assets/javascripts/lib/spine/list.coffee
spinebox-0.0.14 lib/spinebox/templates/app/app/assets/javascripts/lib/spine/list.coffee
spinebox-0.0.13 lib/spinebox/templates/app/app/assets/javascripts/lib/spine/list.coffee
scales-monitor-0.0.4 lib/scales-monitor/app/app/assets/javascripts/lib/spine/list.coffee