BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
ac8247b4
Commit
ac8247b4
authored
Jan 25, 2013
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improved search. added filters
parent
f6c482c0
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
104 additions
and
93 deletions
+104
-93
common.scss
app/assets/stylesheets/common.scss
+13
-1
search_controller.rb
app/controllers/search_controller.rb
+13
-1
application_helper.rb
app/helpers/application_helper.rb
+20
-20
_search.html.haml
app/views/layouts/_search.html.haml
+2
-0
_filter.html.haml
app/views/search/_filter.html.haml
+24
-0
_result.html.haml
app/views/search/_result.html.haml
+23
-68
show.html.haml
app/views/search/show.html.haml
+9
-3
No files found.
app/assets/stylesheets/common.scss
View file @
ac8247b4
...
...
@@ -277,8 +277,20 @@ p.time {
}
}
.search-holder
{
label
,
input
{
height
:
30px
;
padding
:
0
;
font-size
:
14px
;
}
label
{
line-height
:
30px
;
color
:
#666
;
}
}
.highlight_word
{
b
ackground
:
#EEDC94
;
b
order-bottom
:
2px
solid
#F90
;
}
.status_info
{
...
...
app/controllers/search_controller.rb
View file @
ac8247b4
class
SearchController
<
ApplicationController
def
show
result
=
SearchContext
.
new
(
current_user
.
authorized_projects
.
map
(
&
:id
),
params
).
execute
project_id
=
params
[
:project_id
]
group_id
=
params
[
:group_id
]
project_ids
=
current_user
.
authorized_projects
.
map
(
&
:id
)
if
group_id
.
present?
group_project_ids
=
Group
.
find
(
group_id
).
projects
.
map
(
&
:id
)
project_ids
.
select!
{
|
id
|
group_project_ids
.
include?
(
id
)}
elsif
project_id
.
present?
project_ids
.
select!
{
|
id
|
id
==
project_id
.
to_i
}
end
result
=
SearchContext
.
new
(
project_ids
,
params
).
execute
@projects
=
result
[
:projects
]
@merge_requests
=
result
[
:merge_requests
]
...
...
app/helpers/application_helper.rb
View file @
ac8247b4
...
...
@@ -72,8 +72,8 @@ module ApplicationHelper
end
def
search_autocomplete_source
projects
=
current_user
.
authorized_projects
.
map
{
|
p
|
{
label:
p
.
name_with_namespace
,
url:
project_path
(
p
)
}
}
groups
=
current_user
.
authorized_groups
.
map
{
|
group
|
{
label:
"
<group>
#{
group
.
name
}
"
,
url:
group_path
(
group
)
}
}
projects
=
current_user
.
authorized_projects
.
map
{
|
p
|
{
label:
"project:
#{
p
.
name_with_namespace
}
"
,
url:
project_path
(
p
)
}
}
groups
=
current_user
.
authorized_groups
.
map
{
|
group
|
{
label:
"
group:
#{
group
.
name
}
"
,
url:
group_path
(
group
)
}
}
default_nav
=
[
{
label:
"My Profile"
,
url:
profile_path
},
...
...
@@ -83,29 +83,29 @@ module ApplicationHelper
]
help_nav
=
[
{
label:
"API Help"
,
url:
help_api_path
},
{
label:
"Markdown Help"
,
url:
help_markdown_path
},
{
label:
"Permissions Help"
,
url:
help_permissions_path
},
{
label:
"Public Access Help"
,
url:
help_public_access_path
},
{
label:
"Rake Tasks Help"
,
url:
help_raketasks_path
},
{
label:
"SSH Keys Help"
,
url:
help_ssh_path
},
{
label:
"System Hooks Help"
,
url:
help_system_hooks_path
},
{
label:
"Web Hooks Help"
,
url:
help_web_hooks_path
},
{
label:
"Workflow Help"
,
url:
help_workflow_path
},
{
label:
"
help:
API Help"
,
url:
help_api_path
},
{
label:
"
help:
Markdown Help"
,
url:
help_markdown_path
},
{
label:
"
help:
Permissions Help"
,
url:
help_permissions_path
},
{
label:
"
help:
Public Access Help"
,
url:
help_public_access_path
},
{
label:
"
help:
Rake Tasks Help"
,
url:
help_raketasks_path
},
{
label:
"
help:
SSH Keys Help"
,
url:
help_ssh_path
},
{
label:
"
help:
System Hooks Help"
,
url:
help_system_hooks_path
},
{
label:
"
help:
Web Hooks Help"
,
url:
help_web_hooks_path
},
{
label:
"
help:
Workflow Help"
,
url:
help_workflow_path
},
]
project_nav
=
[]
if
@project
&&
@project
.
repository
&&
@project
.
repository
.
root_ref
project_nav
=
[
{
label:
"
#{
@project
.
name
}
Issues"
,
url:
project_issues_path
(
@project
)
},
{
label:
"
#{
@project
.
name
}
Commits"
,
url:
project_commits_path
(
@project
,
@ref
||
@project
.
repository
.
root_ref
)
},
{
label:
"
#{
@project
.
name
}
Merge Requests"
,
url:
project_merge_requests_path
(
@project
)
},
{
label:
"
#{
@project
.
name
}
Milestones"
,
url:
project_milestones_path
(
@project
)
},
{
label:
"
#{
@project
.
name
}
Snippets"
,
url:
project_snippets_path
(
@project
)
},
{
label:
"
#{
@project
.
name
}
Team"
,
url:
project_team_index_path
(
@project
)
},
{
label:
"
#{
@project
.
name
}
Tree"
,
url:
project_tree_path
(
@project
,
@ref
||
@project
.
repository
.
root_ref
)
},
{
label:
"
#{
@project
.
name
}
Wall"
,
url:
wall_project_path
(
@project
)
},
{
label:
"
#{
@project
.
name
}
Wiki"
,
url:
project_wikis_path
(
@project
)
},
{
label:
"
#{
@project
.
name
_with_namespace
}
-
Issues"
,
url:
project_issues_path
(
@project
)
},
{
label:
"
#{
@project
.
name
_with_namespace
}
-
Commits"
,
url:
project_commits_path
(
@project
,
@ref
||
@project
.
repository
.
root_ref
)
},
{
label:
"
#{
@project
.
name
_with_namespace
}
-
Merge Requests"
,
url:
project_merge_requests_path
(
@project
)
},
{
label:
"
#{
@project
.
name
_with_namespace
}
-
Milestones"
,
url:
project_milestones_path
(
@project
)
},
{
label:
"
#{
@project
.
name
_with_namespace
}
-
Snippets"
,
url:
project_snippets_path
(
@project
)
},
{
label:
"
#{
@project
.
name
_with_namespace
}
-
Team"
,
url:
project_team_index_path
(
@project
)
},
{
label:
"
#{
@project
.
name
_with_namespace
}
-
Tree"
,
url:
project_tree_path
(
@project
,
@ref
||
@project
.
repository
.
root_ref
)
},
{
label:
"
#{
@project
.
name
_with_namespace
}
-
Wall"
,
url:
wall_project_path
(
@project
)
},
{
label:
"
#{
@project
.
name
_with_namespace
}
-
Wiki"
,
url:
project_wikis_path
(
@project
)
},
]
end
...
...
app/views/layouts/_search.html.haml
View file @
ac8247b4
.search
=
form_tag
search_path
,
method: :get
,
class:
'navbar-form pull-left'
do
|
f
|
=
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
)
:javascript
$
(
function
(){
...
...
app/views/search/_filter.html.haml
0 → 100644
View file @
ac8247b4
%fieldset
%legend
Groups:
%ul
.nav.nav-pills.nav-stacked
%li
{
class:
(
"active"
if
params
[
:group_id
].
blank?
)}
=
link_to
search_path
(
group_id:
nil
,
search:
params
[
:search
])
do
Any
-
current_user
.
authorized_groups
.
each
do
|
group
|
%li
{
class:
(
"active"
if
params
[
:group_id
]
==
group
.
id
.
to_s
)}
=
link_to
search_path
(
group_id:
group
.
id
,
search:
params
[
:search
])
do
=
group
.
name
%fieldset
%legend
Projects:
%ul
.nav.nav-pills.nav-stacked
%li
{
class:
(
"active"
if
params
[
:project_id
].
blank?
)}
=
link_to
search_path
(
project_id:
nil
,
search:
params
[
:search
])
do
Any
-
current_user
.
authorized_projects
.
each
do
|
project
|
%li
{
class:
(
"active"
if
params
[
:project_id
]
==
project
.
id
.
to_s
)}
=
link_to
search_path
(
project_id:
project
.
id
,
search:
params
[
:search
])
do
=
project
.
name_with_namespace
=
hidden_field_tag
:group_id
,
params
[
:group_id
]
=
hidden_field_tag
:project_id
,
params
[
:project_id
]
app/views/search/_result.html.haml
View file @
ac8247b4
%
br
%h3
.page_title
%
fieldset
%legend
Search results
%span
.cgray
(
#{
@projects
.
count
+
@merge_requests
.
count
+
@issues
.
count
+
@wiki_pages
.
count
}
)
%hr
.search_results
.row
.span6
%table
%thead
%tr
%th
Projects
%tbody
%ul
.well-list
-
@projects
.
each
do
|
project
|
%tr
%td
%li
project:
=
link_to
project
do
%strong
.term
=
project
.
name_with_namespace
%small
.cgray
last activity at
=
project
.
last_activity_date
.
stamp
(
"Aug 25, 2011"
)
-
if
@projects
.
blank?
%tr
%td
%h4
.nothing_here_message
No Projects
%br
%table
%thead
%tr
%th
Merge Requests
%tbody
-
@merge_requests
.
each
do
|
merge_request
|
%tr
%td
%li
merge request:
=
link_to
[
merge_request
.
project
,
merge_request
]
do
%span
.badge.badge-info
##{merge_request.id}
–
%strong
.term
=
truncate
merge_request
.
title
,
length:
50
%strong
.right
%span
.label
=
merge_request
.
project
.
name
-
if
@merge_requests
.
blank?
%tr
%td
%h4
.nothing_here_message
No Merge Requests
.span6
%table
%thead
%tr
%th
Issues
%tbody
%span
##{merge_request.id}
%strong
.term
=
truncate
merge_request
.
title
,
length:
50
%span
.light
(
#{
merge_request
.
project
.
name_with_namespace
}
)
-
@issues
.
each
do
|
issue
|
%tr
%td
%li
issue:
=
link_to
[
issue
.
project
,
issue
]
do
%span
.badge.badge-info
##{issue.id}
–
%strong
.term
=
truncate
issue
.
title
,
length:
40
%strong
.right
%span
.label
=
issue
.
project
.
name
-
if
@issues
.
blank?
%tr
%td
%h4
.nothing_here_message
No Issues
.span6
%table
%thead
%tr
%th
Wiki
%tbody
%span
##{issue.id}
%strong
.term
=
truncate
issue
.
title
,
length:
50
%span
.light
(
#{
issue
.
project
.
name_with_namespace
}
)
-
@wiki_pages
.
each
do
|
wiki_page
|
%tr
%td
%li
wiki:
=
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
%strong
.term
=
truncate
wiki_page
.
title
,
length:
50
%span
.light
(
#{
wiki_page
.
project
.
name_with_namespace
}
)
:javascript
$
(
function
()
{
$
(
".search_results .term"
).
highlight
(
"
#{
escape_javascript
(
params
[
:search
])
}
"
);
...
...
app/views/search/show.html.haml
View file @
ac8247b4
=
form_tag
search_path
,
method: :get
,
class:
'form-inline'
do
|
f
|
.
padded
.
search-holder
=
label_tag
:search
do
%s
trong
Looking for
%s
pan
Looking for
.input
=
search_field_tag
:search
,
params
[
:search
],
placeholder:
"issue 143"
,
class:
"input-xxlarge search-text-input"
,
id:
"dashboard_search"
=
submit_tag
'Search'
,
class:
"btn primary wide"
-
if
params
[
:search
].
present?
.clearfix
.row
.span3
=
render
'filter'
,
f:
f
.span9
.results
-
if
params
[
:search
].
present?
=
render
'search/result'
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