diff options
| author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-10-31 10:57:51 -0700 |
|---|---|---|
| committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-10-31 10:57:51 -0700 |
| commit | a27e4404dbb553b3916c9f3c3202f41fb85cdffb (patch) | |
| tree | 5d3915fd4033ad08908b488c69f35248365e1c09 /app | |
| parent | 9ab4539a629e8ab31fc775c71662a7cf4f2384d5 (diff) | |
| parent | 0f87ae3be5d7d1bc0a3728f43ae0465005b68b92 (diff) | |
| download | gitlab-ce-a27e4404dbb553b3916c9f3c3202f41fb85cdffb.tar.gz | |
Merge pull request #5435 from karlhungus/feature_search_namespace_name_and_public
Allow searching by namespace name, include public projects
Diffstat (limited to 'app')
| -rw-r--r-- | app/contexts/search_context.rb | 10 | ||||
| -rw-r--r-- | app/models/project.rb | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/app/contexts/search_context.rb b/app/contexts/search_context.rb index c07fdfe4c39..2f9438f6bb4 100644 --- a/app/contexts/search_context.rb +++ b/app/contexts/search_context.rb @@ -10,11 +10,14 @@ class SearchContext query = Shellwords.shellescape(query) if query.present? return result unless query.present? - - projects = Project.where(id: project_ids) - result[:projects] = projects.search(query).limit(20) + result[:projects] = Project.where("projects.id in (?) OR projects.public = true", project_ids).search(query).limit(20) # Search inside single project + single_project_search(Project.where(id: project_ids), query) + result + end + + def single_project_search(projects, query) project = projects.first if projects.length == 1 if params[:search_code].present? @@ -24,7 +27,6 @@ class SearchContext result[:issues] = Issue.where(project_id: project_ids).search(query).order('updated_at DESC').limit(20) result[:wiki_pages] = [] end - result end def result diff --git a/app/models/project.rb b/app/models/project.rb index d2dcf26ac69..6b8e54d5b22 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -122,7 +122,7 @@ class Project < ActiveRecord::Base end def search query - where("projects.name LIKE :query OR projects.path LIKE :query", query: "%#{query}%") + joins(:namespace).where("projects.name LIKE :query OR projects.path LIKE :query OR namespaces.name LIKE :query", query: "%#{query}%") end def find_with_namespace(id) |
