1 <% content_for :css do %>
2 table.topalign>tbody>tr>td {
5 table.topalign>thead>tr>td {
6 vertical-align: bottom;
10 <table class="topalign table">
12 <tr class="contain-align-left">
31 <% @jobs.sort_by { |j| j[:created_at] }.reverse.each do |j| %>
33 <tr class="cell-noborder">
35 <i class="icon-plus-sign expand-collapse-row" data-id="<%= j.uuid %>" style="cursor: pointer"></i>
38 <% if j.success == false %>
39 <span class="badge badge-warning" title="fail">✖</span>
41 <span class="badge badge-success" title="success">✔</span>
43 <span class="badge badge-info" title="running">✈</span>
45 <span class="badge" title="queued">✉</span>
49 <% if j.started_at and not j.finished_at %>
50 <% percent_total_tasks = 100 / (j.tasks_summary[:running] + j.tasks_summary[:done] + j.tasks_summary[:todo]) rescue 0 %>
51 <div class="progress" style="margin-bottom: 0">
52 <div class="bar bar-success" style="width: <%= j.tasks_summary[:done] * percent_total_tasks rescue 0 %>%;"></div>
53 <div class="bar" style="width: <%= j.tasks_summary[:running] * percent_total_tasks rescue 0 %>%; opacity: 0.3"></div>
58 <%= link_to_if_arvados_object j.uuid %>
64 <%= j.script_version.andand[0..8] %>
67 <%= link_to_if_arvados_object j.output %>
70 <tr class="cell-noborder" id="<%= j.uuid %>" style="display:none">
71 <td colspan="7"><table class="table table-justforlayout"><tr>
72 <td style="border-left: 1px solid black">
73 <table class="table table-condensed">
79 ✉ <span title="<%= j.created_at %>"><%= raw distance_of_time_in_words(Time.now, j.created_at).sub('about ','~').sub(' ',' ') + ' ago' if j.created_at %></span>
82 <%= raw('for ' + distance_of_time_in_words(j.started_at, j.created_at).sub('about ','~').sub(' ',' ')) if j.created_at and j.started_at %>
85 <% if j.started_at.is_a? Time %>
91 ✈ <span title="<%= j.created_at %>"><%= raw distance_of_time_in_words(j.started_at, Time.now).sub('about ','~').sub(' ',' ') + ' ago' if j.started_at %></span>
94 <% if j.finished_at.is_a? Time %>
95 <%= raw('ran ' + distance_of_time_in_words(j.finished_at, j.started_at).sub('about ','~').sub(' ',' ')) %>
97 <span class="badge badge-success" title="tasks finished">✔ <%= j.tasks_summary[:done] %></span>
98 <span class="badge badge-info" title="tasks running">✈ <%= j.tasks_summary[:running] %></span>
99 <span class="badge" title="tasks todo">✉ <%= j.tasks_summary[:todo] %></span>
100 <% if j.tasks_summary[:failed] %>
101 <span class="badge badge-warning" title="task failures">✖ <%= j.tasks_summary[:failed] %></span>
109 <table class="table table-condensed">
111 <%= j.script %> <%= j.script_version %>
113 <% j.script_parameters.sort.each do |k,v| %>
115 <td><%= k %></td><td><%= link_to_if_arvados_object v %></td>
119 <td>output</td><td><%= link_to_if_arvados_object j.output %></td>
123 <table class="table table-condensed">
124 <% j.runtime_constraints.sort.each do |k,v| %>
125 <tr><td><%= v %></td><td><%= k %></td></tr>
137 <%= render partial: 'application/svg_div', locals: {
138 divId: "provenance_graph",
139 svgId: "provenance_svg",