8183: retrieve only 3 levels of projects while building projects dropdown.
authorradhika <radhika@curoverse.com>
Sat, 13 Feb 2016 01:57:25 +0000 (20:57 -0500)
committerradhika <radhika@curoverse.com>
Sat, 13 Feb 2016 01:57:25 +0000 (20:57 -0500)
apps/workbench/app/controllers/application_controller.rb
apps/workbench/app/views/application/_projects_tree_menu.html.erb

index 9d38723016fc03380003b6387211590ffbb128fc..cc64cfd3c1d03c136556ac37a7ccbee7fb4164d5 100644 (file)
@@ -841,6 +841,8 @@ class ApplicationController < ActionController::Base
 
     from_top = []
     uuids = [user.uuid]
+    depth = 0
+    @too_many_levels = false
     while from_top.size <= page_size*2
       current_level = Group.filter([['group_class','=','project'],
                                     ['owner_uuid', 'in', uuids]])
@@ -848,6 +850,11 @@ class ApplicationController < ActionController::Base
       break if current_level.results.size == 0
       from_top.concat current_level.results
       uuids = current_level.results.collect { |x| x.uuid }
+      depth += 1
+      if depth >= 3
+        @too_many_levels = true
+        break
+      end
     end
     @my_wanted_projects = from_top
   end
@@ -855,7 +862,7 @@ class ApplicationController < ActionController::Base
   helper_method :my_wanted_projects_tree
   def my_wanted_projects_tree user, page_size=100
     build_my_wanted_projects_tree user, page_size
-    [@my_wanted_projects_tree, @total_projects]
+    [@my_wanted_projects_tree, @too_many_levels]
   end
 
   def build_my_wanted_projects_tree user, page_size=100
index 03cc9fe9a53f8d5f94fddab28d8654e253318053..f8918e61730aeed5736b6b01e9d8d88b8e7be65c 100644 (file)
@@ -15,8 +15,8 @@
     <% end %>
   </li>
 <% end %>
-<% if my_tree[1] and my_tree[1] > my_tree[0].size %>
+<% if my_tree[1] or my_tree[0].size > 200 %>
 <li role="presentation" class="dropdown-header">
-  Showing your top projects, some projects have been omitted.
+  Not all projects may have been listed.
 </li>
 <% end %>