Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
iv
gitlab-ce
Commits
e6524a91
Commit
e6524a91
authored
Oct 16, 2012
by
Ilya Baryshev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Wiki search
Very basic, using LIKE, and no search snippets.
parent
db3d90cb
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
50 additions
and
2 deletions
+50
-2
app/contexts/search_context.rb
app/contexts/search_context.rb
+3
-1
app/controllers/search_controller.rb
app/controllers/search_controller.rb
+1
-0
app/models/wiki.rb
app/models/wiki.rb
+6
-0
app/views/search/show.html.haml
app/views/search/show.html.haml
+18
-1
features/dashboard/search.feature
features/dashboard/search.feature
+5
-0
features/steps/dashboard/dashboard_search.rb
features/steps/dashboard/dashboard_search.rb
+17
-0
No files found.
app/contexts/search_context.rb
View file @
e6524a91
...
@@ -13,6 +13,7 @@ class SearchContext
...
@@ -13,6 +13,7 @@ class SearchContext
result
[
:projects
]
=
Project
.
where
(
id:
project_ids
).
search
(
query
).
limit
(
10
)
result
[
:projects
]
=
Project
.
where
(
id:
project_ids
).
search
(
query
).
limit
(
10
)
result
[
:merge_requests
]
=
MergeRequest
.
where
(
project_id:
project_ids
).
search
(
query
).
limit
(
10
)
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
[
:issues
]
=
Issue
.
where
(
project_id:
project_ids
).
search
(
query
).
limit
(
10
)
result
[
:wiki_pages
]
=
Wiki
.
where
(
project_id:
project_ids
).
search
(
query
).
limit
(
10
)
result
result
end
end
...
@@ -20,7 +21,8 @@ class SearchContext
...
@@ -20,7 +21,8 @@ class SearchContext
@result
||=
{
@result
||=
{
projects:
[],
projects:
[],
merge_requests:
[],
merge_requests:
[],
issues:
[]
issues:
[],
wiki_pages:
[]
}
}
end
end
end
end
...
...
app/controllers/search_controller.rb
View file @
e6524a91
...
@@ -5,5 +5,6 @@ class SearchController < ApplicationController
...
@@ -5,5 +5,6 @@ class SearchController < ApplicationController
@projects
=
result
[
:projects
]
@projects
=
result
[
:projects
]
@merge_requests
=
result
[
:merge_requests
]
@merge_requests
=
result
[
:merge_requests
]
@issues
=
result
[
:issues
]
@issues
=
result
[
:issues
]
@wiki_pages
=
result
[
:wiki_pages
]
end
end
end
end
app/models/wiki.rb
View file @
e6524a91
...
@@ -15,6 +15,12 @@ class Wiki < ActiveRecord::Base
...
@@ -15,6 +15,12 @@ class Wiki < ActiveRecord::Base
slug
slug
end
end
class
<<
self
def
search
(
query
)
where
(
"title like :query OR content like :query"
,
query:
"%
#{
query
}
%"
)
end
end
protected
protected
def
self
.
regenerate_from
wiki
def
self
.
regenerate_from
wiki
...
...
app/views/search/show.html.haml
View file @
e6524a91
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
%br
%br
%h3
%h3
Search results
Search results
%small
(
#{
@projects
.
count
+
@merge_requests
.
count
+
@issues
.
count
}
)
%small
(
#{
@projects
.
count
+
@merge_requests
.
count
+
@issues
.
count
+
@wiki_pages
.
count
}
)
%hr
%hr
.search_results
.search_results
.row
.row
...
@@ -69,6 +69,23 @@
...
@@ -69,6 +69,23 @@
%tr
%tr
%td
%td
%h4
.nothing_here_message
No Issues
%h4
.nothing_here_message
No Issues
.span6
%table
%thead
%tr
%th
Wiki
%tbody
-
@wiki_pages
.
each
do
|
wiki_page
|
%tr
%td
=
link_to
project_wiki_path
(
wiki_page
.
project
,
wiki_page
)
do
%strong
.term
=
truncate
wiki_page
.
title
,
length:
40
%strong
.right
%span
.label
=
wiki_page
.
project
.
name
-
if
@wiki_pages
.
blank?
%tr
%td
%h4
.nothing_here_message
No wiki pages
:javascript
:javascript
$
(
function
()
{
$
(
function
()
{
$
(
"
.search_results .term
"
).
highlight
(
"
#{
params
[
:search
]
}
"
);
$
(
"
.search_results .term
"
).
highlight
(
"
#{
params
[
:search
]
}
"
);
...
...
features/dashboard/search.feature
View file @
e6524a91
...
@@ -2,8 +2,13 @@ Feature: Dashboard Search
...
@@ -2,8 +2,13 @@ Feature: Dashboard Search
Background
:
Background
:
Given
I sign in as a user
Given
I sign in as a user
And
I own project
"Shop"
And
I own project
"Shop"
And
Project
"Shop"
has wiki page
"Contibuting guide"
And
I visit dashboard search page
And
I visit dashboard search page
Scenario
:
I
should see project I am looking for
Scenario
:
I
should see project I am looking for
Given
I search for
"Sho"
Given
I search for
"Sho"
Then
I should see
"Shop"
project link
Then
I should see
"Shop"
project link
Scenario
:
I
should see wiki page I am looking for
Given
I search for
"Contibuting"
Then
I should see
"Contibuting guide"
wiki link
\ No newline at end of file
features/steps/dashboard/dashboard_search.rb
View file @
e6524a91
...
@@ -15,4 +15,21 @@ class DashboardSearch < Spinach::FeatureSteps
...
@@ -15,4 +15,21 @@ class DashboardSearch < Spinach::FeatureSteps
@project
=
Factory
:project
,
:name
=>
"Shop"
@project
=
Factory
:project
,
:name
=>
"Shop"
@project
.
add_access
(
@user
,
:admin
)
@project
.
add_access
(
@user
,
:admin
)
end
end
Given
'I search for "Contibuting"'
do
fill_in
"dashboard_search"
,
:with
=>
"Contibuting"
click_button
"Search"
end
And
'Project "Shop" has wiki page "Contibuting guide"'
do
@wiki_page
=
Factory
:wiki
,
:project
=>
@project
,
:title
=>
"Contibuting guide"
,
:slug
=>
"contributing"
end
Then
'I should see "Contibuting guide" wiki link'
do
page
.
should
have_link
"Contibuting guide"
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment