sanger/sequencescape

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

Summary

Maintainability
Test Coverage

<table class="sortable table table-striped">
  <thead>
    <tr>
      <th>&nbsp;</th>
      <th>Barcode</th>
      <th>Wells</th>
      <th>Plate Link</th>
      <th>Purpose</th>
      <% if show_pick_data %>
        <th>Worksheet Link</th>
        <th>Robot Files</th>
      <% end %>
    </tr>
  </thead>
  <tbody>
    <% listed_labware.each do |labware| -%>
      <% unless labware.nil? %>
        <tr>
          <td><%= link_to labware.id, labware_path(labware) %></td>
          <td><%= labware.human_barcode %></td>
          <td><%= labware.request_count %></td>
          <td><%= link_to 'Show plate', show_plate_labware_path(labware)%></td>
          <td><%= purpose_for_labware(labware) %></td>
          <% if show_pick_data %>
            <td>
              <div class="btn-group btn-group-sm">
                <%= link_to icon('fas', 'print', 'Print worksheet'),
                              url_for(controller: :batches,
                                      action: :print,
                                      id: @batch.id,
                                      barcode: labware.human_barcode),
                              title: "Print worksheet for Plate #{labware.human_barcode}",
                              class: 'btn btn-primary' %>
                <% unless @robots.empty? %>
                  <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown"
                          aria-haspopup="true" aria-expanded="false">
                    <span class="sr-only">Toggle Dropdown</span>
                  </button>
                  <div class="dropdown-menu">
                    <% @robots.each do |robot| %>
                    <%= link_to "Print #{robot.name} worksheet",
                                url_for(controller: :batches,
                                        action: :print,
                                        id: @batch.id,
                                        barcode: labware.human_barcode,
                                        robot_id: robot.id),
                                title: "Print worksheet for Plate #{labware.human_barcode}",
                                class: 'dropdown-item' %>
                    <% end %>
                  </div>
                <% end %>
              </div>
            </td>
            <td>
              <% if fluidigm_target?(@batch) %>
                <%= link_to 'Fluidigm file', url_for(controller: :plates, action: :fluidigm_file, id: labware.id,  format: :csv), type: 'text/csv', title: "Fluidigm file for Plate #{labware.fluidigm_barcode}" %>
              <% else -%>
                <% @robot.pick_numbers(@batch, labware.human_barcode).each do |pick| %>
                  <div class="btn-group btn-group-sm">
                    <%= link_to icon('fas', 'file-download', "Download #{@robot.name} File (Pick #{pick})"),
                                batch_robot_driver_file_path(@batch, @robot, barcode: labware.human_barcode, pick_number: pick),
                                title: "#{@robot.name} file for Plate #{labware.human_barcode}",
                                class: 'btn btn-primary'
                    %>
                    <% unless @robots.empty? %>
                      <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown"
                              aria-haspopup="true" aria-expanded="false">
                        <span class="sr-only">Toggle Dropdown</span>
                      </button>
                      <div class="dropdown-menu">
                        <% @robots.each do |robot| %>
                        <%= link_to "Download #{robot.name} file",
                                    batch_robot_driver_file_path(@batch, robot, barcode: labware.human_barcode, pick_number: pick),
                                    title: "#{robot.name} for Plate #{labware.human_barcode}",
                                    class: 'dropdown-item' %>
                        <% end %>
                      </div>
                    <% end %>
                  </div>
                <% end %>
              <% end -%>
            </td>
          <% end %>
        </tr>
      <% else %>
        <tr>
          <td style="background:red;">&nbsp;</td>
          <td style="background:red;">&nbsp;</td>
          <td style="background:red;"><%= labware.request_count %></td>
          <% if output_plate %><td style="background:red;">&nbsp;</td><% end %>
          <td style="background:red;">&nbsp;</td>
          <td style="background:red;">&nbsp;</td>
          <td style="background:red;">&nbsp;</td>
        </tr>
      <% end %>
    <% end -%>
  </tbody>
</table>