Sha256: deba052fab6d1bfd92945bf7c1dd119541246770e48a58131b06bdc5726b59e9

Contents?: true

Size: 1.07 KB

Versions: 2

Compression:

Stored size: 1.07 KB

Contents

class Search
  constructor: (@templates = {}) ->

  remove_fields: (button) ->
    $(button).closest('.fields').remove()

  add_fields: (button, type, content) ->
    new_id = new Date().getTime()
    regexp = new RegExp('new_' + type, 'g')
    $(button).before(content.replace(regexp, new_id))

  nest_fields: (button, type) ->
    new_id = new Date().getTime()
    id_regexp = new RegExp('new_' + type, 'g')
    template = @templates[type]
    object_name = $(button).closest('.fields').attr('data-object-name')
    sanitized_object_name = object_name.replace(/\]\[|[^-a-zA-Z0-9:.]/g, '_').replace(/_$/, '')
    template = template.replace(/new_object_name\[/g, object_name + "[")
    template = template.replace(/new_object_name_/, sanitized_object_name + '_')
    $(button).before(template.replace(id_regexp, new_id))

# ---
# main
# ---
search = new Search()

$(document).on('click', '.ransack.add_fields', ->
  search.add_fields(this, $(this).data('fieldType'), $(this).data('content'))
  false
)

$(document).on('click', '.ransack.remove_fields', ->
  search.remove_fields(this)
  false
)

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
comable-backend-0.6.0 app/assets/javascripts/comable/admin/search.coffee
comable_backend-0.5.0 app/assets/javascripts/comable/admin/search.coffee