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
e0f30c60
Unverified
Commit
e0f30c60
authored
Dec 05, 2014
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add author filter for issues & merge requests pages
Signed-off-by:
Dmitriy Zaporozhets
<
dmitriy.zaporozhets@gmail.com
>
parent
ed2eaf55
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
62 additions
and
23 deletions
+62
-23
application_controller.rb
app/controllers/projects/application_controller.rb
+27
-0
issues_controller.rb
app/controllers/projects/issues_controller.rb
+2
-14
merge_requests_controller.rb
app/controllers/projects/merge_requests_controller.rb
+1
-9
issuable_finder.rb
app/finders/issuable_finder.rb
+9
-0
_issuable_filter.html.haml
app/views/projects/_issuable_filter.html.haml
+23
-0
No files found.
app/controllers/projects/application_controller.rb
View file @
e0f30c60
...
...
@@ -29,4 +29,31 @@ class Projects::ApplicationController < ApplicationController
redirect_to
project_tree_path
(
@project
,
@ref
),
notice:
"This action is not allowed unless you are on top of a branch"
end
end
def
set_filter_variables
(
collection
)
params
[
:sort
]
||=
'newest'
params
[
:scope
]
=
'all'
if
params
[
:scope
].
blank?
params
[
:state
]
=
'opened'
if
params
[
:state
].
blank?
@sort
=
params
[
:sort
].
humanize
assignee_id
=
params
[
:assignee_id
]
author_id
=
params
[
:author_id
]
milestone_id
=
params
[
:milestone_id
]
if
assignee_id
.
present?
&&
!
assignee_id
.
to_i
.
zero?
@assignee
=
@project
.
team
.
find
(
assignee_id
)
end
if
author_id
.
present?
&&
!
author_id
.
to_i
.
zero?
@author
=
@project
.
team
.
find
(
assignee_id
)
end
if
milestone_id
.
present?
&&
!
milestone_id
.
to_i
.
zero?
@milestone
=
@project
.
milestones
.
find
(
milestone_id
)
end
@assignees
=
User
.
where
(
id:
collection
.
pluck
(
:assignee_id
))
@authors
=
User
.
where
(
id:
collection
.
pluck
(
:author_id
))
end
end
app/controllers/projects/issues_controller.rb
View file @
e0f30c60
...
...
@@ -18,18 +18,12 @@ class Projects::IssuesController < Projects::ApplicationController
def
index
terms
=
params
[
'issue_search'
]
set_filter_variables
(
@project
.
issues
)
@issues
=
issues_filtered
@issues
=
IssuesFinder
.
new
.
execute
(
current_user
,
params
.
merge
(
project_id:
@project
.
id
))
@issues
=
@issues
.
full_search
(
terms
)
if
terms
.
present?
@issues
=
@issues
.
page
(
params
[
:page
]).
per
(
20
)
assignee_id
,
milestone_id
=
params
[
:assignee_id
],
params
[
:milestone_id
]
@assignee
=
@project
.
team
.
find
(
assignee_id
)
if
assignee_id
.
present?
&&
!
assignee_id
.
to_i
.
zero?
@milestone
=
@project
.
milestones
.
find
(
milestone_id
)
if
milestone_id
.
present?
&&
!
milestone_id
.
to_i
.
zero?
sort_param
=
params
[
:sort
]
||
'newest'
@sort
=
sort_param
.
humanize
unless
sort_param
.
empty?
@assignees
=
User
.
where
(
id:
@project
.
issues
.
pluck
(
:assignee_id
)).
active
respond_to
do
|
format
|
format
.
html
format
.
atom
{
render
layout:
false
}
...
...
@@ -127,12 +121,6 @@ class Projects::IssuesController < Projects::ApplicationController
return
render_404
unless
@project
.
issues_enabled
end
def
issues_filtered
params
[
:scope
]
=
'all'
if
params
[
:scope
].
blank?
params
[
:state
]
=
'opened'
if
params
[
:state
].
blank?
@issues
=
IssuesFinder
.
new
.
execute
(
current_user
,
params
.
merge
(
project_id:
@project
.
id
))
end
# Since iids are implemented only in 6.1
# user may navigate to issue page using old global ids.
#
...
...
app/controllers/projects/merge_requests_controller.rb
View file @
e0f30c60
...
...
@@ -17,18 +17,10 @@ class Projects::MergeRequestsController < Projects::ApplicationController
before_filter
:authorize_modify_merge_request!
,
only:
[
:close
,
:edit
,
:update
,
:sort
]
def
index
params
[
:sort
]
||=
'newest'
params
[
:scope
]
=
'all'
if
params
[
:scope
].
blank?
params
[
:state
]
=
'opened'
if
params
[
:state
].
blank?
set_filter_variables
(
@project
.
merge_requests
)
@merge_requests
=
MergeRequestsFinder
.
new
.
execute
(
current_user
,
params
.
merge
(
project_id:
@project
.
id
))
@merge_requests
=
@merge_requests
.
page
(
params
[
:page
]).
per
(
20
)
@sort
=
params
[
:sort
].
humanize
assignee_id
,
milestone_id
=
params
[
:assignee_id
],
params
[
:milestone_id
]
@assignee
=
@project
.
team
.
find
(
assignee_id
)
if
assignee_id
.
present?
&&
!
assignee_id
.
to_i
.
zero?
@milestone
=
@project
.
milestones
.
find
(
milestone_id
)
if
milestone_id
.
present?
&&
!
milestone_id
.
to_i
.
zero?
@assignees
=
User
.
where
(
id:
@project
.
merge_requests
.
pluck
(
:assignee_id
))
end
def
show
...
...
app/finders/issuable_finder.rb
View file @
e0f30c60
...
...
@@ -33,6 +33,7 @@ class IssuableFinder
items
=
by_search
(
items
)
items
=
by_milestone
(
items
)
items
=
by_assignee
(
items
)
items
=
by_author
(
items
)
items
=
by_label
(
items
)
items
=
sort
(
items
)
end
...
...
@@ -125,6 +126,14 @@ class IssuableFinder
items
end
def
by_author
(
items
)
if
params
[
:author_id
].
present?
items
=
items
.
where
(
author_id:
(
params
[
:author_id
]
==
'0'
?
nil
:
params
[
:author_id
]))
end
items
end
def
by_label
(
items
)
if
params
[
:label_name
].
present?
label_names
=
params
[
:label_name
].
split
(
","
)
...
...
app/views/projects/_issuable_filter.html.haml
View file @
e0f30c60
...
...
@@ -24,6 +24,29 @@
.dropdown.inline.prepend-left-10
%a
.dropdown-toggle.btn
{
href:
'#'
,
"data-toggle"
=>
"dropdown"
}
%i
.fa.fa-user
%span
.light
author:
-
if
@author
.
present?
%strong
=
@author
.
name
-
elsif
params
[
:author_id
]
==
"0"
Unassigned
-
else
Any
%b
.caret
%ul
.dropdown-menu
%li
=
link_to
project_filter_path
(
author_id:
nil
)
do
Any
=
link_to
project_filter_path
(
author_id:
0
)
do
Unassigned
-
@authors
.
sort_by
(
&
:name
).
each
do
|
user
|
%li
=
link_to
project_filter_path
(
author_id:
user
.
id
)
do
=
image_tag
avatar_icon
(
user
.
email
),
class:
"avatar s16"
,
alt:
''
=
user
.
name
.dropdown.inline.prepend-left-10
%a
.dropdown-toggle.btn
{
href:
'#'
,
"data-toggle"
=>
"dropdown"
}
%i
.fa.fa-clock-o
%span
.light
milestone:
-
if
@milestone
.
present?
...
...
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