X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c3aa32a866ac5a833675888ca8106ea4a6581bc4..060d38d627bd1e51dd2b3c6e7de9af6aa7d7b6f3:/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 189c16230f..3271bf9d76 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 %> @@ -60,18 +83,18 @@ <% 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].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 %> - + @@ -84,6 +107,8 @@ <%= link_to val, show_repository_commit_path(id: repo.uuid, commit: current_obj.script_version) %> <% elsif k == :runtime_constraints and val.any? %> <%= render partial: 'work_units/show_table_data', locals: {id: current_obj.uuid, name: k, data_map: val} %> + <% elsif k.to_s.end_with? 'uuid' %> + <%= link_to_arvados_object_if_readable(val, val, friendly_name: true) %> <% else %> <%= val %> <% end %> @@ -101,7 +126,7 @@ <% if mount_wf_cls == Collection %>
<%= k.to_s %>:
- mount_workflow: + workflow.json: <%= link_to_if_arvados_object mount_wf, friendly_name: true %> @@ -141,20 +166,21 @@
-
- +
+
+ + <% [:command].each do |k| %> <% val = current_obj.send(k) if current_obj.respond_to?(k) %> <% if val %> - - - <% if mnt_inputs.any? %> - + - - <% 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 %> @@ -165,24 +191,19 @@ <% mounts = current_obj.send(:mounts) if current_obj.respond_to?(:mounts) - input_obj =mounts.andand[:"/var/lib/cwl/cwl.input.json"].andand[:content] || mounts || {} - mnt_inputs = [] - cr_input_collections(input_obj) do |_, path| - mnt_inputs << path - end - mnt_inputs = mnt_inputs.uniq.compact + input_obj = mounts.andand[:"/var/lib/cwl/cwl.input.json"].andand[:content] + mnt_inputs = JSON.pretty_generate(input_obj) if input_obj %> -
- input_mounts: + <% if mnt_inputs %> +
+ cwl.input.json: - <%= render partial: 'work_units/show_mount_inputs', - locals: {id: current_obj.uuid, name: 'mount-inputs', inputs: mnt_inputs} %> + + <%= render partial: 'show_text_with_locators', locals: {data_height: 400, text_data: mnt_inputs} %>