Create a gist now

Instantly share code, notes, and snippets.

active_admin custom filter
# config/initializers/active_admin.rb
require 'active_admin_custom_filter'
ActiveAdmin.setup do |config|
# ...
end
# 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
# app/admin/resource.rb
ActiveAdmin.register Resource do
filter :first_name_or_last_name_contains, :as => :custom, :label => 'Name'
end
@panSarin

Very nice , simple and helpfull . Thank you ;]

@piotrmasior

damn, why it is not in wiki or README !

it is really important piece of code

@americodls

tks for sharing!

@kwojtaszek

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

@Dorian

@kwojtaszek comment as valid code

# From https://gist.github.com/rdj/1057991
# From `filter :foo, as: :custom` for ActiveAdmin
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
@Dorian

FYI: I doesn't work at least on ActiveAdmin 1.0.0.pre

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment