-<% content_for :css do %>
-
-<% end %>
-
-<% template = PipelineTemplate.find(@object.pipeline_template_uuid) rescue nil %>
-
-<%= content_for :content_top do %>
- <h2>
- <%= render_editable_attribute @object, 'name', nil, { 'data-emptytext' => 'Unnamed pipeline' } %>
- </h2>
- <% if template %>
- <h4>
- From template:
- <%= link_to_if_arvados_object template, friendly_name: true %>
- </h4>
- <% end %>
-<% end %>
-
-<% pipeline_job_uuids = [] %>
-
-<% if !@object.state.in? ['New', 'Ready', 'Paused'] %>
-<table class="table pipeline-components-table">
- <colgroup>
- <col style="width: 15%" />
- <col style="width: 20%" />
- <col style="width: 12%" />
- <col style="width: 12%" />
- <col style="width: 45%" />
- </colgroup>
- <thead>
- <tr>
- <th>
- component
- </th><th>
- script, version
- </th><th>
- job
- <%# format:'js' here helps browsers avoid using the cached js
- content in html context (e.g., duplicate tab -> see
- javascript) %>
- <%= link_to '(refresh)', {format:'js'}, class: 'refresh hide', remote: true, method: 'get' %>
- </th><th>
- </th><th>
- output
- </th>
- </tr>
- </thead>
- <tbody>
- <% render_pipeline_jobs.each do |pj| %>
- <% if pj[:job].andand[:uuid]
- pipeline_job_uuids << pj[:job][:uuid]
- end %>
- <tr>
- <td>
- <%= pj[:name] %>
- </td><td>
- <%= pj[:script] %>
- <br /><span class="deemphasize"><%= pj[:script_version] %></span>
- </td><td>
- <%= pj[:progress_bar] %>
- <% if @object.state == 'Complete' || @object.state == 'Failed' %>
- <% if pj[:job].andand[:uuid] %>
- <span class="deemphasize">
- <%= link_to("..."+pj[:job][:uuid].last(15), job_url(id: pj[:job][:uuid])) %>
- </span>
-
- <% current_job = Job.find(pj[:job][:uuid]) rescue nil %>
- <% if current_job.andand[:log] %>
- <% fixup = /([a-f0-9]{32}\+\d+)(\+?.*)/.match(current_job[:log])%>
- <% Collection.limit(1).where(uuid: fixup[1]).each do |c| %>
- <% c.files.each do |file| %>
- <br/><span class="deemphasize">
- <a href="<%= collection_path(current_job[:log]) %>/<%= file[1] %>?disposition=inline&size=<%= file[2] %>">log</a>
- </span>
- <% end %>
- <% end %>
- <% end %>
- <% end %>
- <% end %>
- </td><td>
- <%= render(partial: 'job_status_label',
- locals: { :j => pj[:job] }) %>
- </td><td>
- <%= link_to_if_arvados_object pj[:output], {:thumbnail => true} %>
- </td>
- </tr>
- <% end %>
- </tbody>
- <tfoot>
- <tr><td colspan="5"></td></tr>
- </tfoot>
-</table>
-
-<% if @object.state == 'RunningOnServer' || @object.state == 'RunningOnClient' %>
-<% content_for :js do %>
-setInterval(function(){$('a.refresh').click()}, 15000);
-<% end %>
-
-<% content_for :tab_line_buttons do %>
- <%= form_tag @object, :method => :put do |f| %>
-
- <%= hidden_field @object.class.to_s.underscore.singularize.to_sym, :state, :value => 'Paused' %>
-
- <%= button_tag({class: 'btn btn-primary pull-right run-pipeline-button'}) do %>
- Stop <i class="fa fa-fw fa-stop"></i>
- <% end %>
- <% end %>
-<% end %>
-
- <% if !pipeline_job_uuids.empty? %>
- <h4>Log for pipeline</h4>
- <% log_history = pipieline_log_history(pipeline_job_uuids) %>
- <div id="pipeline_event_log_history_div">
- <% log_history.each do |entry| %>
- <%=entry%><br/>
- <% end %>
- </div>
- <div class="arv-log-event-listener arv-log-event-handler-append-logs" id="pipeline_event_log_div" data-object-uuids="<%=pipeline_job_uuids.join(" ")%>"/>
- <% end %>
- <% end %>
-
-<% else %> <%# State new or ready or paused %>
- <% if @object.state == 'New' %>
- <p>Please set the desired input parameters for the components of this pipeline. Parameters highlighted in red are required.</p>
- <% end %>
-
- <% content_for :tab_line_buttons do %>
- <%= form_tag @object, :method => :put do |f| %>