Sha256: d0ef45de601cfb7025f7ec623283bc33e1be943f496f677a29f251f59ad84c3e

Contents?: true

Size: 944 Bytes

Versions: 1

Compression:

Stored size: 944 Bytes

Contents

module RademadeAdmin
  module Search
    class AutocompleteConditions < Abstract

      def initialize(params, origin_fields, filter_fields)
        super(params, origin_fields)
        @filter_fields = filter_fields
      end

      protected

      def where
        # todo hierarchical
        @where_conditions = super
        append_query_condition
        append_search_params
        @where_conditions
      end

      def limit
        10
      end

      private

      def append_query_condition
        unless @params[:q].present?
          @filter_fields.each do |field|
            @where_conditions[:or][field] = /#{@params[:q]}/i
          end
        end
      end

      def append_search_params
        if @params[:search].present?
          @params[:search].each do |key, value|
            @where_conditions[:and][key.to_sym] = value if @origin_fields.include? key.to_s
          end
        end
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rademade_admin-0.0.1 app/services/search/conditions/autocomplete.rb