Commit 2ed0437ec7d11bb828d6840165065bf179db7c96
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>
Showing
4 changed files
with
20 additions
and
18 deletions
Show diff stats
plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb
@@ -26,7 +26,8 @@ class ElasticsearchPluginController < ApplicationController | @@ -26,7 +26,8 @@ class ElasticsearchPluginController < 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 < ActionController::TestCase | @@ -30,7 +30,8 @@ class ElasticsearchPluginControllerTest < 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> |