app/views/vocabulary/_terms.html.haml

Summary

Maintainability
Test Coverage
.ui-resources-holder.pam{"data-filter-container" => "terms", "data-max-usage-count" => @max_usage_count}

  -# split into 4 colums, for each colum.
  - @vocabulary.in_groups(4, false) do |meta_keys|
    .col1of4

      -# for each key (group of terms)…
      - meta_keys.each_with_index do |meta_key, i|
      
        - is_last_box = meta_keys.count-1 != i
        .ui-metadata-box.prl{:class => if is_last_box then "mbm" end}
          %h3.title-s-alt.separated.light.mbx{:id => meta_key[:meta_key_id], :title => (meta_key[:description] || '')}
            = meta_key[:label] 
            %span.title-xs-alt.mlx 
              -# Show alphabetical or custom order
              - unless meta_key[:meta_key_meta_terms_alphabetical_order].nil?
                = meta_key[:meta_key_meta_terms_alphabetical_order] ? "(a–z)" : "(thematisch sortiert)"

          -# list of terms
          %ul.ui-tag-cloud.small.ellipsed.compact

            -# for each term
            %span.title-xs-alt{:'data-ui-role' => 'empty_list', 
              :'class'=> meta_key[:meta_terms].empty? ? '':'hidden'}
              = _("Keine Begriffe.")
            - meta_key[:meta_terms].each do |meta_term|
            
              %li.ui-tag-cloud-item{:'data-ui-role' => 'meta_term'}
              
                = link_to meta_term[:term],
                    media_resources_path(:meta_data => {meta_key[:meta_key_id] => {:ids => [meta_term[:id]]}}),
                                         :class => "ui-tag-button meta-term",
                                         :title => (meta_term[:term] || ''),
                                         :"data-meta-datum-name" => meta_key[:meta_key_id],
                                         :"data-term-id" => meta_term[:id],
                                         :"data-filter-target" => true,
                                         :"data-term-count" => meta_term[:usage_count]