Sha256: fad656df04ae727f1a90af94cc8aab766d89c09e1b71432c54c1b149b779690e

Contents?: true

Size: 1.96 KB

Versions: 1

Compression:

Stored size: 1.96 KB

Contents

EditableForm = $.fn.editableform.Constructor
EditableForm.prototype.saveWithUrlHook = (value) ->
  originalUrl = @options.url
  @options.url = (params) =>
    if typeof originalUrl == 'function'
      originalUrl.call(@options.scope, params)
    else
      params[@options.model] ||= {}
      params[@options.model][params.name] = params.value
      params._method = 'PATCH'
      ajax_opts =
        url: originalUrl
        data: params
        type: 'POST'
        dataType: 'json'
      if @options.accept == 'script'
        ajax_opts.dataType = @options.accept
        ajaxOptions = $.extend(@options.ajaxOptions, {headers: {Accept: 'text/javascript, application/javascript'}})
      else
        ajaxOptions = @options.ajaxOptions
      delete params.name
      delete params.value
      delete params.pk
      $.ajax $.extend(ajax_opts, ajaxOptions)
  @saveWithoutUrlHook(value)
EditableForm.prototype.saveWithoutUrlHook = EditableForm.prototype.save
EditableForm.prototype.save = EditableForm.prototype.saveWithUrlHook

window.initInPlaceEditable = ->
  $('.editable').editable
    onblur: 'submit'
    placement: 'bottom'
    emptytext: I18n.lookup('admin.js.empty') || 'Empty'
    error: (response, newValue) ->
      log response
      if response.status == 422
        flash JSON.parse(response.responseText).errors.join(', ')
      else
        response.responseText
    success: (response) ->
      if response && $(this).data().options?.accept == 'script'
        $.globalEval(response.responseText)
    datetimepicker:
      format: "dd.mm.yyyy hh:ii"
      autoclose: true
      todayBtn: true
      language: I18n.locale
    ajaxOptions:
      xhrFields:
        withCredentials: true
      headers:
        Accept: 'application/json'


$(document).on 'admin:init', initInPlaceEditable

$ ->
  _.each $('.editable'), (el) ->
    $el = $(el)
    return unless $el.data('type') == 'select2'
    options = new window.Select2Bridge($el, false).buildOptions()
    $el.data('select2', options)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ab_admin-0.9.0 app/assets/javascripts/ab_admin/components/in_place_edit.js.coffee