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 | 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 < 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> | ... | ... |