summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-10-31 10:57:51 -0700
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-10-31 10:57:51 -0700
commita27e4404dbb553b3916c9f3c3202f41fb85cdffb (patch)
tree5d3915fd4033ad08908b488c69f35248365e1c09 /app
parent9ab4539a629e8ab31fc775c71662a7cf4f2384d5 (diff)
parent0f87ae3be5d7d1bc0a3728f43ae0465005b68b92 (diff)
downloadgitlab-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.rb10
-rw-r--r--app/models/project.rb2
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)