Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-05-09 12:27:14 +0400
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-05-09 12:47:09 +0400
commitf1126f494cf4fb2b27c43ac3d3bd69fea9c4afe4 (patch)
treee7510ec160b5e7d6577c0371bb01443da339222e /app
parent9fdcdb774ff496f4f1c8bf61290d1d70cbd5c3ed (diff)
Move files search to gitlab_git
Diffstat (limited to 'app')
-rw-r--r--app/contexts/search_context.rb18
-rw-r--r--app/controllers/search_controller.rb3
-rw-r--r--app/models/project.rb12
-rw-r--r--app/views/layouts/_search.html.haml13
-rw-r--r--app/views/search/_result.html.haml30
-rw-r--r--app/views/search/show.html.haml1
6 files changed, 38 insertions, 39 deletions
diff --git a/app/contexts/search_context.rb b/app/contexts/search_context.rb
index 854c369ea4a..938429df629 100644
--- a/app/contexts/search_context.rb
+++ b/app/contexts/search_context.rb
@@ -12,12 +12,17 @@ class SearchContext
projects = Project.where(id: project_ids)
result[:projects] = projects.search(query).limit(10)
- if projects.length == 1
- result[:snippets] = projects.first.files(query, params[:branch_ref])
+
+ # Search inside singe project
+ result[:project] = project = projects.first if projects.length == 1
+
+ if params[:search_code].present?
+ result[:blobs] = project.repository.search_files(query, params[:repository_ref]) unless project.empty_repo?
+ else
+ result[:merge_requests] = MergeRequest.where(project_id: project_ids).search(query).limit(10)
+ result[:issues] = Issue.where(project_id: project_ids).search(query).limit(10)
+ result[:wiki_pages] = []
end
- result[:merge_requests] = MergeRequest.where(project_id: project_ids).search(query).limit(10)
- result[:issues] = Issue.where(project_id: project_ids).search(query).limit(10)
- result[:wiki_pages] = []
result
end
@@ -27,8 +32,7 @@ class SearchContext
merge_requests: [],
issues: [],
wiki_pages: [],
- snippets: []
+ blobs: []
}
end
end
-
diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb
index f369ff66dbf..73e46c5021d 100644
--- a/app/controllers/search_controller.rb
+++ b/app/controllers/search_controller.rb
@@ -15,9 +15,10 @@ class SearchController < ApplicationController
result = SearchContext.new(project_ids, params).execute
@projects = result[:projects]
+ @project = result[:project]
@merge_requests = result[:merge_requests]
@issues = result[:issues]
@wiki_pages = result[:wiki_pages]
- @snippets = result[:snippets]
+ @blobs = result[:blobs]
end
end
diff --git a/app/models/project.rb b/app/models/project.rb
index 6ad3763b9af..bd33e3a4c13 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -410,16 +410,4 @@ class Project < ActiveRecord::Base
def forked?
!(forked_project_link.nil? || forked_project_link.forked_from_project.nil?)
end
-
- def files(query, treeish)
- snippets = []
- tree = treeish.present? ? treeish : default_branch
- if repository && !tree.nil?
- greps = repository.repo.grep(query, 3, tree)
- greps.each do |g|
- snippets << Gitlab::BlobSnippet.new(self, tree, g.content, g.startline, g.filename)
- end
- end
- snippets
- end
end
diff --git a/app/views/layouts/_search.html.haml b/app/views/layouts/_search.html.haml
index 2470314f6fc..b7f89e3fe3a 100644
--- a/app/views/layouts/_search.html.haml
+++ b/app/views/layouts/_search.html.haml
@@ -3,13 +3,6 @@
= text_field_tag "search", nil, placeholder: "Search", class: "search-input"
= hidden_field_tag :group_id, @group.try(:id)
= hidden_field_tag :project_id, @project.try(:id)
- - if @ref
- - @branch_ref = @ref
- - else
- - @branch_ref = @project.try(:default_branch)
- - if @branch_ref.blank?
- - @branch_ref = 'master'
- = hidden_field_tag :branch_ref, @branch_ref
- - if ENV['RAILS_ENV'] == 'test'
- = submit_tag 'Go'
- .search-autocomplete-json.hide{:'data-autocomplete-opts' => search_autocomplete_source } \ No newline at end of file
+ = hidden_field_tag :repository_ref, @ref
+ = submit_tag 'Go' if ENV['RAILS_ENV'] == 'test'
+ .search-autocomplete-json.hide{:'data-autocomplete-opts' => search_autocomplete_source }
diff --git a/app/views/search/_result.html.haml b/app/views/search/_result.html.haml
index 12ead3bf67c..9824ea1dbc8 100644
--- a/app/views/search/_result.html.haml
+++ b/app/views/search/_result.html.haml
@@ -1,9 +1,20 @@
%fieldset
%legend
Search results
- %span.cgray (#{@projects.count + @merge_requests.count + @issues.count + @wiki_pages.count})
+ %span.cgray (#{@projects.count + @merge_requests.count + @issues.count + @wiki_pages.count + @blobs.count})
+
+- if @project
+ %ul.nav.nav-pills
+ %li{class: ("active" if params[:search_code].present?)}
+ = link_to search_path(params.merge(search_code: true)) do
+ Repository Code
+ %li{class: ("active" if params[:search_code].blank?)}
+ = link_to search_path(params.merge(search_code: nil)) do
+ Everything else
+
+
.search_results
- %ul.well-list
+ %ul.bordered-list
- @projects.each do |project|
%li
project:
@@ -32,16 +43,17 @@
%strong.term
= truncate wiki_page.title, length: 50
%span.light (#{wiki_page.project.name_with_namespace})
- - @snippets.each do |snippet|
+ - @blobs.each do |file|
%li
- code:
- = link_to project_blob_path(snippet.project, tree_join(snippet.tree, snippet.filename), :anchor => "L" + snippet.startline.to_s) do
- %strong.term
- = snippet.filename
.file_holder
- .file_content.code
+ .file_title
+ = link_to project_blob_path(@project, tree_join(file.ref, file.filename), :anchor => "L" + file.startline.to_s) do
+ %i.icon-file
+ %strong
+ = file.filename
+ .file_content.code.term
%div{class: user_color_scheme_class}
- = raw snippet.colorize( formatter: :gitlab, options: { first_line_number: snippet.startline } )
+ = raw file.colorize( formatter: :gitlab, options: { first_line_number: file.startline } )
:javascript
$(function() {
diff --git a/app/views/search/show.html.haml b/app/views/search/show.html.haml
index 5914c22df6e..c057459a746 100644
--- a/app/views/search/show.html.haml
+++ b/app/views/search/show.html.haml
@@ -4,6 +4,7 @@
%span Looking for
.input
= search_field_tag :search, params[:search], placeholder: "issue 143", class: "input-xxlarge search-text-input", id: "dashboard_search"
+ = hidden_field_tag :search_code, params[:search_code]
= submit_tag 'Search', class: "btn btn-primary wide"
.clearfix
.row