Commit c0ae7ebe213fad59d9874de9b9b07e8d25dbde6f

Authored by Braulio Bhavamitra
1 parent 15f8ee56

Facet lookup by name

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