Sha256: 315bba79ef592a4d53ae3ee47e46574dbdd2ac5e4e8e3029e6fc164a336ea4d1

Contents?: true

Size: 1.14 KB

Versions: 5

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 'tao:beforeSubmit'

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

5 entries across 5 versions & 1 rubygems

Version Path
tao_form-0.1.7 lib/assets/javascripts/tao/form/shared/element/base.coffee
tao_form-0.1.6 lib/assets/javascripts/tao/form/shared/element/base.coffee
tao_form-0.1.5 lib/assets/javascripts/tao/form/shared/element/base.coffee
tao_form-0.1.4 lib/assets/javascripts/tao/form/shared/element/base.coffee
tao_form-0.1.3 lib/assets/javascripts/tao/form/shared/element/base.coffee