Fix crash on unexpected case of a collection whose owner_uuid is not root.
[arvados.git] / apps / workbench / app / views / users / _tables.html.erb
index c271f2b5e8d54d15183449e02700c315fba92385..a8c00e75442e76b0925a088454177bc90ce8a4ad 100644 (file)
           <th>Progress</th>
         </tr>
 
-        <% 
-          job_outputs = []
-          job_logs = []
+        <%# Preload collections, logs, and pipeline instance objects %>
+        <%
+          collection_uuids = []
+          log_uuids = []
           @my_jobs[0..6].each do |j|
-            job_outputs << j.output
-            job_logs << j.log
+            collection_uuids << j.output
+            log_uuids << j.log
           end
 
-          preload_collections job_outputs
-          preload_log_collections job_logs
+          @my_collections[0..6].each do |c|
+            collection_uuids << c.uuid
+          end
+
+          preload_collections_for_objects collection_uuids
+          preload_log_collections_for_objects log_uuids
+
+          pi_uuids = []
+          @my_pipelines[0..6].each do |p|
+            pi_uuids << p.uuid
+          end
+          resource_class = resource_class_for_uuid(pi_uuids.first, friendly_name: true)
+          preload_objects_for_dataclass resource_class, pi_uuids
         %>
+
         <% @my_jobs[0..6].each do |j| %>
           <tr data-object-uuid="<%= j.uuid %>">
             <td>
@@ -48,7 +61,9 @@
               <small>
                 <% if j.success and j.output %>
                   <a href="<%= collection_path(j.output) %>">
-                    <% get_collection(j.output).each do |c| %>
+                    <% collections = collections_for_object(j.output) %>
+                      <% if collections && !collections.empty? %>
+                      <% c = collections.first %>
                       <% c.files.each do |file| %>
                         <%= file[0] == '.' ? file[1] : "#{file[0]}/#{file[1]}" %>
                       <% end %>
@@ -61,7 +76,9 @@
 <td>
   <small>
     <% if j.log %>
-      <% get_log_collection(j.log).each do |c| %>
+      <% log_collections = log_collections_for_object(j.log) %>
+      <% if log_collections && !log_collections.empty? %>
+        <% c = log_collections.first %>
         <% c.files.each do |file| %>
           <a href="<%= collection_path(j.log) %>/<%= file[1] %>?disposition=inline&size=<%= file[2] %>">Log</a>
         <% end %>