<div class="panel-heading">
<div class="container-fluid">
<div class="row-fluid">
- <%# column offset 0 %>
<div class="col-md-2" style="word-break:break-all;">
<h4 class="panel-title">
<a data-toggle="collapse" href="#collapse<%= i %>">
</h4>
</div>
- <%# column offset 2 %>
<div class="col-md-2 pipeline-instance-spacing">
- <span class="label label-<%= current_obj.state_bootstrap_class %>"><%= current_obj.progress%></span>
+ <%= render partial: 'work_unit/progress', locals: {wu: current_obj} %>
</div>
- <%# column offset 4 %>
<% if not current_obj %>
<div class="col-md-8"></div>
<% else %>
<div class="col-md-1">
- <% if current_obj.state_label.in? ["Complete", "Failed", "Cancelled"] %>
- <% if current_obj.log_collection %>
- <% logCollection = Collection.find? current_obj.log_collection %>
- <% if logCollection %>
- <%= link_to "Log", job_path(current_obj.uuid, anchor: "Log") %>
- <% else %>
- Log unavailable
- <% end %>
- <% end %>
- <% elsif current_obj.state_label == "Running" %>
- <% job = Job.find? current_obj.uuid %>
- <% if job %>
- <%= link_to "Log", job_path(current_obj.uuid, anchor: "Log") %>
- <% else %>
- Log unavailable
- <% end %>
- <% end %>
+ <%= current_obj.link_to_log %>
</div>
- <%# column offset 5 %>
- <% if current_obj.state_label != "Queued" %>
+ <% walltime = current_obj.walltime %>
+ <% cputime = current_obj.cputime %>
<div class="col-md-3">
- <% if current_obj.started_at %>
- <% walltime = ((if current_obj.finished_at then current_obj.finished_at else Time.now() end) - current_obj.started_at) %>
- <% cputime = (current_obj.runtime_constraints.andand[:min_nodes] || 1) *
- ((current_obj.finished_at || Time.now()) - current_obj.started_at) %>
- <%= render_runtime(walltime, false) %>
- <% if cputime > 0 %> / <%= render_runtime(cputime, false) %> (<%= (cputime/walltime).round(1) %>⨯)<% end %>
- <% end %>
- </div>
+ <% if walltime and cputime %>
+ <%= render_runtime(walltime, false) %>
+ <% if cputime > 0 %> / <%= render_runtime(cputime, false) %> (<%= (cputime/walltime).round(1) %>⨯)<% end %>
<% end %>
+ </div>
- <% if current_obj.state_label == "Queued" %>
- <%# column offset 5 %>
- <div class="col-md-6">
- <% queuetime = Time.now - Time.parse(current_obj.created_at.to_s) %>
+ <% queuetime = current_obj.queuedtime %>
+ <% if queuetime %>
+ <div class="col-md-3">
Queued for <%= render_runtime(queuetime, false) %>.
</div>
- <% elsif current_obj.state_label == "Running" %>
- <% if current_obj.child_summary %>
- <%# column offset 8 %>
- <div class="col-md-3">
- <span class="task-summary-status">
- <%= current_obj.child_summary[:done] %> <%= "task".pluralize(current_obj.child_summary[:done]) %> done,
- <%= current_obj.child_summary[:failed] %> failed,
- <%= current_obj.child_summary[:running] %> running,
- <%= current_obj.child_summary[:todo] %> pending
- </span>
- </div>
- <% end %>
- <% elsif current_obj.state_label.in? ["Complete", "Failed", "Cancelled"] %>
- <%# column offset 8 %>
- <div class="col-md-4 text-overflow-ellipsis">
+ <% elsif current_obj.show_child_summary %>
+ <div class="col-md-3">
+ <span class="task-summary-status">
+ <%= current_obj.child_summary_str %>
+ </span>
+ </div>
+ <% elsif current_obj.is_finished? %>
+ <div class="col-md-3 text-overflow-ellipsis">
<% if current_obj.output %>
- <%= link_to_arvados_object_if_readable(current_obj.output, 'Output data not available', friendly_name: true) %>
- <% elsif current_obj.output %>
<%= link_to_arvados_object_if_readable(current_obj.output, 'Output data not available', link_text: "Output of #{current_obj.label}") %>
<% else %>
No output.
</div>
<% end %>
- <% if current_obj.state_label.in? ["Queued", "Running"] and @object.work_unit(@object.name).can_cancel? and @object.editable? %>
- <%# column offset 11 %>
- <div class="col-md-1 pipeline-instance-spacing">
+ <div class="col-md-1 pipeline-instance-spacing">
+ <% if current_obj.can_cancel? and @object.editable? %>
<%= form_tag "#{current_obj.uri}/cancel", remote: true, style: "display:inline; padding-left: 1em" do |f| %>
<%= hidden_field_tag :return_to, url_for(@object) %>
- <%= button_tag "Cancel", {class: 'btn btn-xs btn-danger', id: "cancel-job-button"} %>
+ <%= button_tag "Cancel", {class: 'btn btn-xs btn-danger', id: "cancel-child-button"} %>
<% end %>
- </div>
<% end %>
+ </div>
<% end %>
</div>
</div>