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