Sha256: 5f9e3ac3a0b3c9580a0f1350d3d47f3276164b74ead1e6f0ea694ddb79dd8f81

Contents?: true

Size: 1.66 KB

Versions: 55

Compression:

Stored size: 1.66 KB

Contents

module ActiveScaffold::Actions
  module Search
    include ActiveScaffold::Actions::CommonSearch
    def self.included(base)
      base.before_filter :search_authorized_filter, :only => :show_search
      base.before_filter :store_search_params_into_session, :only => [:index]
      base.before_filter :do_search, :only => [:index]
      base.helper_method :search_params
    end

    def show_search
      respond_to_action(:search)
    end

    protected
    def search_respond_to_html
      render(:action => "search")
    end
    def search_respond_to_js
      render(:partial => "search")
    end
    def do_search
      query = search_params.to_s.strip rescue ''
      unless query.empty?
        columns = active_scaffold_config.search.columns
        text_search = active_scaffold_config.search.text_search
        search_conditions = self.class.create_conditions_for_columns(query.split(' '), columns, text_search)
        self.active_scaffold_conditions = merge_conditions(self.active_scaffold_conditions, search_conditions)
        @filtered = !search_conditions.blank?

        includes_for_search_columns = columns.collect{ |column| column.includes}.flatten.uniq.compact
        self.active_scaffold_includes.concat includes_for_search_columns

        active_scaffold_config.list.user.page = nil
      end
    end

    private
    def search_authorized_filter
      link = active_scaffold_config.search.link || active_scaffold_config.search.class.link
      raise ActiveScaffold::ActionNotAllowed unless self.send(link.security_method)
    end
    def search_formats
      (default_formats + active_scaffold_config.formats + active_scaffold_config.search.formats).uniq
    end
  end
end

Version data entries

55 entries across 55 versions & 4 rubygems

Version Path
active_scaffold_vho-4.0.0 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.14 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.13 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.12 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.11 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.10 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.9 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.8 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.7 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.6 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.5 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.4 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.3 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.2 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.1 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.2.0 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.1.8 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.1.6 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.1.5 lib/active_scaffold/actions/search.rb
active_scaffold_vho-3.1.4 lib/active_scaffold/actions/search.rb