Feature #12795 » 0002-Add-link-from-group-name-to-group-page.patch
app/helpers/application_helper.rb | ||
---|---|---|
49 | 49 | |
50 | 50 |
# Displays a link to user's account page if active |
51 | 51 |
def link_to_user(user, options={}) |
52 |
if user.is_a?(User) |
|
53 |
name = h(user.name(options[:format])) |
|
54 |
if user.active? || (User.current.admin? && user.logged?) |
|
55 |
only_path = options[:only_path].nil? ? true : options[:only_path] |
|
56 |
link_to name, user_url(user, :only_path => only_path), :class => user.css_classes |
|
57 |
else |
|
58 |
name |
|
52 |
user.is_a?(User) ? link_to_principal(user, options) : h(user.to_s) |
|
53 |
end |
|
54 | ||
55 |
# Displays a link to user's account page or group page |
|
56 |
def link_to_principal(principal, options={}) |
|
57 |
only_path = options[:only_path].nil? ? true : options[:only_path] |
|
58 |
case principal |
|
59 |
when User |
|
60 |
name = h(principal.name(options[:format])) |
|
61 |
if principal.active? || (User.current.admin? && principal.logged?) |
|
62 |
url = user_url(principal, :only_path => only_path) |
|
59 | 63 |
end |
64 |
when Group |
|
65 |
name = h(principal.to_s) |
|
66 |
url = group_url(principal, :only_path => only_path) |
|
60 | 67 |
else |
61 |
h(user.to_s)
|
|
68 |
name = h(principal.to_s)
|
|
62 | 69 |
end |
70 | ||
71 |
url ? link_to(name, url, :class => principal.css_classes) : name |
|
63 | 72 |
end |
64 | 73 | |
65 | 74 |
# Displays a link to edit group page if current user is admin |
app/models/group.rb | ||
---|---|---|
50 | 50 |
name.to_s |
51 | 51 |
end |
52 | 52 | |
53 |
def css_classes |
|
54 |
'group' |
|
55 |
end |
|
56 | ||
53 | 57 |
def name |
54 | 58 |
lastname |
55 | 59 |
end |
app/views/projects/_members_box.html.erb | ||
---|---|---|
2 | 2 |
<div class="members box"> |
3 | 3 |
<h3 class="icon icon-group"><%=l(:label_member_plural)%></h3> |
4 | 4 |
<% @principals_by_role.keys.sort.each do |role| %> |
5 |
<p><span class="label"><%= role %>:</span> <%= @principals_by_role[role].sort.collect{|p| link_to_user p}.join(", ").html_safe %></p>
|
|
5 |
<p><span class="label"><%= role %>:</span> <%= @principals_by_role[role].sort.collect{|p| link_to_principal p}.join(", ").html_safe %></p>
|
|
6 | 6 |
<% end %> |
7 | 7 |
</div> |
8 | 8 |
<% end %> |
test/helpers/application_helper_test.rb | ||
---|---|---|
1642 | 1642 |
end |
1643 | 1643 |
end |
1644 | 1644 | |
1645 |
def test_link_to_principal_should_link_to_user |
|
1646 |
user = User.find(2) |
|
1647 |
assert_equal link_to_user(user), link_to_principal(user) |
|
1648 |
end |
|
1649 | ||
1650 |
def test_link_to_principal_should_link_to_group |
|
1651 |
group = Group.find(10) |
|
1652 |
result = link_to('A Team', '/groups/10', :class => 'group') |
|
1653 |
assert_equal result, link_to_principal(group) |
|
1654 |
end |
|
1655 | ||
1645 | 1656 |
def test_link_to_group_should_return_only_group_name_for_non_admin_users |
1646 | 1657 |
User.current = nil |
1647 | 1658 |
group = Group.find(10) |