Sha256: 330e46f7f73d1ee27737dad55c18fdb1554c3bafb8997ac91a118474f7dbfee6

Contents?: true

Size: 1.51 KB

Versions: 4

Compression:

Stored size: 1.51 KB

Contents

unless EditableForm
  EditableForm = $.fn.editableform.Constructor
  EditableForm.prototype.saveWithUrlHook = (value) ->
    originalUrl   = @options.url
    model         = @options.model
    nestedName    = @options.nested
    nestedId      = @options.nid
    nestedLocale  = @options.locale

    @options.url = (params) =>
      if typeof originalUrl == 'function'
        originalUrl.call(@options.scope, params)
      else if originalUrl? && @options.send != 'never'
        myName = params.name
        myValue = params.value

        # if there are no values in a list, add a blank value so Rails knows all values were removed
        if Object.prototype.toString.call(params.value) == '[object Array]' && params.value.length == 0
          params.value.push("")

        obj = {}

        if nestedName
          nested          = {}
          nested[myName]  = myValue
          nested['id']    = nestedId

          if nestedLocale
            nested['locale'] = nestedLocale

          obj[nestedName + '_attributes'] = nested
        else
          obj[myName] = myValue

        params[model] = obj

        delete params.name
        delete params.value
        delete params.pk

        $.ajax($.extend({
          url:      originalUrl
          data:     params
          type:     'PUT'
          dataType: 'json'
        }, @options.ajaxOptions))

    @saveWithoutUrlHook(value)

  EditableForm.prototype.saveWithoutUrlHook = EditableForm.prototype.save
  EditableForm.prototype.save = EditableForm.prototype.saveWithUrlHook

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
x-editable-rails-bs4-1.5.5.2 vendor/assets/javascripts/editable/rails/editable_form.js.coffee
x-editable-rails-1.5.5.1 vendor/assets/javascripts/editable/rails/editable_form.js.coffee
x-editable-rails-1.5.5 vendor/assets/javascripts/editable/rails/editable_form.js.coffee
x-editable-rails-1.5.4 vendor/assets/javascripts/editable/rails/editable_form.js.coffee