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 26 end
27 27  
28 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 31 end
  32 +
32 33 end
... ...
plugins/elasticsearch/helpers/elasticsearch_helper.rb
... ... @@ -11,11 +11,11 @@ module ElasticsearchHelper
11 11 }
12 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 20 end
21 21  
... ... @@ -52,7 +52,7 @@ module ElasticsearchHelper
52 52 end
53 53  
54 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 56 models = searchable_models
57 57 Elasticsearch::Model.search(query, models, size: default_per_page(params[:per_page])).page(params[:page]).records
58 58 end
... ... @@ -61,7 +61,7 @@ module ElasticsearchHelper
61 61 begin
62 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 65 klass.search(query, size: default_per_page(params[:per_page])).page(params[:page]).records
66 66 rescue
67 67 []
... ...
plugins/elasticsearch/test/unit/controllers/elasticsearch_plugin_controller_test.rb
... ... @@ -30,7 +30,8 @@ class ElasticsearchPluginControllerTest &lt; ActionController::TestCase
30 30 assert_response :success
31 31 assert_not_nil assigns(:searchable_types)
32 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 35 end
35 36  
36 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 5 <ul>
6 6 <% for type,value in @searchable_types %>
7 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 9 </li>
10 10 <% end %>
11 11 </ul>
... ... @@ -13,9 +13,9 @@
13 13 <div class="search-filter">
14 14 <h3 class="box-title"><%= _("Sort by") %></h3>
15 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 19 </li>
20 20 <% end %>
21 21 </ul>
... ... @@ -26,8 +26,8 @@
26 26 <div class="search_field">
27 27 <%= form_tag '/plugin/elasticsearch/search', method: :get do %>
28 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 31 <% end %>
32 32 <%= text_field_tag :query, @query %>
33 33 <%= submit_tag _("Send") %>
... ... @@ -36,11 +36,11 @@
36 36 <div class="results-count">
37 37 <% if not @query.blank? %>
38 38 <p>
39   - <strong><%= @results.total %></strong><%= _(" results for ") %><%= @query %>
  39 + <strong><%= @results.count %></strong><%= _(" results for ") %><%= @query %>
40 40 </p>
41 41 <% else %>
42 42 <p>
43   - <strong><%= @results.total %></strong><%= _(" total results") %>
  43 + <strong><%= @results.count %></strong><%= _(" total results") %>
44 44 </p>
45 45 <% end %>
46 46 </div>
... ... @@ -59,7 +59,7 @@
59 59 <% end %>
60 60 <% end %>
61 61 <div class="search_paginate">
62   - <%= pagination_links @results %>
  62 + <%= pagination_links @results if @results.count > 0 %>
63 63 </div>
64 64 </div>
65 65 </div>
... ...