diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-05-09 11:27:14 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-05-09 11:47:09 +0300 |
commit | f1126f494cf4fb2b27c43ac3d3bd69fea9c4afe4 (patch) | |
tree | e7510ec160b5e7d6577c0371bb01443da339222e /app | |
parent | 9fdcdb774ff496f4f1c8bf61290d1d70cbd5c3ed (diff) | |
download | gitlab-ce-f1126f494cf4fb2b27c43ac3d3bd69fea9c4afe4.tar.gz |
Move files search to gitlab_git
Diffstat (limited to 'app')
-rw-r--r-- | app/contexts/search_context.rb | 18 | ||||
-rw-r--r-- | app/controllers/search_controller.rb | 3 | ||||
-rw-r--r-- | app/models/project.rb | 12 | ||||
-rw-r--r-- | app/views/layouts/_search.html.haml | 13 | ||||
-rw-r--r-- | app/views/search/_result.html.haml | 30 | ||||
-rw-r--r-- | app/views/search/show.html.haml | 1 |
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 |