Module: TurboFilter::TurboFilterController

Defined in:
lib/turbo_filter/turbo_filter_controller.rb

Instance Method Summary collapse

Instance Method Details

#build_turbo_filter_query_from_paramsObject



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/turbo_filter/turbo_filter_controller.rb', line 24

def build_turbo_filter_query_from_params
  if params[:f]
    filters = if session[:query]
                session[:query][:filters] = session[:query][:filters].select { |k,v| params[:f].reject(&:blank?).include?(k) }
              else
                {}
              end
    @turbo_filter_query.filters = filters
    @turbo_filter_query.add_filters(params[:f], params[:operators] || params[:op], params[:values] || params[:v])
  end
end

#retrieve_turbo_filter_query(filters_for_class) ⇒ Object

Retrieve query from session or build a new query



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/turbo_filter/turbo_filter_controller.rb', line 5

def retrieve_turbo_filter_query(filters_for_class)
  if params[:set_filter] || session[:query].nil?
    # Give it a name, required to be valid
    @turbo_filter_query = TurboFilter::TurboFilterQuery.new(filters_for_class)
    build_turbo_filter_query_from_params
    session[:query] = {:filters => @turbo_filter_query.filters}
  else
    # retrieve from session
    @turbo_filter_query ||= TurboFilter::TurboFilterQuery.new(filters_for_class, session[:query][:filters])
    build_turbo_filter_query_from_params
  end
end

#retrieve_turbo_filter_query_from_sessionObject



18
19
20
21
22
# File 'lib/turbo_filter/turbo_filter_controller.rb', line 18

def retrieve_turbo_filter_query_from_session
  if session[:query]
    @turbo_filter_query = TurboFilter::TurboFilterQuery.new(filters_for_class, session[:query][:filters])
  end
end