sanger/sequencescape

View on GitHub
app/views/batches/_batch_fail.html.erb

Summary

Maintainability
Test Coverage

<div class="info">
  <% if requests.empty? -%>
    <div id="empty_filter">
      No libraries found.
    </div>
  <% else -%>
    <% request_actions = @batch.pipeline.request_actions %>
    <table class="sortable table table-dense-information">
      <thead>
        <tr>
          <th>Sample</th>
          <th>Library ID</th>
          <th>Library</th>
          <th>Request</th>
          <th>Cycles</th>
          <th>Order</th>
          <th>From</th>
          <th>To</th>
          <th>Conc.</th>
          <% request_actions.each do |action| -%>
            <th class="nosort">
              <%= action.to_s.capitalize %>
              <input type='checkbox' id='select_all_<%= action.to_s %>' class='select_all' data-action='<%= action.to_s %>'>
            </th>
          <% end %>
        </tr>
      </thead>
      <tbody>
        <% requests.includes([:request_metadata, :batch_request, :lab_events, :failures, { asset: [:map, :parents, {labware: [:barcodes]}]}]).each_with_index do |request, index| -%>
          <tr>
            <td><%# Sample (But shows parent barcodes?) %>
              <% request.asset&.parents&.each do |parent| %>
                <%= link_to parent.human_barcode, labware_path(parent), target: "_blank" %>
              <% end %>
            </td>

            <% if  request.asset %>
              <td><%= request.asset.try(:human_barcode) %></td>
              <td><%= h(request.asset.display_name) %></td>
            <% else %>
              <td></td>
              <td></td>
            <% end %>

            <td><%= link_to request.id, request_url(request), target: "_blank" %></td>
            <td><%= request.request_metadata.read_length %></td>
            <td><%= request.position %></td>
            <td><%= request.request_metadata.fragment_size_required_from %></td>
            <td><%= request.request_metadata.fragment_size_required_to %></td>
            <td><%= request.detect_descriptor("Concentration", descriptor_batch: @batch) %></td>

            <% if request.failures.empty? -%>
              <% if request.asset && request.asset.resource? -%>
                <% request_actions.each do |action| -%>
                  <td><input name='requested_fail[control]' type='checkbox'></td>
                <% end %>
              <% else -%>
                <% request_actions.each do |action| -%>
                  <td>
                    <label for="requested_<%= action.to_s %>_<%= request.id %>" style="display:none;"><%= action.to_s.capitalize %> request <%= index+1 %></label>
                    <input name='requested_<%= action.to_s %>[<%= request.id %>]' id="requested_<%= action.to_s %>_<%= request.id %>" type='checkbox' class='select_<%= action.to_s %> select_all_target' data-action='<%= action.to_s %>'>
                  </td>
                <% end %>
              <% end -%>
            <% else -%>
              <td colspan='<%=  request_actions.length %>'>
                <%= badge('failed') %>
              </td>
            <% end -%>
          </tr>
        <% end -%>
      </tbody>
    </table>
  <% end -%><br />
</div>