Fix 2.4.2 upgrade notes formatting refs #19330
[arvados.git] / apps / workbench / app / views / jobs / _show_status.html.erb
index a3f38d875e7e1d4b7da089f24f8db7bff6365a90..ced5b1e978a5b3112cab027cf54bb3672e71cd0d 100644 (file)
@@ -1,93 +1,58 @@
+<%# Copyright (C) The Arvados Authors. All rights reserved.
 
-<div class="pull-right">
-  <% if @object.running %>
-    <%= form_tag "/jobs/#{@object.uuid}/cancel", style: "display:inline; padding-left: 1em" do |f| %>
-      <%= button_tag "Cancel running job", {class: 'btn btn-danger', id: "cancel-job-button"} %>
-    <% end %>
-  <% else %>
-    Re-run job using script version:
-    <%= form_tag '/jobs', style: "display:inline; padding-left: 1em" do |f| %>
-      <% [:script, :script_version, :repository, :output_is_persistent, :supplied_script_version, :nondeterministic].each do |d| %>
-        <%= hidden_field :job, d, :value => @object[d] %>
-      <% end %>
-      <% [:script_parameters, :runtime_constraints].each do |d| %>
-        <%= hidden_field :job, d, :value => JSON.dump(@object[d]) %>
-      <% end %>
-      <%= button_tag "Same as this run", {class: 'btn btn-primary', id: "re-run-same-job-button"} %>
-    <% end %>
-  <% if !@object.supplied_script_version.nil? and !@object.supplied_script_version.empty? and @object.script_version != @object.supplied_script_version%>
-      <%= form_tag '/jobs', style: "display:inline" do |f| %>
-      <% [:script, :repository, :output_is_persistent, :supplied_script_version, :nondeterministic].each do |d| %>
-        <%= hidden_field :job, d, :value => @object[d] %>
-      <% end %>
-      <%= hidden_field :job, :script_version, :value => @object[:supplied_script_version] %>
-      <% [:script_parameters, :runtime_constraints].each do |d| %>
-        <%= hidden_field :job, d, :value => JSON.dump(@object[d]) %>
+SPDX-License-Identifier: AGPL-3.0 %>
+
+<%= 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}%"]]) %>
+
+    <% 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 %>
-      <%= button_tag "Latest (#{@object.repository}/#{@object.supplied_script_version})", {class: 'btn btn-primary', id: "re-run-latest-job-button"} %>
     <% end %>
-  <% end %>
-<% end %>
-</div>
+  </div>
 
-<table class="table pipeline-components-table">
-  <colgroup>
-    <col style="width: 20%" />
-    <col style="width: 24%" />
-    <col style="width: 12%" />
-    <col style="width: 45%" />
-  </colgroup>
-  <thead>
-    <tr><th>
-        script, version
-      </th><th>
-        progress
-        <%# 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>
-    <tr>
-      <td>
-        <%= @object[:script] %><br>
-        <span class="deemphasize"><%= @object[:script_version] %></span>
-      </td>
-      <td>
-        <%= render partial: 'job_progress', locals: {:j => @object} %>
-        <% if @object.running == false %>
-          <% if @object[:job].andand[:uuid] %>
-            <span class="deemphasize">
-              <%= link_to("..."+@object[:job][:uuid].last(15), job_url(id: @object[:job][:uuid])) %>
-            </span>
+  <div class="panel-heading">
+    <span class="panel-title">Used in jobs</span>
+  </div>
 
-            <% current_job = @object %>
-            <% 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 %>
+  <% jobs = Job.order("created_at desc").filter([["components", "like", "%#{@object.uuid}%"]]).limit(10) %>
+  <%
+     too_many_message = ""
+     if jobs.items_available > jobs.results.size
+       too_many_message = (jobs.items_available - jobs.results.size).to_s + ' more jobs are not listed.'
+     end
+  %>
+  <div class="panel-body used-in-jobs">
+    <% if too_many_message != "" %>
+      <p><i><%= too_many_message %></i></p>
+    <% end %>
+    <% 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 %>
-      </td><td>
-        <%= render(partial: 'job_status_label',
-                   locals: { :j => @object }) %>
-      </td><td>
-        <%= link_to_if_arvados_object @object[:output], {:thumbnail => true} %>
-      </td>
-    </tr>
-    <tfoot>
-      <tr><td colspan="5"></td></tr>
-    </tfoot>
-</table>
+      <% end %>
+    <% end %>
+  </div>
+</div>