X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4218f74266f3fee7c618c887bea6a804005c89b9..74fec3cd8284eae4829dad2c287588d52c621c4b:/apps/workbench/app/views/work_units/_component_detail.html.erb diff --git a/apps/workbench/app/views/work_units/_component_detail.html.erb b/apps/workbench/app/views/work_units/_component_detail.html.erb index 6aa5a9c894..e48a91ec1b 100644 --- a/apps/workbench/app/views/work_units/_component_detail.html.erb +++ b/apps/workbench/app/views/work_units/_component_detail.html.erb @@ -1,20 +1,43 @@ +<%# Copyright (C) The Arvados Authors. All rights reserved. + +SPDX-License-Identifier: AGPL-3.0 %> + <% collections = [current_obj.outputs, current_obj.docker_image].flatten.compact.uniq collections_pdhs = collections.select {|x| !CollectionsHelper.match(x).nil?}.uniq.compact collections_uuids = collections - collections_pdhs preload_collections_for_objects collections_uuids if collections_uuids.any? - preload_for_pdhs collections_pdhs if collections_pdhs.any? + preload_links_for_objects collections_uuids if collections_uuids.any? preload_objects_for_dataclass(Repository, [current_obj.repository], :name) if current_obj.repository + + # if container_X, preload mounted collections + if @object.is_a? Container or @object.is_a? ContainerRequest + # get any collections in mounts + mounts = current_obj.send(:mounts) if current_obj.respond_to?(:mounts) + input_obj = mounts.andand[:"/var/lib/cwl/cwl.input.json"].andand[:content] + if input_obj + input_obj.to_s.scan(/([0-9a-f]{32}\+\d+)/).each {|cs| collections_pdhs += cs} + end + + command = current_obj.send(:command) if current_obj.respond_to?(:command) + if command + command.to_s.scan(/([0-9a-f]{32}\+\d+)/).each {|cs| collections_pdhs += cs} + end + end + + collections_pdhs.compact.uniq + preload_for_pdhs collections_pdhs if collections_pdhs.any? + preload_links_for_objects collections_pdhs if collections_pdhs.any? %>
-
+
<% if current_obj.uuid.nil? %> No <%= current_obj.title %> has been submitted yet. <% else %> - +
<% keys = [:uuid, :modified_by_user_uuid, :created_at, :started_at, :finished_at, :container_uuid] %> <% keys << :log_collection if @object.uuid != current_obj.uuid %> <% keys << :outputs %> @@ -43,7 +66,7 @@ <%= 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) %> + <%= link_to_arvados_object_if_readable(val[0], "#{val[0]} (Unavailable)", friendly_name: true) %> <% else %> <%= render partial: 'work_units/show_outputs', locals: {id: current_obj.uuid, outputs: val, align:""} %> <% end %> @@ -60,15 +83,15 @@ <% end %>
-
+
<% # link to repo tree/file only if the repo is readable and the commit is a sha1 repo = (/^[0-9a-f]{40}$/ =~ current_obj.script_version and current_obj.repository and object_for_dataclass(Repository, current_obj.repository, :name)) repo = nil unless repo.andand.http_fetch_url %> - <% [:priority, :script, :repository, :script_version, :supplied_script_version, :nondeterministic, - :runtime_constraints, :requesting_container_uuid].each do |k| %> + <% [:script, :repository, :script_version, :supplied_script_version, :nondeterministic, + :priority, :runtime_constraints, :requesting_container_uuid].each do |k| %> <% val = current_obj.send(k) if current_obj.respond_to?(k) %> <% if val %> @@ -103,7 +126,7 @@ <% if mount_wf_cls == Collection %>
- mount_workflow: + workflow.json: <%= link_to_if_arvados_object mount_wf, friendly_name: true %> @@ -143,8 +166,10 @@
-
- +
+
+ + <% [:command].each do |k| %> <% val = current_obj.send(k) if current_obj.respond_to?(k) %> <% if val %> @@ -152,11 +177,10 @@ - - <% if mnt_inputs %> + <% if mnt_inputs %> + - - <% end %> - + + <% end %>
<%= k.to_s %>: + <% if k == :command %> -
- <%=val%> -
+ <% val = JSON.pretty_generate(val) %> + <%= render partial: 'show_text_with_locators', locals: {data_height: 200, text_data: val} %> <% else %> <%= val %> <% end %> @@ -170,26 +194,16 @@ input_obj = mounts.andand[:"/var/lib/cwl/cwl.input.json"].andand[:content] mnt_inputs = JSON.pretty_generate(input_obj) if input_obj %> -
- input_mounts: + cwl.input.json: -
- <% mnt_inputs.each_line do |l| %> - <% text_part = l %> - <% match = l.match /\"keep:.*?\"/ %> - <% if match %> - <% text_part = l[0..l.index("\"keep:")-1] %> - <% location_part = match[0][6..-2] %> - <% end %> - <%= text_part %><%= if location_part then link_to_arvados_object_if_readable(location_part, location_part, friendly_name: true) end %> <% if location_part then %>
<% end %>
- <% end %> -
+
+ <%= render partial: 'show_text_with_locators', locals: {data_height: 400, text_data: mnt_inputs} %>
@@ -197,7 +211,7 @@ <% if current_obj.parameters and !current_obj.parameters.empty? %>
-
+

script_parameters:

<%= JSON.pretty_generate(current_obj.parameters) rescue nil %>