Created
July 1, 2011 06:39
-
-
Save rdj/1057991 to your computer and use it in GitHub Desktop.
active_admin custom filter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# config/initializers/active_admin.rb | |
require 'active_admin_custom_filter' | |
ActiveAdmin.setup do |config| | |
# ... | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# lib/active_admin_custom_filter.rb | |
module ActiveAdmin | |
class FilterFormBuilder | |
include ::ActionView::Helpers::OutputSafetyHelper | |
def filter_custom_input( method, options = {} ) | |
field_name = method | |
safe_join( | |
[ | |
label( field_name, I18n.t( 'active_admin.search_field', :field => options[:label] ) ), | |
text_field( field_name ) | |
], | |
"\n" | |
) | |
end | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# app/admin/resource.rb | |
ActiveAdmin.register Resource do | |
filter :first_name_or_last_name_contains, :as => :custom, :label => 'Name' | |
end |
damn, why it is not in wiki or README !
it is really important piece of code
tks for sharing!
lib/active_admin_custom_filter.rb
module ActiveAdmin
module Inputs
class FilterCustomInput < ::Formtastic::Inputs::StringInput
include FilterBase
def to_html
input_wrapping do
label_html <<
builder.text_field(input_name, input_html_options)
end
end
def label_text
I18n.t('active_admin.search_field', :field => super)
end
def input_name
"#{super}"
end
end
end
end
it works better with newest activeadmin
The class seems to have changed in 1.0.0.pre. This works for me.
module ActiveAdmin
module Inputs
module Filters
class CustomInput < ::Formtastic::Inputs::StringInput
include Base
include Base::SearchMethodSelect
filter :contains, :equals, :starts_with, :ends_with
def to_html
input_wrapping do
label_html << builder.text_field(input_name, input_html_options)
end
end
def label_text
I18n.t('active_admin.search_field', field: super)
end
def input_name
"#{super}"
end
end
end
end
end
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Very nice , simple and helpfull . Thank you ;]