X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2ee4ee2bb666835c41019b475dd2e286604bdd35..a1c4ece152e1e992c18f0cb368528cd2ac843b07:/services/api/app/controllers/arvados/v1/collections_controller.rb diff --git a/services/api/app/controllers/arvados/v1/collections_controller.rb b/services/api/app/controllers/arvados/v1/collections_controller.rb index 6e77c12a1d..c771fcea79 100644 --- a/services/api/app/controllers/arvados/v1/collections_controller.rb +++ b/services/api/app/controllers/arvados/v1/collections_controller.rb @@ -15,6 +15,21 @@ class Arvados::V1::CollectionsController < ApplicationController include_trash: { type: 'boolean', required: false, description: "Include collections whose is_trashed attribute is true." }, + include_old_versions: { + type: 'boolean', required: false, description: "Include past collection versions." + }, + }) + end + + def self._show_requires_parameters + (super rescue {}). + merge({ + include_trash: { + type: 'boolean', required: false, description: "Show collection even if its is_trashed attribute is true." + }, + include_old_versions: { + type: 'boolean', required: false, description: "Include past collection versions." + }, }) end @@ -23,17 +38,26 @@ class Arvados::V1::CollectionsController < ApplicationController resource_attrs[:portable_data_hash] = loc.to_s resource_attrs.delete :uuid end + resource_attrs.delete :version + resource_attrs.delete :current_version_uuid super end def find_objects_for_index + opts = {} if params[:include_trash] || ['destroy', 'trash', 'untrash'].include?(action_name) - @objects = Collection.readable_by(*@read_users, {include_trash: true}) + opts.update({include_trash: true}) end + if params[:include_old_versions] || @include_old_versions + opts.update({include_old_versions: true}) + end + @objects = Collection.readable_by(*@read_users, opts) if !opts.empty? super end def find_object_by_uuid + @include_old_versions = true + if loc = Keep::Locator.parse(params[:id]) loc.strip_hints!