closes #5826
[arvados.git] / apps / workbench / app / controllers / collections_controller.rb
index d9bf3a96ccde9645c955d05491aab13e0482306e..0610fd2e81852569c0e37da380fd3bbff51f2ac0 100644 (file)
@@ -198,7 +198,7 @@ class CollectionsController < ApplicationController
 
     if current_user
       if Keep::Locator.parse params["uuid"]
-        @same_pdh = Collection.filter([["portable_data_hash", "=", @object.portable_data_hash]])
+        @same_pdh = Collection.filter([["portable_data_hash", "=", @object.portable_data_hash]]).limit(20)
         if @same_pdh.results.size == 1
           redirect_to collection_path(@same_pdh[0]["uuid"])
           return
@@ -206,6 +206,8 @@ class CollectionsController < ApplicationController
         owners = @same_pdh.map(&:owner_uuid).to_a.uniq
         preload_objects_for_dataclass Group, owners
         preload_objects_for_dataclass User, owners
+        uuids = @same_pdh.map(&:uuid).to_a.uniq
+        preload_links_for_objects uuids
         render 'hash_matches'
         return
       else
@@ -224,6 +226,7 @@ class CollectionsController < ApplicationController
           .where(head_uuid: @object.uuid, link_class: 'permission',
                  name: 'can_read').results
         @logs = Log.limit(RELATION_LIMIT).order("created_at DESC")
+          .select(%w(uuid event_type object_uuid event_at summary))
           .where(object_uuid: @object.uuid).results
         @is_persistent = Link.limit(1)
           .where(head_uuid: @object.uuid, tail_uuid: current_user.uuid,
@@ -271,14 +274,8 @@ class CollectionsController < ApplicationController
     if @updates && (@updates.keys - ["name", "description"]).empty?
       # exclude manifest_text since only name or description is being updated
       @object.manifest_text = nil
-      if @object.update_attributes @updates
-        show
-      else
-        self.render_error status: 422
-      end
-    else
-      super
     end
+    super
   end
 
   protected