Sha256: cc6b1722cf4e65621ad689545fc1b9477479dea6133d6a867301c31c03e35cbe

Contents?: true

Size: 1.35 KB

Versions: 3

Compression:

Stored size: 1.35 KB

Contents

class Tao.Form.Select.ResultBase extends TaoComponent

  @tag 'tao-select-result'

  @attribute 'selected', 'clearable', type: 'boolean'

  @attribute 'disabled', type: 'boolean', observe: true

  _connected: ->
    @field = @jq.find 'select'
    @_bind()

  _disconnected: ->
    @off()

  _bind: ->
    @on 'click', 'select', =>
      @trigger 'activeClick'
      false

    @on 'click', '.link-clear', (e) =>
      return if @disabled
      @clear() && @trigger('clear')
      false

  selectOption: (option) ->
    return false unless option
    @selectedOption = option
    @selected = true
    @_setSelectedOption option
    @jq.find('.selected-text').text option.text
    true

  unselectOption: (option = @selectedOption) ->
    return false unless option
    @selectedOption = null
    @selected = false
    @_setSelectedOption false
    @jq.find('.selected-text').text ''
    true

  _setSelectedOption: (option) ->
    @field.find('option:selected').prop 'selected', false
    return unless option

    $option = @field.find("option[value='#{option.value}']")
    $option = @_generateOption(option) unless $option.length > 0
    $option.prop 'selected', true

  _generateOption: (option) ->
    $option = $('<option>', test: option.text, value: option.value).appendTo(@field)
    @field.trigger 'addOption', option, $option
    $option

  clear: ->
    @unselectOption()

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tao_form-0.1.2 lib/assets/javascripts/tao/form/shared/fields/select/result/base.coffee
tao_form-0.1.1 lib/assets/javascripts/tao/form/shared/fields/select/result/base.coffee
tao_form-0.1.0 lib/assets/javascripts/tao/form/shared/fields/select/result/base.coffee