Merge branch '8784-dir-listings'
[arvados.git] / apps / workbench / app / controllers / search_controller.rb
index 31c66638db69986ddb578740896f67f3be841351..40e484ea062b449068923fdc8d9951f1f7adddbe 100644 (file)
@@ -1,3 +1,7 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 class SearchController < ApplicationController
   def find_objects_for_index
     search_what = Group
@@ -6,16 +10,27 @@ class SearchController < ApplicationController
       @filters = @filters.select do |attr, operator, operand|
         not (attr == 'owner_uuid' and operator == '=')
       end
-      search_what = Group.find(params[:project_uuid])
+      # 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)
+                                    recursive: true,
+                                    count: 'none',
+                                    last_object_class: params["last_object_class"],
+                                    filters: @filters)
     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],
+                            recursive: true,
+                            count: 'none',
+                            filters: @filters.to_json)
   end
 end