X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/9d76f0c0fc0c35b70f3988695fcb253e1739e36b..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 6287793f76..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 @@ -177,6 +166,8 @@ class ProjectsController < ApplicationController offset: @offset) @next_page_href = next_page_href(partial: :contents_rows) end + + preload_links_for_objects(@objects.to_a) end def show @@ -237,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,