X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0f8dc3d824f03b82b8db9f61bbcc0592b62b998f..30d37841e979eacd15f11cbaf608d507af379a86:/apps/workbench/app/controllers/actions_controller.rb diff --git a/apps/workbench/app/controllers/actions_controller.rb b/apps/workbench/app/controllers/actions_controller.rb index 28680df33f..beeae0760c 100644 --- a/apps/workbench/app/controllers/actions_controller.rb +++ b/apps/workbench/app/controllers/actions_controller.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require "arvados/collection" class ActionsController < ApplicationController @@ -114,42 +118,7 @@ class ActionsController < ApplicationController end expose_action :combine_selected_files_into_collection do - link_uuids, coll_ids = params["selection"].partition do |sel_s| - ArvadosBase::resource_class_for_uuid(sel_s) == Link - end - - unless link_uuids.empty? - Link.select([:head_uuid]).where(uuid: link_uuids).each do |link| - if ArvadosBase::resource_class_for_uuid(link.head_uuid) == Collection - coll_ids << link.head_uuid - end - end - end - - uuids = [] - pdhs = [] - source_paths = Hash.new { |hash, key| hash[key] = [] } - coll_ids.each do |coll_id| - if m = CollectionsHelper.match(coll_id) - key = m[1] + m[2] - pdhs << key - source_paths[key] << m[4] - elsif m = CollectionsHelper.match_uuid_with_optional_filepath(coll_id) - key = m[1] - uuids << key - source_paths[key] << m[4] - end - end - - unless pdhs.empty? - Collection.where(portable_data_hash: pdhs.uniq). - select([:uuid, :portable_data_hash]).each do |coll| - unless source_paths[coll.portable_data_hash].empty? - uuids << coll.uuid - source_paths[coll.uuid] = source_paths.delete(coll.portable_data_hash) - end - end - end + uuids, source_paths = selected_collection_files params new_coll = Arv::Collection.new Collection.where(uuid: uuids.uniq).