Skip to content

@rdj /active_admin.rb
Created

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
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
Something went wrong with that request. Please try again.