diff options
author | Go MAEDA <maeda@farend.jp> | 2021-02-21 01:45:16 +0000 |
---|---|---|
committer | Go MAEDA <maeda@farend.jp> | 2021-02-21 01:45:16 +0000 |
commit | a8072b0d0f201754cfc6f0867b642fdb43af6054 (patch) | |
tree | 017985ca1118605da3c0fb51897bd9bea7f2596a | |
parent | f8d96bb3598f4d3ffcdb0c4b8325e80ad9541128 (diff) | |
download | redmine-a8072b0d0f201754cfc6f0867b642fdb43af6054.tar.gz redmine-a8072b0d0f201754cfc6f0867b642fdb43af6054.zip |
Add an interface to filter activities by user (#33602).
Patch by Mizuki ISHIKAWA.
git-svn-id: http://svn.redmine.org/redmine/trunk@20752 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/helpers/activities_helper.rb | 7 | ||||
-rw-r--r-- | app/views/activities/index.html.erb | 5 | ||||
-rw-r--r-- | test/functional/activities_controller_test.rb | 1 | ||||
-rw-r--r-- | test/helpers/activities_helper_test.rb | 20 |
4 files changed, 32 insertions, 1 deletions
diff --git a/app/helpers/activities_helper.rb b/app/helpers/activities_helper.rb index 49074b561..8f3e92362 100644 --- a/app/helpers/activities_helper.rb +++ b/app/helpers/activities_helper.rb @@ -30,4 +30,11 @@ module ActivitiesHelper end sorted_events end + + def activity_authors_options_for_select(project, selected) + options = [] + options += [["<< #{l(:label_me)} >>", User.current.id]] if User.current.logged? + options += Query.new(project: project).users.select{|user| user.active?}.map{|user| [user.name, user.id]} + options_for_select(options, selected) + end end diff --git a/app/views/activities/index.html.erb b/app/views/activities/index.html.erb index f71266004..e7f179ebe 100644 --- a/app/views/activities/index.html.erb +++ b/app/views/activities/index.html.erb @@ -36,6 +36,10 @@ <%= t(:label_days_to_html, :days => @days, :date => date_field_tag('from', '', :value => (@date_to - 1), :size => 10)) %> <%= calendar_for('from') %> </p> +<p> + <%= l(:label_user) %> + <%= select_tag('user_id', activity_authors_options_for_select(@project, params[:user_id]), include_blank: true) %> +</p> <ul> <% @activity.event_types.each do |t| %> <li> @@ -51,7 +55,6 @@ <%= hidden_field_tag 'with_subprojects', 0, :id => nil %> <p><label><%= check_box_tag 'with_subprojects', 1, @with_subprojects %> <%=l(:label_subproject_plural)%></label></p> <% end %> -<%= hidden_field_tag('user_id', params[:user_id]) unless params[:user_id].blank? %> <p><%= submit_tag l(:button_apply), :class => 'button-small', :name => 'submit' %></p> <% end %> <% end %> diff --git a/test/functional/activities_controller_test.rb b/test/functional/activities_controller_test.rb index dbbe33b48..cab6c34bb 100644 --- a/test/functional/activities_controller_test.rb +++ b/test/functional/activities_controller_test.rb @@ -87,6 +87,7 @@ class ActivitiesControllerTest < Redmine::ControllerTest assert_response :success assert_select 'h2 a[href="/users/2"]', :text => 'John Smith' + assert_select '#sidebar select#user_id option[value="2"][selected=selected]' i1 = Issue.find(1) d1 = User.find(1).time_to_date(i1.created_on) diff --git a/test/helpers/activities_helper_test.rb b/test/helpers/activities_helper_test.rb index 714eab14a..8f86aca9a 100644 --- a/test/helpers/activities_helper_test.rb +++ b/test/helpers/activities_helper_test.rb @@ -109,4 +109,24 @@ class ActivitiesHelperTest < Redmine::HelperTest sort_activity_events(events).map {|event, grouped| [event.name, grouped]} ) end + + def test_activity_authors_options_for_select_if_current_user_is_admin + User.current = User.find(1) + project = Project.find(1) + + options = [["<< #{l(:label_me)} >>", 1], ['Dave Lopper', 3], ['John Smith', 2], ['Redmine Admin', 1], ['User Misc', 8]] + assert_equal( + options_for_select(options, nil), + activity_authors_options_for_select(project, nil)) + end + + def test_activity_authors_options_for_select_if_current_user_is_anonymous + User.current = nil + project = Project.find(1) + + options = [['Dave Lopper', 3], ['John Smith', 2]] + assert_equal( + options_for_select(options, nil), + activity_authors_options_for_select(project, nil)) + end end |