app/views/studies/information/_asset_progress.html.erb
<%= form_tag show_summary_study_information_path(@study),
method: :get,
class: 'remote-form observed',
data: { update: "#everything", throbber: '#loading', remote: true } do %>
<%= label_tag(:labware_type, 'Filter by') %>
<%= select_tag(:labware_type, options_for_select(labware_types_for_select, @labware_type), class: 'form-control observed') %>
<% end %>
<span class="filter_options">Currently showing <strong><%= @labware_type_name %></strong></span>
<%= pagination @page_elements %>
<% submissions = @submissions %>
<table id="summary" class="sortable table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Sample</th>
<th>Closed?</th>
<% @request_types.each do |request_type| %>
<th><center><%= request_type.name %></center></th>
<% end %>
<th>Latest update</th>
<th>Update date</th>
<th>Updates</th>
</tr>
</thead>
<tbody>
<% @study.asset_progress(@page_elements) do |statistics| %>
<% @page_elements.each do |asset| %>
<% asset_statistics = statistics[asset.id] %>
<tr class="<%= label_asset_state(asset) %>">
<td><%= link_to(h(asset.display_name), receptacle_path(asset), title: asset.label.capitalize) %></td>
<td><%= asset.label %></td>
<td><% if asset.is_a?(Receptacle) %>
<% asset.aliquots.each do |a| %>
<%= link_to(a.sample.name, a.sample) %>;
<% end %>
<% end %>
<td><%= asset.closed? ? 'Yes' : 'No' %></td>
<% @request_types.each do |request_type| %>
<% request_type_statistics = asset_statistics[request_type.id] %>
<% if request_type_statistics.total > 1 and request_type_statistics.progress > 0 %>
<td><%= progress_bar(request_type_statistics.progress) %></td>
<% else %>
<td>
<% if request_type_statistics.passed > 0 %>
<center><span style="display:none">passed</span><%= icon('far', 'check-circle', title: 'Passed') %></center>
<% elsif request_type_statistics.started > 0 %>
<center><span style="display:none">started</span><%= icon('fas', 'cog', title: 'Started') %></center>
<% elsif request_type_statistics.pending > 0 %>
<center><span style="display:none">pending</span><%= icon('fas', 'hourglass-start ', title: 'Pending') %></center>
<% elsif request_type_statistics.failed > 0 %>
<center><span style="display:none">failed</span><%= icon('fas', 'times-circle', title: 'Failed') %></center>
<% end %>
</td>
<% end %>
<% end %>
<% summary = UiHelper::Summary.new(); summary.load_asset(asset); summary_asset = summary.summaries.first %>
<% if summary_asset %>
<td><%= link_to(summary_asset.message, summary_asset.external_link.to_s) %></td>
<td><%= summary_asset.timestamp.to_formatted_s(:sortable)%></td>
<% else %>
<td></td>
<td></td>
<% end %>
<td><%= link_to 'Show all', summary_receptacle_path(asset) %></td>
</tr>
<% end %>
<% end %>
</tbody>
</table>
<%= pagination @page_elements %>