Add group_users macro
This commit is contained in:
@ -1,6 +1,13 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
2.0.4 - untagged and not released
|
||||
+++++
|
||||
|
||||
- Add group_users macro
|
||||
- Fix bug with REST-API and assigned_id for issues
|
||||
- Use user name setting for sort order in macros
|
||||
|
||||
2.0.3
|
||||
+++++
|
||||
|
||||
|
@ -4,8 +4,8 @@
|
||||
users.each {|user| %>
|
||||
<div class="user box <%= cycle("odd", "even") %>">
|
||||
<div style="float: left; display: block; margin-right: 5px;"><%= avatar(user, :size => "50") %></div>
|
||||
<div class="user line" style="font-weight: bold;"><%= link_to(user.firstname + ' ' + user.lastname, '/users/' + user.id.to_s()) %></div>
|
||||
<% if user_roles[user.id] %><div class="user line"><%= l(:field_role) %>: <%= user_roles[user.id].join(", ").html_safe %></div><% end %>
|
||||
<div class="user line" style="font-weight: bold;"><%= link_to_user(user) %></div>
|
||||
<% if !user_roles.nil? && user_roles[user.id] %><div class="user line"><%= l(:field_role) %>: <%= user_roles[user.id].join(", ").html_safe %></div><% end %>
|
||||
<div class="user line"><%= l(:field_login) %>: <%= link_to user.login, '/users/' + user.id.to_s() %></div>
|
||||
<% if !user.pref.hide_mail %>
|
||||
<div class="user line"><%= l(:field_mail) %>: <%= mail_to("#{user.mail}", nil, :encode => 'javascript') %></div>
|
||||
|
@ -96,7 +96,7 @@ Features
|
||||
* welcome text for login page
|
||||
* global sidebar content support
|
||||
* set info message above new ticket (e.g. for guidelines)
|
||||
* Wiki macros for: date, Gihub gist, issues, members, projects slideshare, twitter, reddit, tradingview, cryptocompare, user, youtube and vimeo
|
||||
* Wiki macros for: date, Gihub gist, group_users, issues, members, projects slideshare, twitter, reddit, tradingview, cryptocompare, user, youtube and vimeo
|
||||
* option to remove "my page" from top menu
|
||||
* customize "Help" url in top menu
|
||||
* customize top menu items
|
||||
|
@ -9,6 +9,7 @@ If a parameter is in brackets, this parameter is optional.
|
||||
.. include:: macros/cryptocompare.rst
|
||||
.. include:: macros/date.rst
|
||||
.. include:: macros/gist.rst
|
||||
.. include:: macros/group_users.rst
|
||||
.. include:: macros/issue.rst
|
||||
.. include:: macros/last_updated_at.rst
|
||||
.. include:: macros/last_updated_by.rst
|
||||
|
19
docs/macros/group_users.rst
Normal file
19
docs/macros/group_users.rst
Normal file
@ -0,0 +1,19 @@
|
||||
Members
|
||||
-------
|
||||
|
||||
Groupo users macro for Redmine.
|
||||
|
||||
.. function:: {{group_users(group_name)}}
|
||||
|
||||
Show list of users in a user group (an respect permissions)
|
||||
|
||||
:param string group_name: group name
|
||||
|
||||
Examples
|
||||
++++++++
|
||||
|
||||
List all users of user group ``Team A``
|
||||
|
||||
.. code-block:: smarty
|
||||
|
||||
{{group_users(Team A)}}
|
@ -74,9 +74,9 @@ if ActiveRecord::Base.connection.table_exists?(:settings)
|
||||
require_dependency 'additionals/hooks'
|
||||
|
||||
# Macros
|
||||
Additionals.load_macros(%w[calendar cryptocompare date gist issue last_updated_at last_updated_by
|
||||
member project recently_updated reddit slideshare tradingview
|
||||
twitter user vimeo youtube])
|
||||
Additionals.load_macros(%w[calendar cryptocompare date gist group_users issue last_updated_at
|
||||
last_updated_by member project recently_updated reddit slideshare
|
||||
tradingview twitter user vimeo youtube])
|
||||
end
|
||||
|
||||
# include deface overwrites
|
||||
|
32
lib/additionals/wiki_macros/group_users_macro.rb
Normal file
32
lib/additionals/wiki_macros/group_users_macro.rb
Normal file
@ -0,0 +1,32 @@
|
||||
# Group wiki macros
|
||||
module Additionals
|
||||
module WikiMacros
|
||||
Redmine::WikiFormatting::Macros.register do
|
||||
desc <<-EOHELP
|
||||
Display users of group.
|
||||
|
||||
Syntax:
|
||||
|
||||
{{group_users(GROUP_NAME}}
|
||||
|
||||
Examples:
|
||||
|
||||
{{group_users(Team)}}
|
||||
...List all users in user group "Team" (with the current user permission)
|
||||
|
||||
EOHELP
|
||||
|
||||
macro :group_users do |_obj, args|
|
||||
raise 'The correct usage is {{group_users(<group_name>)}}' if args.empty?
|
||||
group_name = args[0].strip
|
||||
group = Group.named(group_name).first
|
||||
raise 'Invalid group' unless group
|
||||
|
||||
users = Principal.visible.where(id: group.users).order(User.name_formatter[:order])
|
||||
render partial: 'wiki/user_macros', locals: { users: users,
|
||||
user_roles: nil,
|
||||
list_title: group_name }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -167,6 +167,16 @@ class WikiControllerTest < ActionController::TestCase
|
||||
assert_select 'div.wiki div.user'
|
||||
end
|
||||
|
||||
def test_show_with_group_users_macro
|
||||
@request.session[:user_id] = 1
|
||||
@page.content.text = '{{group_users(A Team)}}'
|
||||
@page.content.save!
|
||||
get :show, project_id: 1, id: @page_name
|
||||
assert_response :success
|
||||
assert_template 'show'
|
||||
assert_select 'div.wiki div.user'
|
||||
end
|
||||
|
||||
def test_show_with_projects_macro
|
||||
@request.session[:user_id] = 1
|
||||
@page.content.text = '{{projects}}'
|
||||
|
Reference in New Issue
Block a user