Module: Catalog::BrowserHelper
- Defined in:
- app/helpers/catalog/browser_helper.rb
Instance Method Summary (collapse)
- - (Object) browser_taxon_header(taxon, options = {})
- - (Object) make_index_groups(taxa, max_row_count, abbreviated_length)
Instance Method Details
- (Object) browser_taxon_header(taxon, options = {})
30 31 32 33 34 35 36 37 38 |
# File 'app/helpers/catalog/browser_helper.rb', line 30 def browser_taxon_header taxon, = {} label_and_css_classes = Formatters::CatalogFormatter.taxon_label_and_css_classes taxon, :uppercase => true rank = Rank[taxon].to_s(:capitalized) if [:link] (rank + ' ' + link_to(label_and_css_classes[:label], browser_catalog_path(taxon, [:search_params]), :class => label_and_css_classes[:css_classes])).html_safe else (rank + ' ' + content_tag('span', label_and_css_classes[:label], :class => label_and_css_classes[:css_classes])).html_safe end end |
- (Object) make_index_groups(taxa, max_row_count, abbreviated_length)
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/helpers/catalog/browser_helper.rb', line 6 def make_index_groups taxa, max_row_count, abbreviated_length items_per_row = (taxa.count.to_f / max_row_count).ceil return [] if items_per_row.zero? groups = taxa.sort_by(&:name).in_groups_of(items_per_row, false) any_groups_with_more_than_one_member = false groups.inject([]) do |label_groups, group| result = {:id => group.first.id} label_and_classes = Formatters::CatalogFormatter.taxon_label_and_css_classes group.first any_groups_with_more_than_one_member ||= group.size > 1 if any_groups_with_more_than_one_member if group.size > 1 result[:label] = "#{group.first.name[0, abbreviated_length]}-#{group.last.name[0, abbreviated_length]}" result[:css_classes] = Formatters::CatalogFormatter.css_classes_for_rank(group.first).join ' ' else result.merge! label_and_classes result[:css_classes] = Formatters::CatalogFormatter.css_classes_for_rank(group.first).join ' ' end else result.merge! label_and_classes end label_groups << result end end |