Sha256: df5ead87b971b1e40bbf6095de0338136ad6c050cb048194ab872472f6c2f133

Contents?: true

Size: 1.25 KB

Versions: 5

Compression:

Stored size: 1.25 KB

Contents

class Tao.Form.ElementBase extends TaoComponent

  @tag 'tao-form'

  @attribute 'successMessage'

  _connected: ->
    @_bind()
    @jq.find('.input-field[autofocus]').focus()

  _bind: ->
    @on 'ajax:beforeSend', '> form', (e) =>
      @_clearErrors()
      @namespacedTrigger 'beforeSubmit'

    @on 'ajax:success', '> form', (e) =>
      @_showSuccessMessage()
      @namespacedTrigger 'success'

  _disconnected: ->
    @off()

  _clearErrors: ->
    @jq.find('.input-with-errors').each (i, input) =>
      @_clearError input

  _clearError: (input) ->
    $(input).removeClass('input-with-errors')
      .find('.error').remove()

  _showSuccessMessage: ->
    return unless @successMessage

    $button = @jq.find('button[data-disable-with]:disabled, input[data-disable-with]:disabled')
    $message = $('<div>')
      .addClass('success-message')
      .append([Tao.iconTag('success'), @successMessage])
      .insertAfter $button.hide()

    @_successTimer = setTimeout =>
      $button.show()
      $message.remove()
    , 3000

  beforeCache: ->
    super
    clearTimeout @_successTimer
    @jq.find('.success-message').remove()
    @jq.find('button[data-disable-with]:hidden, input[data-disable-with]:hidden').show()

  submit: ->
    @jq.find('> form').submit()
    @

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
tao_form-0.2.3 lib/assets/javascripts/tao/form/shared/element/base.coffee
tao_form-0.2.2 lib/assets/javascripts/tao/form/shared/element/base.coffee
tao_form-0.2.1 lib/assets/javascripts/tao/form/shared/element/base.coffee
tao_form-0.2.0 lib/assets/javascripts/tao/form/shared/element/base.coffee
tao_form-0.1.10 lib/assets/javascripts/tao/form/shared/element/base.coffee