From 5752a74d232254a8ee50a5eced188b519c575c01 Mon Sep 17 00:00:00 2001 From: Daniel Henrique Date: Wed, 4 May 2016 15:51:15 -0300 Subject: [PATCH] Applyng filtering by type on articles --- plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb | 36 ++++++++++++++++++++++++++++-------- plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb | 2 ++ 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb b/plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb index 9128e2b..7887c5f 100644 --- a/plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb +++ b/plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb @@ -1,20 +1,28 @@ class ElasticsearchPluginController < ApplicationController - no_design_blocks - + def search @results = [] @query = params[:q] @checkbox = {} + terms = get_terms(params) + puts "=" * 80, terms, "=" * 80 if params[:model].present? - params[:model].keys.each do |model| - @checkbox[model.to_sym] = true - klass = model.classify.constantize - query = get_query params[:q], klass - @results += klass.__elasticsearch__.search(query).records.to_a - end + params[:model].keys.each do |model| + @checkbox[model.to_sym] = true + klass = model.classify.constantize + query = get_query params[:q], klass + @results += klass.__elasticsearch__.search(query).records.to_a + end end + if params[:filter].present? + params[:filter].keys.each do |model| + params[:filter][model].keys.each do |filter| + @checkbox[filter.to_sym] = true + end + end + end end private @@ -37,4 +45,16 @@ class ElasticsearchPluginController < ApplicationController query end + def get_terms params + terms = {} + return terms unless params[:filter].present? + params[:filter].keys.each do |model| + terms[model] = {} + params[:filter][model].keys.each do |filter| + @checkbox[filter.to_sym] = true + terms[model][params[:filter][model.to_sym][filter]] = filter + end + end + terms + end end diff --git a/plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb b/plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb index 61317c0..b8f2f96 100644 --- a/plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb +++ b/plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb @@ -15,6 +15,8 @@ <%= check_box_tag 'model[articles]', 1, @checkbox[:articles] %> <%= label_tag('articles', _("articles")) %> + <%= check_box_tag 'filter[articles][gallery]', :type, @checkbox[:gallery] %> + <%= label_tag('gallery', _("gallery")) %> <% end %> <% for result in @results %> -- libgit2 0.21.2