app/views/shared/results/_project_stats.html.erb
<%
$id_k = 0
def print_tax_datasets(v, p)
return if v["datasets"].empty?
%>
<div class="datasets list-group-item">
<%= v["datasets"].map do |d| %>
<% link_to d.unmiga_name, reference_dataset_url(p.id, d) %>
<% end.to_sentence.html_safe %>
</div>
<br/>
<%
end
def print_tax_children(v, p, str_id)
return if v["children"].empty?
ch = v["children"].select{ |i| i["str"] !~ /:\?$/ } +
v["children"].select{ |i| i["str"] =~ /:\?$/ }
ds = ch.select{ |i| i["str"] =~ /^ds:/ }
tx = ch.select{ |i| i["str"] !~ /^ds:/ }
print_tax_datasets({"datasets"=>ds.map{ |i| i["datasets"] }.flatten}, p)
if str_id.nil?
tx.each { |i| print_tax_rank(i, p) }
else
%>
<div id="<%= str_id %>" class="collapse taxonomy-tree-element">
<% tx.each { |i| print_tax_rank(i, p) } %>
</div>
<%
end
end
def print_tax_rank(v, p)
return if v.nil?
if v["datasets"].empty? and (v["str"] =~ /:\?$/ or v["str"]=="root:biota")
print_tax_children(v, p, nil)
print_tax_datasets(v, p)
else
str_id = "tax-#{$id_k += 1}"
str = v["str"].split(":")
str_rk = MiGA::Taxonomy.LONG_RANKS[str[0].to_sym]
str_rk = str[0] if str_rk.nil?
str_vl = str[1].unmiga_name
%>
<div class="taxonomy-tree">
<b><%= link_to "##{str_id}", "data-toggle"=>"collapse",
"aria-expanded"=>"false", "aria-controls"=>str_id do %>
<span class=badge><%= str_rk %></span> <i><%= str_vl %></i>
<% end %></b>
<% print_tax_datasets(v, p) %>
<% print_tax_children(v, p, str_id) %>
</div>
<%
end
end
%>
<% unless res.file_path(:taxonomy_index).nil? %>
<h4>Search in project</h4>
<%= render partial: "projects/search_bar" %>
<% unless project.miga.is_multi? %>
<br/>
<div class="help-block">
Or filter by quality:
<% q_tag = {excellent:"success", high:"info",
intermediate:"warning", low:"danger"} %>
<% q_tag.keys.each do |i| %>
<%= link_to i,
project_search_path(project.id, q:"quality:#{i}"),
class: "btn btn-q-#{i} btn-xs" %>
<% end %>
</div>
<% end %>
<h4>Taxonomy tree</h4>
<% tax = JSON.parse File.read res.file_path :taxonomy_index %>
<% print_tax_rank(tax["root"], project) %>
<br/>
<% end %>