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,7 +108,7 @@ class SearchController < PublicController
108 108
109 if asset_class(asset).methods.include?('facets') 109 if asset_class(asset).methods.include?('facets')
110 result.merge!(:facets => {:zeros => false, :sort => :count, :fields => asset_class(asset).facets.keys, 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 end 112 end
113 113
114 result[:order_by] = solr_order 114 result[:order_by] = solr_order
app/views/search/_facets_menu.rhtml
@@ -8,9 +8,9 @@ @@ -8,9 +8,9 @@
8 <% facet = @asset_class.facets[facet_id] %> 8 <% facet = @asset_class.facets[facet_id] %>
9 <% solr_facet = @asset_class.to_solr_facet_fields[facet_id] %> 9 <% solr_facet = @asset_class.to_solr_facet_fields[facet_id] %>
10 <% facets_all = @facets["facet_fields"][solr_facet] %> 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 <div id="facet-menu-<%= index.to_s %>" class="facet-menu"> 14 <div id="facet-menu-<%= index.to_s %>" class="facet-menu">
15 <div class="facet-menu-label"> 15 <div class="facet-menu-label">
16 <%= facet[:label] %> 16 <%= facet[:label] %>
@@ -19,8 +19,8 @@ @@ -19,8 +19,8 @@
19 <% if facets_found.count > less_options_limit %> 19 <% if facets_found.count > less_options_limit %>
20 <div class="facet-menu-options facet-menu-more-options" style="display: none"> 20 <div class="facet-menu-options facet-menu-more-options" style="display: none">
21 <% array = [] %> 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 <% end %> 24 <% end %>
25 25
26 <%= text_field :facet, facet_id %> 26 <%= text_field :facet, facet_id %>
@@ -31,8 +31,8 @@ @@ -31,8 +31,8 @@
31 <% end %> 31 <% end %>
32 32
33 <div class="facet-menu-options facet-menu-less-options"> 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 <% break if (c += 1) > less_options_limit %> 36 <% break if (c += 1) > less_options_limit %>
37 <% end %> 37 <% end %>
38 </div> <br /> 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 <% end %> 8 <% end %>
8 -<% end %> 9 +</div>