Sha256: ad75929cc30e5a7752649aaae211daf6deed42f01fa2ec8387a3f2ec9574a900

Contents?: true

Size: 1.14 KB

Versions: 3

Compression:

Stored size: 1.14 KB

Contents

class Tao.Form.ElementBase extends TaoComponent

  @tag 'tao-form'

  @attribute 'successMessage'

  _connected: ->
    @_bind()

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

    @on 'ajax:success', '> form', (e) =>
      @_showSuccessMessage()
      @trigger '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()

Version data entries

3 entries across 3 versions & 1 rubygems

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