module ActiveAdmin::Inputs::AjaxCore
Constants
- DEFAULT_LIMIT
Public Instance Methods
ajax_data()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 26 def ajax_data options[:data] || {} end
ajax_search_fields()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 50 def ajax_search_fields ajax_data[:ajax_search_fields] end
collection_from_association()
click to toggle source
Calls superclass method
# File lib/active_admin/inputs/ajax_core.rb, line 34 def collection_from_association super.try(:limit, collection_limit).try(:ransack, static_ransack).try(:result) end
collection_limit()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 30 def collection_limit ajax_data[:limit] || DEFAULT_LIMIT end
display_fields()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 42 def display_fields ajax_data[:display_fields] || search_fields.take(1) end
input_html_options()
click to toggle source
Calls superclass method
# File lib/active_admin/inputs/ajax_core.rb, line 10 def input_html_options super.merge( 'data-limit' => collection_limit, 'data-value-field' => value_field, 'data-display-fields' => display_fields, 'data-search-fields' => search_fields, 'data-ajax-search-fields' => ajax_search_fields, 'data-ordering' => ordering, 'data-ransack' => ransack, 'data-static-ransack' => static_ransack, 'data-selected-value' => selected_value, 'data-url' => url, 'data-min-chars-count-to-request' => min_chars_count_to_request, ) end
min_chars_count_to_request()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 66 def min_chars_count_to_request ajax_data[:min_chars_count_to_request] || 1 end
ordering()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 54 def ordering ajax_data[:ordering] || "#{display_fields.first} ASC" end
pluck_column()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 6 def pluck_column klass.reorder("#{method} asc").limit(collection_limit).uniq.pluck(method) end
ransack()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 58 def ransack ajax_data[:ransack] || "#{ransackify(search_fields).join('_or_')}_cont" end
ransackify(field_names)
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 70 def ransackify(field_names) # Map fields refer to related tables user.name -> user_name field_names.map { |f| f.to_s.sub('.', '_') } end
search_fields()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 46 def search_fields ajax_data[:search_fields] || raise(ArgumentError, 'search_fields in required') end
selected_value()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 83 def selected_value if @object @object.try(:send, input_name) end end
static_ransack()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 62 def static_ransack ajax_data.fetch(:static_ransack, {}).to_json end
url()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 75 def url case (url = ajax_data[:url]) when nil then "#{method.to_s.pluralize}/filter" when Symbol then Rails.application.routes.url_helpers.send(url) else url end end
value_field()
click to toggle source
# File lib/active_admin/inputs/ajax_core.rb, line 38 def value_field ajax_data[:value_field] || :id end