Commit c0ae7ebe213fad59d9874de9b9b07e8d25dbde6f
1 parent
15f8ee56
Exists in
master
and in
28 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> | ... | ... |