10945: show jobs in which this job is used in job#show page.
[arvados.git] / apps / workbench / app / views / jobs / _show_status.html.erb
index cec63403ef1063cb652c642ab7238ddf931c27da..52188830bb2d3ba3c525e7e2e8dfd734da537813 100644 (file)
@@ -1,27 +1,51 @@
-<div style="margin-top: 10px">
-<% pj = {} %>
-<% pj[:job] = @object %>
-<% pj[:name] = @object[:name] || "this job" %>
-<% tasks = JobTask.filter([['job_uuid', '=', @object.uuid]]).results %>
-<%= render partial: 'pipeline_instances/running_component', locals: {tasks: tasks, pj: pj, i: 0, expanded: true} %>
-</div>
+<%= render(partial: 'work_units/show_status', locals: {current_obj: @object, name: @object[:name] || 'this job'}) %>
+
+<div class="panel panel-default">
+  <div class="panel-heading">
+    <span class="panel-title">Used in pipelines</span>
+  </div>
+  <div class="panel-body used-in-pipelines">
+    <% pi = PipelineInstance.order("created_at desc").filter([["components", "like", "%#{@object.uuid}%"]]) %>
 
-  <div class="panel panel-default">
+    <% pi.each do |pipeline| %>
+      <% pipeline.components.each do |k, v| %>
+        <% if v[:job] and v[:job][:uuid] == @object.uuid %>
+          <div>
+            <b><%= k %></b>
+            component of
+            <%= link_to_if_arvados_object pipeline, friendly_name: true %>
+            created at
+            <%= render_localized_date(pipeline.created_at) %>.
+          </div>
+        <% end %>
+      <% end %>
+    <% end %>
+  </div>
+
+  <% jobs = Job.order("created_at desc").filter([["components", "like", "%#{@object.uuid}%"]]).limit(10) %>
+  <% if jobs.results.size > 0
+     message = "Used in the jobs"
+     if jobs.items_available > jobs.results.size
+       message += ' (' + (jobs.items_available - jobs.results.size).to_s + ' more jobs are not listed)'
+     end
+  %>
     <div class="panel-heading">
-      <span class="panel-title">Used in pipelines</span>
+      <span class="panel-title"> <%= message %> </span>
     </div>
-    <div class="panel-body">
-<% pi = PipelineInstance.order("created_at desc").filter([["components", "like", "%#{@object.uuid}%"]]) %>
 
-<% pi.each do |pipeline| %>
-  <% pipeline.components.each do |k, v| %>
-    <% if v[:job] and v[:job][:uuid] == @object.uuid %>
-      <div>
-      <b><%= k %></b> component of <%= link_to_if_arvados_object pipeline, friendly_name: true %> 
-      created at <%= render_localized_date(pipeline.created_at) %>.
-      </div>
+    <div class="panel-body used-in-jobs">
+    <% jobs.each do |j| %>
+      <% j.components.each do |k, v| %>
+        <% if v == @object.uuid %>
+          <div>
+            <b><%= k %></b>
+            component of
+            <%= link_to_if_arvados_object j, friendly_name: true %>
+            created at
+            <%= render_localized_date(j.created_at) %>.
+          </div>
+        <% end %>
+      <% end %>
     <% end %>
   <% end %>
-<% end %>
-</div>
 </div>