- <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.in? %w(RunningOnServer RunningOnClient) %>
-
- <% content_for :js do %>
- setInterval(function(){$('a.refresh').click()}, 15000);
- <% end %>
-
- <% if !pipeline_job_uuids.empty? %>
- <h4>Log messages from running jobs</h4>
- <% log_history = pipeline_log_history(pipeline_job_uuids) %>
- <div class="arv-log-event-listener arv-log-event-handler-append-logs arv-job-log-window" id="pipeline_event_log_div" data-object-uuids="<%=pipeline_job_uuids.join(" ")%>">
- <% log_history.each do |entry| %>
- <%=entry%><br/>
- <% end %>
- </div>
- <% end %>
-
- <% end %>