Feature #8160 » Add_filter_value_of_watcher_v2.patch
| app/models/issue_query.rb | ||
|---|---|---|
| 148 | 148 | |
| 149 | 149 |
if User.current.logged? |
| 150 | 150 |
add_available_filter "watcher_id", |
| 151 |
:type => :list, :values => [["<< #{l(:label_me)} >>", "me"]]
|
|
| 151 |
:type => :list, :values => lambda { watcher_values }
|
|
| 152 | 152 |
end |
| 153 | 153 | |
| 154 | 154 |
add_available_filter("updated_by",
|
| app/models/query.rb | ||
|---|---|---|
| 564 | 564 |
statuses.collect{|s| [s.name, s.id.to_s]}
|
| 565 | 565 |
end |
| 566 | 566 | |
| 567 |
def watcher_values |
|
| 568 |
watcher_values = [["<< #{l(:label_me)} >>", "me"]]
|
|
| 569 |
watcher_values += users.sort_by(&:status).collect{|s| [s.name, s.id.to_s, l("status_#{User::LABEL_BY_STATUS[s.status]}")] } if User.current.allowed_to?(:view_issue_watchers, self.project)
|
|
| 570 |
watcher_values |
|
| 571 |
end |
|
| 572 | ||
| 567 | 573 |
# Returns a scope of issue custom fields that are available as columns or filters |
| 568 | 574 |
def issue_custom_fields |
| 569 | 575 |
if project |
| test/functional/queries_controller_test.rb | ||
|---|---|---|
| 685 | 685 |
assert_include ["Dave Lopper", "3", "active"], json |
| 686 | 686 |
assert_include ["Dave2 Lopper2", "5", "locked"], json |
| 687 | 687 |
end |
| 688 | ||
| 689 |
def test_watcher_filter_without_view_issue_watchers_should_return_filter_values |
|
| 690 |
# A user who does not belong to any project |
|
| 691 |
# Don't have view_issue_watcher permission |
|
| 692 |
@request.session[:user_id] = 7 |
|
| 693 | ||
| 694 |
get :filter, :params => {
|
|
| 695 |
:project_id => 1, |
|
| 696 |
:type => 'IssueQuery', |
|
| 697 |
:name => 'watcher_id' |
|
| 698 |
} |
|
| 699 |
assert_response :success |
|
| 700 |
assert_equal 'application/json', response.content_type |
|
| 701 |
json = ActiveSupport::JSON.decode(response.body) |
|
| 702 | ||
| 703 |
assert_equal [["<< me >>", "me"]], json |
|
| 704 |
end |
|
| 705 | ||
| 706 |
def test_watcher_filter_with_view_issue_watchers_should_return_filter_values |
|
| 707 |
# This user has view_issue_watcher permission |
|
| 708 |
@request.session[:user_id] = 1 |
|
| 709 | ||
| 710 |
get :filter, :params => {
|
|
| 711 |
:project_id => 1, |
|
| 712 |
:type => 'IssueQuery', |
|
| 713 |
:name => 'watcher_id' |
|
| 714 |
} |
|
| 715 |
assert_response :success |
|
| 716 |
assert_equal 'application/json', response.content_type |
|
| 717 |
json = ActiveSupport::JSON.decode(response.body) |
|
| 718 | ||
| 719 |
assert_equal 6, json.count |
|
| 720 |
# "me" value should not be grouped |
|
| 721 |
assert_include ["<< me >>", "me"], json |
|
| 722 |
assert_include ["Dave Lopper", "3", "active"], json |
|
| 723 |
assert_include ["Dave2 Lopper2", "5", "locked"], json |
|
| 724 |
end |
|
| 688 | 725 |
end |
- « Previous
- 1
- 2
- Next »