# HG changeset patch # User David Côté-Tremblay # Date 1490994398 14400 # Fri Mar 31 17:06:38 2017 -0400 # Node ID a0e1375f2e2eae98114928c22de82f1a1de07915 # Parent e2dfd7ce28957e0580736331e450e3452026f283 Add list of role members by project diff -r e2dfd7ce2895 -r a0e1375f2e2e app/controllers/roles_controller.rb --- a/app/controllers/roles_controller.rb Wed Mar 29 06:27:52 2017 +0000 +++ b/app/controllers/roles_controller.rb Fri Mar 31 17:06:38 2017 -0400 @@ -99,6 +99,13 @@ redirect_to roles_path end + def members + @role = Role.find(params[:id]) + @projects_members = Member.joins(:roles, :user).where( + :roles => {:id => @role} + ).group(:users, :id).group_by(&:project) + end + def permissions @roles = Role.sorted.to_a @permissions = Redmine::AccessControl.permissions.select { |p| !p.public? } diff -r e2dfd7ce2895 -r a0e1375f2e2e app/views/roles/index.html.erb --- a/app/views/roles/index.html.erb Wed Mar 29 06:27:52 2017 +0000 +++ b/app/views/roles/index.html.erb Fri Mar 31 17:06:38 2017 -0400 @@ -16,6 +16,7 @@ <%= content_tag(role.builtin? ? 'em' : 'span', link_to(role.name, edit_role_path(role))) %> <%= reorder_handle(role) unless role.builtin? %> + <%= link_to l(:label_member_plural), {:controller => 'roles', :action => 'members', :id => role.id}, :class => 'icon icon-user' unless role.members.count == 0 %> <%= link_to l(:button_copy), new_role_path(:copy => role), :class => 'icon icon-copy' %> <%= delete_link role_path(role) unless role.builtin? %> @@ -28,4 +29,4 @@ <%= javascript_tag do %> $(function() { $("table.roles tbody").positionedItems({items: ".givable"}); }); -<% end %> \ No newline at end of file +<% end %> diff -r e2dfd7ce2895 -r a0e1375f2e2e app/views/roles/members.html.erb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/roles/members.html.erb Fri Mar 31 17:06:38 2017 -0400 @@ -0,0 +1,22 @@ +<%= title [l(:label_role_plural), roles_path], @role.name, l(:label_member_plural) %> + +<% if @projects_members.empty? %> + +

<%= l(:notice_file_not_found) %>

+ +<% else %> + +<% @projects_members.each do |project, members| next if members.count == 0 %> + +

<%= project.name %>

+
+
+
    + <% members.each do |member| next if member.nil? or member.user.nil? %> +
  • <%= link_to_user(member.user) %>
  • + <% end %> +
+
+
+<% end %> +<% end %> diff -r e2dfd7ce2895 -r a0e1375f2e2e config/routes.rb --- a/config/routes.rb Wed Mar 29 06:27:52 2017 +0000 +++ b/config/routes.rb Fri Mar 31 17:06:38 2017 -0400 @@ -332,6 +332,8 @@ match 'permissions', :via => [:get, :post] end end + get '/roles/:id/members', :to => 'roles#members' + resources :enumerations, :except => :show match 'enumerations/:type', :to => 'enumerations#index', :via => :get diff -r e2dfd7ce2895 -r a0e1375f2e2e public/stylesheets/application.css --- a/public/stylesheets/application.css Wed Mar 29 06:27:52 2017 +0000 +++ b/public/stylesheets/application.css Fri Mar 31 17:06:38 2017 -0400 @@ -1302,6 +1302,13 @@ .contextual>*:not(:first-child), .buttons>.icon:not(:first-child) { margin-left: 5px; } +#members_list ul { + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-position: inside; +} + img.gravatar { vertical-align: middle; border-radius: 20%;