Sha256: ee8d3063027adad5f11b57ef44e24ad412bdafc777dab62909b170dec35a387c
Contents?: true
Size: 1.26 KB
Versions: 2
Compression:
Stored size: 1.26 KB
Contents
class AjaxFilterInput < Formtastic::Inputs::StringInput include ActiveAdmin::Inputs::Filters::Base def to_html input_wrapping do [ label_html, builder.text_field(eq_input_name, input_html_options) ].join("\n").html_safe end end def eq_input_name "#{method}_eq" end # rubocop:disable Metrics/CyclomaticComplexity def input_html_options opts = {} opts[:class] = ['select2-ajax'].concat([@options[:class]] || []).join(' ') opts["data-fields"] = (@options[:fields] || []).to_json opts["data-url"] = @options[:url] || "" opts["data-response_root"] = @options[:response_root] || @options[:url].to_s.split('/').last opts["data-display_name"] = @options[:display_name] || "name" opts["data-minimum_input_length"] = @options[:minimum_input_length] || 1 opts["data-width"] = @options[:width] || "100%" opts["data-selected"] = get_selected_value(opts["data-display_name"]) super.merge opts end # rubocop:disable Style/RescueModifier def get_selected_value(display_name) filter_class = method.to_s.chomp("_id").classify.constantize selected_value = @object.conditions.first.values.first.value rescue nil filter_class.find(selected_value).send(display_name) if !!selected_value end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
activeadmin_addons-0.10.1 | app/inputs/ajax_filter_input.rb |
activeadmin_addons-0.10.0 | app/inputs/ajax_filter_input.rb |