<% content_for :css do %>
- .pipeline_color_legend {
- padding-left: 1em;
- padding-right: 1em;
- }
-table.pipeline-components-table {
- width: 100%;
- table-layout: fixed;
- overflow: hidden;
-}
-
-table.pipeline-components-table thead th {
- text-align: bottom;
-}
-table.pipeline-components-table div.progress {
- margin-bottom: 0;
-}
-
-table.pipeline-components-table td {
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-td.required {
- background: #ffdddd;
-}
<% 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', 'data-mode' => 'inline' } %>
+ </h2>
+ <% if template %>
+ <h4>
+ From template:
+ <%= link_to_if_arvados_object template, friendly_name: true %>
+ </h4>
+ <% end %>
+<% end %>
+
<% if @object.active != nil %>
<table class="table pipeline-components-table">
<colgroup>
<col style="width: 15%" />
<col style="width: 20%" />
- <col style="width: 20%" />
+ <col style="width: 12%" />
+ <col style="width: 12%" />
<col style="width: 45%" />
</colgroup>
<thead>
script, version
</th><th>
progress
- <%= link_to '(refresh)', request.fullpath, class: 'refresh', remote: true, method: 'get' %>
+ <%= link_to '(refresh)', request.fullpath, class: 'refresh hide', remote: true, method: 'get' %>
+ </th><th>
</th><th>
output
</th>
<% render_pipeline_jobs.each do |pj| %>
<tr>
<td>
- <% label = if pj[:job].andand[:uuid]
- if pj[:job][:running]
- 'label-info'
- elsif pj[:job][:success]
- 'label-success'
- else
- 'label-danger'
- end
- else
- 'label-default'
- end %>
+ <% job_status = render(partial: 'job_status_label',
+ locals: { :j => pj[:job], :title => pj[:name] }) %>
<% if pj[:job].andand[:uuid] %>
- <%= link_to pj[:name], job_url(id: pj[:job][:uuid]), class: "label #{label}" %>
+ <%= link_to(job_status, job_url(id: pj[:job][:uuid])) %>
<% else %>
- <span class="label <%= label %>"><%= pj[:name] %></span>
+ <%= job_status %>
<% end %>
- </span>
</td><td>
<%= pj[:script] %>
<br /><span class="deemphasize"><%= pj[:script_version] %></span>
</td><td>
<%= pj[:progress_bar] %>
- <% if pj[:job].andand[:cancelled_at] %>
- <span class="pull-right label label-warning">cancelled</span>
- <% elsif pj[:failed] %>
- <span class="pull-right label label-warning">failed</span>
- <% elsif pj[:result] == 'queued' %>
- <span class="pull-right label">queued</span>
- <% end %>
</td><td>
- <%= link_to_if_arvados_object pj[:output] %>
+ <%= 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="4"></td></tr>
+ <tr><td colspan="5"></td></tr>
</tfoot>
</table>
<% if @object.active %>
<% content_for :js do %>
-setInterval(function(){$('a.refresh').click()}, 30000);
-<% end %>
+setInterval(function(){$('a.refresh').click()}, 15000);
<% end %>
-<% else %>
-
+<% content_for :tab_line_buttons do %>
<%= form_tag @object, :method => :put do |f| %>
- <%= hidden_field @object.class.to_s.underscore.singularize.to_sym, :active, :value => true %>
- <%= button_tag "Run pipeline", {class: 'btn btn-primary pull-right', id: "run-pipeline-button"} %>
- <% end %>
+ <%= hidden_field @object.class.to_s.underscore.singularize.to_sym, :active, :value => false %>
-<table class="table pipeline-components-table" style="margin-top: -.1em">
- <colgroup>
- <col style="width: 15%" />
- <col style="width: 20%" />
- <col style="width: 20%" />
- <col style="width: 45%" />
- </colgroup>
+ <%= button_tag "Stop pipeline", {class: 'btn btn-primary pull-right', id: "run-pipeline-button"} %>
+ <% end %>
+<% end %>
- <thead>
- <tr>
- <th>
- component
- </th><th>
- script
- </th><th>
- parameter
- </th><th>
- value
- </th>
- </tr>
- </thead>
- <tbody>
- <% template = PipelineTemplate.find(@object.pipeline_template_uuid) %>
- <% template.components.each do |k, template_value| %>
+<% end %>
- <tr>
- <td><span class="label label-default"><%= k %></span></td>
+<% else %>
- <td><%= render_editable_subattribute @object, :components, [k, :script], template_value[:script] %></td>
+ <p>Please set the desired input parameters for the components of this pipeline. Parameters highlighted in red are required.</p>
- <td>script version</td>
+ <% content_for :tab_line_buttons do %>
+ <%= form_tag @object, :method => :put do |f| %>
- <td>
- <%= render_editable_subattribute @object, :components, [k, :script_version], template_value[:script_version] %>
- </td>
- </tr>
+ <%= hidden_field @object.class.to_s.underscore.singularize.to_sym, :active, :value => true %>
- <% if template_value[:script_parameters].length > 0 %>
- <% template_value[:script_parameters].each do |p, tv| %>
- <tr>
- <td style="border-top: none"></td>
- <td style="border-top: none"></td>
-
- <td class="property-edit-row"><%= p %></td>
- <td class="property-edit-row"><%= render_editable_subattribute @object, :components, [k, :script_parameters, p.to_sym], tv %></td>
- <% end %>
- </tr>
+ <%= button_tag "Run pipeline", {class: 'btn btn-primary pull-right', id: "run-pipeline-button"} %>
<% end %>
<% end %>
- </tbody>
- </table>
-
+
+ <%= render partial: 'show_components_editable', locals: {editable: true} %>
+
<% end %>