_facets_menu.rhtml
2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<% more_options = _("+ Options") %>
<% less_options = _("- Options") %>
<% less_options_limit = 7 %>
<div id="facets-menu">
<% if !@facets["facet_fields"].empty? %>
<% @asset_class.each_facet do |facet_id, index| %>
<% facet = @asset_class.facets[facet_id] %>
<% solr_facet = @asset_class.to_solr_facet_fields[facet_id] %>
<% facets_all = @facets["facet_fields"][solr_facet] %>
<% facets_found = params[:facet] ? facets_all.reject {|name, count| params[:facet][facet_id.to_s].to_s == name.to_s } : facets_all %>
<% if facets_found and facets_found.count > 0 %>
<div id="facet-menu-<%= index.to_s %>" class="facet-menu">
<div class="facet-menu-label">
<%= facet[:label] %>
</div><br />
<% if facets_found.count > less_options_limit %>
<div class="facet-menu-options facet-menu-more-options" style="display: none">
<% array = [] %>
<% @asset_class.each_facet_name(solr_facet, facets_found, :sort => :alphabetically) do |name, count| %>
<% array << {:id => name, :name => link_to(name, params.merge({"facet[#{facet_id.to_s}]" => name})) + " (#{count})"} %>
<% end %>
<%= text_field :facet, facet_id %>
<% javascript_tag do %>
jQuery.TokenList($("<%='facet_'+facet_id.to_s%>"), <%=array.to_json%>, {searchDelay: 0, permanentDropdown: true, theme: "facet", dontAdd: true, preventDuplicates: true});
<% end %>
</div>
<% end %>
<div class="facet-menu-options facet-menu-less-options">
<% c = 0; @asset_class.each_facet_name(solr_facet, facets_found, :sort => :count) do |name, count| %>
<%= link_to(name, params.merge({"facet[#{facet_id.to_s}]" => name})) + " (#{count})" %><br />
<% break if (c += 1) > less_options_limit %>
<% end %>
</div> <br />
<% if facets_found.count > less_options_limit %>
<%= link_to_function more_options, "jQuery('#facet-menu-"+index.to_s+" .facet-menu-options').toggle(200); " +
"jQuery(this).text(jQuery(this).text() == '"+less_options+"' ? '"+more_options+"' : '"+less_options+"');" %>
<br />
<% end %>
<br />
</div>
<% end %>
<% end %>
<% end %>
</div>