Sha256: 49c5c3f7cb3da564f1a13b77eba2bd67b5e51b7a2c3d024563e11ffd98875b3a

Contents?: true

Size: 1.72 KB

Versions: 21

Compression:

Stored size: 1.72 KB

Contents

module ActiveScaffold::Actions
  module Search
    def self.included(base)
      base.send :include, ActiveScaffold::Actions::CommonSearch
      base.send :include, InstanceMethods
    end

    module InstanceMethods
      protected

      def search_respond_to_html
        render(:action => 'search')
      end

      def search_respond_to_js
        render(:partial => 'search')
      end

      def do_search
        if search_params.is_a?(String) && search_params.present?
          query = search_params.to_s.strip
          columns = active_scaffold_config.search.columns.visible_columns
          text_search = active_scaffold_config.search.text_search
          query = query.split(active_scaffold_config.search.split_terms) if active_scaffold_config.search.split_terms
          search_conditions = self.class.conditions_for_columns(query, columns, text_search)
          @filtered = search_conditions.present?
          active_scaffold_conditions.concat search_conditions if @filtered

          references, outer_joins = columns.partition do |column|
            column.includes.present? && list_columns.include?(column)
          end
          active_scaffold_references.concat references.map(&:includes).flatten.uniq.compact
          active_scaffold_outer_joins.concat outer_joins.map(&:search_joins).flatten.uniq.compact

          active_scaffold_config.list.user.page = nil
        else
          super
        end
      end

      def search_ignore?
        active_scaffold_config.list.always_show_search && active_scaffold_config.list.search_partial == 'search'
      end

      private

      def search_formats
        (default_formats + active_scaffold_config.formats + active_scaffold_config.search.formats).uniq
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
active_scaffold-3.6.17 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.15 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.14 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.13 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.12 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.11.1 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.11 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.10 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.9 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.8 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.6 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.5 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.4.1 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.4 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.3 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.2 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.1 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.0 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.0.rc2 lib/active_scaffold/actions/search.rb
active_scaffold-3.6.0.rc1 lib/active_scaffold/actions/search.rb