Add group_users macro
This commit is contained in:
@ -1,6 +1,13 @@
|
|||||||
Changelog
|
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
|
2.0.3
|
||||||
+++++
|
+++++
|
||||||
|
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
users.each {|user| %>
|
users.each {|user| %>
|
||||||
<div class="user box <%= cycle("odd", "even") %>">
|
<div class="user box <%= cycle("odd", "even") %>">
|
||||||
<div style="float: left; display: block; margin-right: 5px;"><%= avatar(user, :size => "50") %></div>
|
<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>
|
<div class="user line" style="font-weight: bold;"><%= link_to_user(user) %></div>
|
||||||
<% if user_roles[user.id] %><div class="user line"><%= l(:field_role) %>: <%= user_roles[user.id].join(", ").html_safe %></div><% end %>
|
<% 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>
|
<div class="user line"><%= l(:field_login) %>: <%= link_to user.login, '/users/' + user.id.to_s() %></div>
|
||||||
<% if !user.pref.hide_mail %>
|
<% if !user.pref.hide_mail %>
|
||||||
<div class="user line"><%= l(:field_mail) %>: <%= mail_to("#{user.mail}", nil, :encode => 'javascript') %></div>
|
<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
|
* welcome text for login page
|
||||||
* global sidebar content support
|
* global sidebar content support
|
||||||
* set info message above new ticket (e.g. for guidelines)
|
* 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
|
* option to remove "my page" from top menu
|
||||||
* customize "Help" url in top menu
|
* customize "Help" url in top menu
|
||||||
* customize top menu items
|
* customize top menu items
|
||||||
|
@ -9,6 +9,7 @@ If a parameter is in brackets, this parameter is optional.
|
|||||||
.. include:: macros/cryptocompare.rst
|
.. include:: macros/cryptocompare.rst
|
||||||
.. include:: macros/date.rst
|
.. include:: macros/date.rst
|
||||||
.. include:: macros/gist.rst
|
.. include:: macros/gist.rst
|
||||||
|
.. include:: macros/group_users.rst
|
||||||
.. include:: macros/issue.rst
|
.. include:: macros/issue.rst
|
||||||
.. include:: macros/last_updated_at.rst
|
.. include:: macros/last_updated_at.rst
|
||||||
.. include:: macros/last_updated_by.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'
|
require_dependency 'additionals/hooks'
|
||||||
|
|
||||||
# Macros
|
# Macros
|
||||||
Additionals.load_macros(%w[calendar cryptocompare date gist issue last_updated_at last_updated_by
|
Additionals.load_macros(%w[calendar cryptocompare date gist group_users issue last_updated_at
|
||||||
member project recently_updated reddit slideshare tradingview
|
last_updated_by member project recently_updated reddit slideshare
|
||||||
twitter user vimeo youtube])
|
tradingview twitter user vimeo youtube])
|
||||||
end
|
end
|
||||||
|
|
||||||
# include deface overwrites
|
# 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'
|
assert_select 'div.wiki div.user'
|
||||||
end
|
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
|
def test_show_with_projects_macro
|
||||||
@request.session[:user_id] = 1
|
@request.session[:user_id] = 1
|
||||||
@page.content.text = '{{projects}}'
|
@page.content.text = '{{projects}}'
|
||||||
|
Reference in New Issue
Block a user