9318: fixed outputs display issue where "outpus: []" is being shown when there are...
[arvados.git] / apps / workbench / app / views / work_unit / _component_detail.html.erb
index 045154a2208d302ebfc699e1b9372dc5a20972fe..19c7f224f65fd02e5baa8ecb5739e2c740420adc 100644 (file)
@@ -1,10 +1,17 @@
       <div class="container">
         <div class="row">
           <div class="col-md-5">
+            <% if current_obj.uuid.nil? %>
+              No <%= current_obj.title %> has been submitted yet.
+            <% else %>
             <table>
-              <% [:uuid, :modified_by_user_uuid, :created_at, :started_at, :finished_at, :priority].each do |k| %>
+              <% keys = [:uuid, :modified_by_user_uuid, :created_at, :started_at, :finished_at, :priority] %>
+              <% keys << :outputs if @object.uuid == current_obj.uuid %>
+              <% keys.each do |k| %>
                 <% val = current_obj.send(k) if current_obj.respond_to?(k) %>
-                <% unless val.nil? %>
+                <% has_val = val %>
+                <% has_val = val.andand.any? if k == :outputs %>
+                <% if has_val %>
                 <tr>
                   <td style="padding-right: 1em">
                     <%= k.to_s %>:
                       <%= link_to_arvados_object_if_readable(val, val, friendly_name: true) %>
                     <% elsif k.to_s.end_with? '_at' %>
                       <%= render_localized_date(val) %>
+                    <% elsif k == :outputs and val.any? %>
+                      <% if val.size == 1 %>
+                        <%= link_to_arvados_object_if_readable(val[0], 'Output data not available', friendly_name: true) %>
+                      <% else %>
+                        <%= render partial: 'work_unit/show_outputs', locals: {id: current_obj.uuid, outputs: val, align:""} %>
+                      <% end %>
                     <% else %>
                       <%= val %>
                     <% end %>
@@ -24,6 +37,7 @@
                 <% end %>
               <% end %>
             </table>
+            <% end %>
           </div>
           <div class="col-md-6">
             <table>
@@ -38,7 +52,7 @@
                  %>
               <% [:script, :repository, :script_version, :supplied_script_version, :nondeterministic].each do |k| %>
                 <% val = current_obj.send(k) if current_obj.respond_to?(k) %>
-                <% unless val.nil? %>
+                <% if val %>
                 <tr>
                   <td style="padding-right: 1em">
                     <%= k.to_s %>:
@@ -79,7 +93,8 @@
             </table>
           </div>
         </div>
-        <% unless current_obj.parameters.nil? %>
+
+        <% if current_obj.parameters and !current_obj.parameters.empty? %>
         <div class="row">
           <div class="col-md-6">
             <p>script_parameters:</p>
         </div>
         <% end %>
       </div>
-    </div>