Sha256: 85af8cdc4556802d7d5102738b290addeeaca94dbfb4e8c9b096d27f784eae17

Contents?: true

Size: 1.34 KB

Versions: 83

Compression:

Stored size: 1.34 KB

Contents

class Tenon.features.ModalForms
  constructor: ->
    $(document).on('ajax:success', '.modal form[data-remote]', @_handleSuccess)
    $(document).on('ajax:error', '.modal form[data-remote]', @_handleError)

  _handleSuccess: (e, data) =>
    @$form = $(e.currentTarget)
    @record = data
    @$list = $('[data-records-url]')
    @$template = $(@_getTemplate())
    @_writeTemplate()
    @_hideModal()

  _getTemplate: =>
    recordName = @$form.data('record')
    templatePath = "#{_.pluralize(recordName)}/#{recordName}_row"
    opts = {}
    opts[recordName] = @record
    JST["tenon/templates/#{templatePath}"](opts)

  _writeTemplate: =>
    $li = @$list.find("[data-record-id='#{@record.id}']")
    $header = @$list.find("li.header")
    if $li[0]
      @$template.removeClass('hidden')
      $li.replaceWith(@$template)
    else if $header[0]
      $template.insertAfter($header)
    else
      @$list.prepend(@$template)
    @$list.find('li.info').remove()

  _hideModal: =>
    @$form.find('.errorExplanation').remove()
    @$form[0].reset()
    @$form.closest('.modal').modal('hide')

  _handleError: (e, response, status) =>
    @$form = $(e.currentTarget)
    errors = $.parseJSON(response.responseText).errors
    $template = $(JST['tenon/templates/errors'](errors: errors))
    @$form.find('.errorExplanation').remove()
    $template.prependTo('.modal-body')

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
tenon-1.1.8 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.1.7 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.1.6 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.1.5 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.1.4 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.1.3 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.1.2 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.1.1 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.0.76 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.0.75 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.0.74 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.0.73 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.0.72 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.0.71 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.0.70 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.0.69 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.0.68 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.0.67 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.0.66 app/assets/javascripts/tenon/features/modal_forms.js.coffee
tenon-1.0.65 app/assets/javascripts/tenon/features/modal_forms.js.coffee