mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-17 08:36:06 +10:00
Merge pull request #7385 from Razer6/fix_search_empty_project
Fix 500 on searching on empty project, restyle search page
This commit is contained in:
@@ -341,3 +341,18 @@ table {
|
||||
.footer-links a {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.search_box {
|
||||
position: relative;
|
||||
padding: 30px;
|
||||
text-align: center;
|
||||
background-color: #F9F9F9;
|
||||
border: 1px solid #DDDDDD;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.search_glyph {
|
||||
color: #555;
|
||||
font-size: 42px;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,13 @@ module Search
|
||||
return result unless query.present?
|
||||
|
||||
if params[:search_code].present?
|
||||
blobs = project.repository.search_files(query, params[:repository_ref]) unless project.empty_repo?
|
||||
if !@project.empty_repo?
|
||||
blobs = project.repository.search_files(query,
|
||||
params[:repository_ref])
|
||||
else
|
||||
blobs = Array.new
|
||||
end
|
||||
|
||||
blobs = Kaminari.paginate_array(blobs).page(params[:page]).per(20)
|
||||
result[:blobs] = blobs
|
||||
result[:total_results] = blobs.total_count
|
||||
|
||||
@@ -9,10 +9,16 @@
|
||||
.search_results
|
||||
- if params[:search_code].present?
|
||||
.blob-results
|
||||
= render partial: "search/results/blob", collection: @search_results[:blobs]
|
||||
= paginate @search_results[:blobs], theme: 'gitlab'
|
||||
- if !@search_results[:blobs].empty?
|
||||
= render partial: "search/results/blob", collection: @search_results[:blobs]
|
||||
= paginate @search_results[:blobs], theme: 'gitlab'
|
||||
- else
|
||||
= render partial: "search/results/empty", :locals => { message: "We couldn't find any matching code" }
|
||||
- else
|
||||
%ul.bordered-list
|
||||
= render partial: "search/results/merge_request", collection: @search_results[:merge_requests]
|
||||
= render partial: "search/results/issue", collection: @search_results[:issues]
|
||||
= render partial: "search/results/note", collection: @search_results[:notes]
|
||||
- if (@search_results[:merge_requests] || @search_results[:issues] || @search_results[:notes]).length > 0
|
||||
%ul.bordered-list
|
||||
= render partial: "search/results/merge_request", collection: @search_results[:merge_requests]
|
||||
= render partial: "search/results/issue", collection: @search_results[:issues]
|
||||
= render partial: "search/results/note", collection: @search_results[:notes]
|
||||
- else
|
||||
= render partial: "search/results/empty", :locals => { message: "We couldn't find any issues, merge requests or notes" }
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
.search_box
|
||||
.search_glyph
|
||||
%span.icon-search
|
||||
%h4 #{message}
|
||||
@@ -1,9 +1,15 @@
|
||||
Feature: Project Search code
|
||||
Background:
|
||||
Given I sign in as a user
|
||||
And I own project "Shop"
|
||||
Given I visit project source page
|
||||
|
||||
Scenario: Search for term "coffee"
|
||||
Given I own project "Shop"
|
||||
And I visit project source page
|
||||
When I search for term "coffee"
|
||||
Then I should see files from repository containing "coffee"
|
||||
|
||||
Scenario: Search on empty project
|
||||
Given I own an empty project
|
||||
And I visit my project's home page
|
||||
When I search for term "coffee"
|
||||
Then I should see empty result
|
||||
|
||||
@@ -3,14 +3,18 @@ class ProjectSearchCode < Spinach::FeatureSteps
|
||||
include SharedProject
|
||||
include SharedPaths
|
||||
|
||||
When 'I search for term "coffee"' do
|
||||
step 'I search for term "coffee"' do
|
||||
fill_in "search", with: "coffee"
|
||||
click_button "Go"
|
||||
click_link 'Repository Code'
|
||||
end
|
||||
|
||||
Then 'I should see files from repository containing "coffee"' do
|
||||
page.should have_content "coffee"
|
||||
page.should have_content " CONTRIBUTING.md"
|
||||
step 'I should see files from repository containing "coffee"' do
|
||||
page.should have_content 'coffee'
|
||||
page.should have_content 'CONTRIBUTING.md'
|
||||
end
|
||||
|
||||
step 'I should see empty result' do
|
||||
page.should have_content "We couldn't find any matching code"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -21,6 +21,13 @@ module SharedProject
|
||||
@project.team << [@user, :master]
|
||||
end
|
||||
|
||||
# Create an empty project without caring about the name
|
||||
And 'I own an empty project' do
|
||||
@project = create(:empty_project,
|
||||
name: 'Empty Project', namespace: @user.namespace)
|
||||
@project.team << [@user, :master]
|
||||
end
|
||||
|
||||
And 'project "Shop" has push event' do
|
||||
@project = Project.find_by(name: "Shop")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user