X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/360b5d19eb0cb595fd34d11aa6426d95b3c974d4..fc5f7e25c2998c67e501e801b46a9237e20dbe83:/apps/workbench/app/controllers/projects_controller.rb diff --git a/apps/workbench/app/controllers/projects_controller.rb b/apps/workbench/app/controllers/projects_controller.rb index f32f356d0c..2b605d3f83 100644 --- a/apps/workbench/app/controllers/projects_controller.rb +++ b/apps/workbench/app/controllers/projects_controller.rb @@ -52,6 +52,32 @@ class ProjectsController < ApplicationController end end + def move_items + target_uuid = params['target'] + uuids_to_add = session[:selected_move_items] + + uuids_to_add. + collect { |x| ArvadosBase::resource_class_for_uuid(x) }. + uniq. + each do |resource_class| + resource_class.filter([['uuid','in',uuids_to_add]]).each do |dst| + if resource_class == Collection + dst = Link.new(owner_uuid: target_uuid, + tail_uuid: target_uuid, + head_uuid: dst.uuid, + link_class: 'name', + name: target_uuid) + else + dst.owner_uuid = target_uuid + dst.tail_uuid = target_uuid if dst.class == Link + end + dst.save! + end + end + session[:selected_move_items] = nil + redirect_to @object + end + def destroy while (objects = Link.filter([['owner_uuid','=',@object.uuid], ['tail_uuid','=',@object.uuid]])).any?