diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-08-27 09:57:50 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-08-27 09:57:50 +0300 |
commit | ede08dbdd787fdd3a30b62dc0e7e2c796bb6d43a (patch) | |
tree | 047eef633ed97c3bf8fa7066898c1d42e3bd926f /app/controllers/search_controller.rb | |
parent | 9e5bc432630d04867cea9f38383d1a4fc49b62cd (diff) | |
download | gitlab-ce-ede08dbdd787fdd3a30b62dc0e7e2c796bb6d43a.tar.gz |
Implement search page with filtering of results and pagination
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/controllers/search_controller.rb')
-rw-r--r-- | app/controllers/search_controller.rb | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 8df84e9884a..a58b24de643 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -4,14 +4,25 @@ class SearchController < ApplicationController def show @project = Project.find_by(id: params[:project_id]) if params[:project_id].present? @group = Group.find_by(id: params[:group_id]) if params[:group_id].present? + @scope = params[:scope] - if @project - return access_denied! unless can?(current_user, :download_code, @project) + @search_results = if @project + return access_denied! unless can?(current_user, :download_code, @project) - @search_results = Search::ProjectService.new(@project, current_user, params).execute - else - @search_results = Search::GlobalService.new(current_user, params).execute - end + unless %w(blobs notes issues merge_requests).include?(@scope) + @scope = 'blobs' + end + + Search::ProjectService.new(@project, current_user, params).execute + else + unless %w(projects issues merge_requests).include?(@scope) + @scope = 'projects' + end + + Search::GlobalService.new(current_user, params).execute + end + + @objects = @search_results.objects(@scope, params[:page]) end def autocomplete |