diff options
Diffstat (limited to 'app/finders/move_to_project_finder.rb')
-rw-r--r-- | app/finders/move_to_project_finder.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/app/finders/move_to_project_finder.rb b/app/finders/move_to_project_finder.rb new file mode 100644 index 00000000000..79eb45568be --- /dev/null +++ b/app/finders/move_to_project_finder.rb @@ -0,0 +1,20 @@ +class MoveToProjectFinder + PAGE_SIZE = 50 + + def initialize(user) + @user = user + end + + def execute(from_project, search: nil, offset_id: nil) + projects = @user.projects_where_can_admin_issues + projects = projects.search(search) if search.present? + projects = projects.excluding_project(from_project) + + # infinite scroll using offset + projects = projects.where('projects.id < ?', offset_id) if offset_id.present? + projects = projects.limit(PAGE_SIZE) + + # to ask for Project#name_with_namespace + projects.includes(namespace: :owner) + end +end |