X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c14ae0edcb3c386e50f46218184e8dabcbc20a37..6f62739bee508c9b2b8c4ce2f2593fe1714cfda6:/apps/workbench/app/helpers/application_helper.rb diff --git a/apps/workbench/app/helpers/application_helper.rb b/apps/workbench/app/helpers/application_helper.rb index 41b33706d1..4112802935 100644 --- a/apps/workbench/app/helpers/application_helper.rb +++ b/apps/workbench/app/helpers/application_helper.rb @@ -584,6 +584,30 @@ module ApplicationHelper end end + # yields collection id (pdh or uuid), and full file_path + def cwl_input_collections(path, &b) + case path + when ArvadosBase + path.class.columns.each do |c| + cwl_input_collections(path[c.name.to_sym], &b) + end + when Hash + path.each do |k, v| + cwl_input_collections(v, &b) + end + when Array + path.each do |v| + cwl_input_collections(v, &b) + end + when String + if m = /[a-f0-9]{32}\+\d+/.match(path) + yield m[0], path.split('keep:')[-1] + elsif m = /[0-9a-z]{5}-4zz18-[0-9a-z]{15}/.match(path) + yield m[0], path.split('keep:')[-1] + end + end + end + def render_arvados_object_list_start(list, button_text, button_href, params={}, *rest, &block) show_max = params.delete(:show_max) || 3