X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d13e8de76d48788a9198d4581205995f45464ff3..1966eff7c92733225cd9fe1a4121ae0b8f1153d3:/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 9f2cfb09f3..fd4ebc4cd4 100644 --- a/apps/workbench/app/controllers/actions_controller.rb +++ b/apps/workbench/app/controllers/actions_controller.rb @@ -11,13 +11,15 @@ class ActionsController < ApplicationController end def show - @object = model_class.find(params[:uuid]) + @object = model_class.andand.find(params[:uuid]) if @object.is_a? Link and @object.link_class == 'name' and ArvadosBase::resource_class_for_uuid(@object.head_uuid) == Collection redirect_to collection_path(id: @object.uuid) - else + elsif @object redirect_to @object + else + raise ActiveRecord::RecordNotFound end end @@ -40,12 +42,13 @@ class ActionsController < ApplicationController def move_or_copy action uuids_to_add = params["selection"] + uuids_to_add = [ uuids_to_add ] unless uuids_to_add.is_a? Array 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 |src| - if resource_class == Collection + if resource_class == Collection and not Collection.attribute_info.include?(:name) dst = Link.new(owner_uuid: @object.uuid, tail_uuid: @object.uuid, head_uuid: src.uuid, @@ -62,6 +65,9 @@ class ActionsController < ApplicationController dst.name = "Copy of unnamed #{dst.class_for_display.downcase}" end end + if resource_class == Collection + dst.manifest_text = Collection.select([:manifest_text]).where(uuid: src.uuid).first.manifest_text + end when :move dst = src else