Sha256: 1b3c749bbdfc176f9f190e903fcfbe67c5446c1e03208802b9069906d7d14706
Contents?: true
Size: 1.23 KB
Versions: 1
Compression:
Stored size: 1.23 KB
Contents
module ActiveAdmin module Inputs module Filters class AjaxSelectInput < SelectInput DEFAULT_LIMIT = 5 def pluck_column klass.reorder("#{method} asc").limit(collection_limit).uniq.pluck(method) end def collection_from_association super.limit(collection_limit) end def input_html_options super.merge( 'data-limit' => collection_limit, 'data-value-field' => value_field, 'data-search-fields' => search_fields, 'data-ransack' => ransack, 'data-selected-value' => selected_value, ) end def ajax_data options[:data] || {} end def collection_limit ajax_data[:limit] || DEFAULT_LIMIT end def value_field ajax_data[:value_field] || :id end def search_fields ajax_data[:search_fields] || raise(ArgumentError, 'search_fields in required') end def ransack ajax_data[:ransack] || "#{search_fields.join('_or_')}_cont" end def selected_value if @object @object.try(:send, input_name) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activeadmin-ajax_filter-0.1.1 | lib/active_admin/inputs/filters/ajax_select_input.rb |