X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b3a016e9a47d453b5ae4d287d8b6eaafd69971df..28b6afc1e8ccf652c7a8fd43e22a8ac788febd85:/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 e6f20be370..7b8c8eafc8 100644 --- a/apps/workbench/app/controllers/actions_controller.rb +++ b/apps/workbench/app/controllers/actions_controller.rb @@ -34,7 +34,7 @@ class ActionsController < ApplicationController @object.link_class == 'name' and ArvadosBase::resource_class_for_uuid(@object.head_uuid) == Collection redirect_to collection_path(id: @object.uuid) - elsif @object.is_a?(Group) and @object.group_class == 'project' + elsif @object.is_a?(Group) and (@object.group_class == 'project' or @object.group_class == 'filter') redirect_to project_path(id: @object.uuid) elsif @object redirect_to @object @@ -49,7 +49,7 @@ class ActionsController < ApplicationController return self.send(param) end end - redirect_to :back + redirect_back(fallback_location: root_path) end expose_action :copy_selections_into_project do @@ -86,7 +86,10 @@ class ActionsController < ApplicationController end end if resource_class == Collection - dst.manifest_text = Collection.select([:manifest_text]).where(uuid: src.uuid).first.manifest_text + dst.manifest_text = Collection.select([:manifest_text]).where(uuid: src.uuid).with_count("none").first.manifest_text + # Fixes bug 19144: nullify some fields that are managed by keep-balance. + dst.storage_classes_confirmed = [] + dst.storage_classes_confirmed_at = nil end when :move dst = src @@ -122,7 +125,7 @@ class ActionsController < ApplicationController uuids, source_paths = selected_collection_files params new_coll = Arv::Collection.new - Collection.where(uuid: uuids.uniq). + Collection.where(uuid: uuids.uniq).with_count("none"). select([:uuid, :manifest_text]).each do |coll| src_coll = Arv::Collection.new(coll.manifest_text) src_pathlist = source_paths[coll.uuid] @@ -164,7 +167,7 @@ class ActionsController < ApplicationController flash = {} # set owner_uuid to current project, provided it is writable - action_data = Oj.load(params['action_data'] || "{}") + action_data = Oj.safe_load(params['action_data'] || "{}") if action_data['current_project_uuid'] and current_project = Group.find?(action_data['current_project_uuid']) and current_project.writable_by.andand.include?(current_user.uuid) @@ -210,7 +213,7 @@ You can try recreating the collection to get a copy with full provenance data." # star / unstar the current project def star - links = Link.where(tail_uuid: current_user.uuid, + links = Link.where(owner_uuid: current_user.uuid, head_uuid: @object.uuid, link_class: 'star')