X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/897e6cc8175865575a809e9fcc6d40ea566ee930..0b0070702a59ca73d8bdd7bc117c63efff932ede:/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 d9ec0a6965..7b02206d22 100644 --- a/apps/workbench/app/controllers/projects_controller.rb +++ b/apps/workbench/app/controllers/projects_controller.rb @@ -77,29 +77,18 @@ class ProjectsController < ApplicationController end end + def copy_items + move_or_copy_project_items :copy + end + def move_items - target_uuid = params['target'] - uuids_to_add = session[:selected_move_items] + move_or_copy_project_items :move + end - 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 + def move_or_copy_project_items action + uuids_to_add = session[:selected_move_or_copy_items] + move_or_copy_items action, uuids_to_add, params['target'] + session[:selected_move_or_copy_items] = nil redirect_to @object end @@ -239,7 +228,7 @@ class ProjectsController < ApplicationController objects_and_names << [object, @name_link_for[object.uuid]] elsif object.respond_to? :name objects_and_names << [object, object] - else + elsif not Collection.attribute_info.include?(:name) objects_and_names << [object, Link.new(owner_uuid: @object.uuid, tail_uuid: @object.uuid,