Commit 2ed0437ec7d11bb828d6840165065bf179db7c96

Authored by Macartur Sousa
1 parent c7571504
Exists in elasticsearch_sort

Fixed Sort by to receive filter param

Signed-off-by: Arthur Jahn <stutrzbecher@gmail.com>
Signed-off-by: DylanGuedes <djmgguedes@gmail.com>
Signed-off-by: Macartur Sousa <macartur.sc@gmail.com>
plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb
@@ -26,7 +26,8 @@ class ElasticsearchPluginController &lt; ApplicationController @@ -26,7 +26,8 @@ class ElasticsearchPluginController &lt; ApplicationController
26 end 26 end
27 27
28 def define_search_fields_types 28 def define_search_fields_types
29 - @search_filter_types = ElasticsearchHelper::search_filters  
30 - @selected_filter_field = (params[:selected_filter_field] || :relevance).to_sym 29 + @filter_types = ElasticsearchHelper::filters
  30 + @selected_filter = (params[:filter] || :relevance).to_sym
31 end 31 end
  32 +
32 end 33 end
plugins/elasticsearch/helpers/elasticsearch_helper.rb
@@ -11,11 +11,11 @@ module ElasticsearchHelper @@ -11,11 +11,11 @@ module ElasticsearchHelper
11 } 11 }
12 end 12 end
13 13
14 - def self.search_filters 14 + def self.filters
15 { 15 {
16 - :relevance => { label: _("Relevance")},  
17 - :lexical => { label: _("Alphabetical")},  
18 - :recent => { label: _("More Recent")}, 16 + :relevance => { label: _("Relevance")},
  17 + :lexical => { label: _("Alphabetical")},
  18 + :more_recent => { label: _("More Recent")},
19 } 19 }
20 end 20 end
21 21
@@ -52,7 +52,7 @@ module ElasticsearchHelper @@ -52,7 +52,7 @@ module ElasticsearchHelper
52 end 52 end
53 53
54 def search_from_all_models 54 def search_from_all_models
55 - query = get_query params[:query], sort_by: get_sort_by(params[:selected_filter_field]) 55 + query = get_query params[:query], sort_by: get_sort_by(params[:selected_filter])
56 models = searchable_models 56 models = searchable_models
57 Elasticsearch::Model.search(query, models, size: default_per_page(params[:per_page])).page(params[:page]).records 57 Elasticsearch::Model.search(query, models, size: default_per_page(params[:per_page])).page(params[:page]).records
58 end 58 end
@@ -61,7 +61,7 @@ module ElasticsearchHelper @@ -61,7 +61,7 @@ module ElasticsearchHelper
61 begin 61 begin
62 klass = model.to_s.classify.constantize 62 klass = model.to_s.classify.constantize
63 63
64 - query = get_query params[:query], klass: klass, sort_by: get_sort_by(params[:selected_filter_field]) 64 + query = get_query params[:query], klass: klass, sort_by: get_sort_by(params[:selected_filter])
65 klass.search(query, size: default_per_page(params[:per_page])).page(params[:page]).records 65 klass.search(query, size: default_per_page(params[:per_page])).page(params[:page]).records
66 rescue 66 rescue
67 [] 67 []
plugins/elasticsearch/test/unit/controllers/elasticsearch_plugin_controller_test.rb
@@ -30,7 +30,8 @@ class ElasticsearchPluginControllerTest &lt; ActionController::TestCase @@ -30,7 +30,8 @@ class ElasticsearchPluginControllerTest &lt; ActionController::TestCase
30 assert_response :success 30 assert_response :success
31 assert_not_nil assigns(:searchable_types) 31 assert_not_nil assigns(:searchable_types)
32 assert_not_nil assigns(:selected_type) 32 assert_not_nil assigns(:selected_type)
33 - assert_not_nil assigns(:search_filter_types) 33 + assert_not_nil assigns(:filter_types)
  34 + assert_not_nil assigns(:selected_filter)
34 end 35 end
35 36
36 should 'return 10 results if selected_type is nil and query is nil' do 37 should 'return 10 results if selected_type is nil and query is nil' do
plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <ul> 5 <ul>
6 <% for type,value in @searchable_types %> 6 <% for type,value in @searchable_types %>
7 <li class="select-search-type <%= "active" if type == @selected_type %>"> 7 <li class="select-search-type <%= "active" if type == @selected_type %>">
8 - <%= link_to value[:label], "?selected_type=#{type}&query=#{@query}&selected_filter_field=#{@selected_filter_field}"%> 8 + <%= link_to value[:label], "?selected_type=#{type}&query=#{@query}&filter=#{@selected_filter}"%>
9 </li> 9 </li>
10 <% end %> 10 <% end %>
11 </ul> 11 </ul>
@@ -13,9 +13,9 @@ @@ -13,9 +13,9 @@
13 <div class="search-filter"> 13 <div class="search-filter">
14 <h3 class="box-title"><%= _("Sort by") %></h3> 14 <h3 class="box-title"><%= _("Sort by") %></h3>
15 <ul> 15 <ul>
16 - <% for type, value in @search_filter_types %>  
17 - <li class="select-search-type <%= "active" if type == @selected_filter_field %>">  
18 - <%= link_to value[:label], "?selected_type=#{@selected_type}&query=#{@query}&selected_filter_field=#{type}" %> 16 + <% for type, value in @filter_types %>
  17 + <li class="select-search-type <%= "active" if type == @selected_filter %>">
  18 + <%= link_to value[:label], "?selected_type=#{@selected_type}&query=#{@query}&filter=#{type}" %>
19 </li> 19 </li>
20 <% end %> 20 <% end %>
21 </ul> 21 </ul>
@@ -26,8 +26,8 @@ @@ -26,8 +26,8 @@
26 <div class="search_field"> 26 <div class="search_field">
27 <%= form_tag '/plugin/elasticsearch/search', method: :get do %> 27 <%= form_tag '/plugin/elasticsearch/search', method: :get do %>
28 <%= hidden_field_tag "selected_type", @selected_type %> 28 <%= hidden_field_tag "selected_type", @selected_type %>
29 - <% if @selected_filter_field %>  
30 - <%= hidden_field_tag "selected_filter_field", @selected_filter_field %> 29 + <% if @selected_filter %>
  30 + <%= hidden_field_tag "filter", @selected_filter %>
31 <% end %> 31 <% end %>
32 <%= text_field_tag :query, @query %> 32 <%= text_field_tag :query, @query %>
33 <%= submit_tag _("Send") %> 33 <%= submit_tag _("Send") %>
@@ -36,11 +36,11 @@ @@ -36,11 +36,11 @@
36 <div class="results-count"> 36 <div class="results-count">
37 <% if not @query.blank? %> 37 <% if not @query.blank? %>
38 <p> 38 <p>
39 - <strong><%= @results.total %></strong><%= _(" results for ") %><%= @query %> 39 + <strong><%= @results.count %></strong><%= _(" results for ") %><%= @query %>
40 </p> 40 </p>
41 <% else %> 41 <% else %>
42 <p> 42 <p>
43 - <strong><%= @results.total %></strong><%= _(" total results") %> 43 + <strong><%= @results.count %></strong><%= _(" total results") %>
44 </p> 44 </p>
45 <% end %> 45 <% end %>
46 </div> 46 </div>
@@ -59,7 +59,7 @@ @@ -59,7 +59,7 @@
59 <% end %> 59 <% end %>
60 <% end %> 60 <% end %>
61 <div class="search_paginate"> 61 <div class="search_paginate">
62 - <%= pagination_links @results %> 62 + <%= pagination_links @results if @results.count > 0 %>
63 </div> 63 </div>
64 </div> 64 </div>
65 </div> 65 </div>