X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d13e8de76d48788a9198d4581205995f45464ff3..89fbb8bf806dde53fd7cfc761cf3d0719fbebf59:/apps/workbench/app/controllers/search_controller.rb diff --git a/apps/workbench/app/controllers/search_controller.rb b/apps/workbench/app/controllers/search_controller.rb index 2b0ad7e57a..9e2ff1b00b 100644 --- a/apps/workbench/app/controllers/search_controller.rb +++ b/apps/workbench/app/controllers/search_controller.rb @@ -1,10 +1,28 @@ class SearchController < ApplicationController def find_objects_for_index - @objects = Group.contents(limit: @limit, offset: @offset, filters: @filters) + search_what = Group + if params[:project_uuid] + # Special case for "search all things in project": + @filters = @filters.select do |attr, operator, operand| + not (attr == 'owner_uuid' and operator == '=') + end + # Special case for project_uuid is a user uuid: + if ArvadosBase::resource_class_for_uuid(params[:project_uuid]) == User + search_what = User.find params[:project_uuid] + else + search_what = Group.find params[:project_uuid] + end + end + @objects = search_what.contents(limit: @limit, + offset: @offset, + filters: @filters, + include_linked: true) super end def next_page_href with_params={} - super with_params.merge(last_object_class: @objects.last.class.to_s) + super with_params.merge(last_object_class: @objects.last.class.to_s, + project_uuid: params[:project_uuid], + filters: @filters.to_json) end end