Commit c0ae7ebe213fad59d9874de9b9b07e8d25dbde6f
1 parent
15f8ee56
Exists in
master
and in
29 other branches
Facet lookup by name
Showing
3 changed files
with
14 additions
and
13 deletions
Show diff stats
app/controllers/public/search_controller.rb
... | ... | @@ -108,7 +108,7 @@ class SearchController < PublicController |
108 | 108 | |
109 | 109 | if asset_class(asset).methods.include?('facets') |
110 | 110 | result.merge!(:facets => {:zeros => false, :sort => :count, :fields => asset_class(asset).facets.keys, |
111 | - :browse => params[:facet] ? params[:facet].map{ |k,v| k.to_s+':'+v.to_s} : ''}) | |
111 | + :browse => params[:facet] ? params[:facet].map{ |k,v| k.to_s+':"'+v.to_s+'"'} : ''}) | |
112 | 112 | end |
113 | 113 | |
114 | 114 | result[:order_by] = solr_order | ... | ... |
app/views/search/_facets_menu.rhtml
... | ... | @@ -8,9 +8,9 @@ |
8 | 8 | <% facet = @asset_class.facets[facet_id] %> |
9 | 9 | <% solr_facet = @asset_class.to_solr_facet_fields[facet_id] %> |
10 | 10 | <% facets_all = @facets["facet_fields"][solr_facet] %> |
11 | - <% facets_found = params[:facet] ? facets_all.reject {|id,c| params[:facet][facet_id.to_s].to_s == id.to_s } : facets_all %> | |
11 | + <% facets_found = params[:facet] ? facets_all.reject {|name, count| params[:facet][facet_id.to_s].to_s == name.to_s } : facets_all %> | |
12 | 12 | |
13 | - <% if facets_found.count > 0 %> | |
13 | + <% if facets_found and facets_found.count > 0 %> | |
14 | 14 | <div id="facet-menu-<%= index.to_s %>" class="facet-menu"> |
15 | 15 | <div class="facet-menu-label"> |
16 | 16 | <%= facet[:label] %> |
... | ... | @@ -19,8 +19,8 @@ |
19 | 19 | <% if facets_found.count > less_options_limit %> |
20 | 20 | <div class="facet-menu-options facet-menu-more-options" style="display: none"> |
21 | 21 | <% array = [] %> |
22 | - <% @asset_class.each_facet_obj(solr_facet, facets_found, :sort => :alphabetically) do |obj, count| %> | |
23 | - <% array << {:id => id, :name => link_to(obj.send(facet[:display_field].to_s), params.merge({"facet[#{facet_id.to_s}]" => obj.id})) + " (#{count})"} %> | |
22 | + <% @asset_class.each_facet_name(solr_facet, facets_found, :sort => :alphabetically) do |name, count| %> | |
23 | + <% array << {:id => name, :name => link_to(name, params.merge({"facet[#{facet_id.to_s}]" => name})) + " (#{count})"} %> | |
24 | 24 | <% end %> |
25 | 25 | |
26 | 26 | <%= text_field :facet, facet_id %> |
... | ... | @@ -31,8 +31,8 @@ |
31 | 31 | <% end %> |
32 | 32 | |
33 | 33 | <div class="facet-menu-options facet-menu-less-options"> |
34 | - <% c = 0; @asset_class.each_facet_obj(solr_facet, facets_found, :sort => :count) do |obj, count| %> | |
35 | - <%= link_to(obj.send(facet[:display_field].to_s), params.merge({"facet[#{facet_id.to_s}]" => obj.id})) + " (#{count})" %><br /> | |
34 | + <% c = 0; @asset_class.each_facet_name(solr_facet, facets_found, :sort => :count) do |name, count| %> | |
35 | + <%= link_to(name, params.merge({"facet[#{facet_id.to_s}]" => name})) + " (#{count})" %><br /> | |
36 | 36 | <% break if (c += 1) > less_options_limit %> |
37 | 37 | <% end %> |
38 | 38 | </div> <br /> | ... | ... |
app/views/search/_facets_unselect_menu.rhtml
1 | 1 | |
2 | -<% if params[:facet] %> | |
3 | - <% params[:facet].each do |facet_id, obj_id| %> | |
4 | - <% facet = @asset_class.facets[facet_id.to_sym] %> | |
5 | - <% obj = facet[:class].find_by_id(obj_id.to_i) %> | |
6 | - <%= link_to(obj.send(facet[:display_field]), params.merge(:facet => params[:facet].reject {|k,v| k == facet_id}), :class => 'facet-selected') if obj %> | |
2 | +<div class="facets-applied"> | |
3 | + <% if params[:facet] and params[:facet].count > 0 %> | |
4 | + <span class="appliedFilters"><%= _("Applied filters") %> </span> | |
5 | + <% params[:facet].each do |facet_id, name| %> | |
6 | + <%= link_to(name, params.merge(:facet => params[:facet].reject {|k,v| k == facet_id}), :class => 'facet-selected') %> | |
7 | + <% end %> | |
7 | 8 | <% end %> |
8 | -<% end %> | |
9 | +</div> | ... | ... |