members_block.rb
1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
class MembersBlock < PeopleBlockBase
settings_items :show_join_leave_button, :type => :boolean, :default => false
settings_items :visible_role, :type => :string, :default => nil
attr_accessible :show_join_leave_button, :visible_role
def self.description
c_('Members')
end
def help
_('Clicking a member takes you to his/her homepage')
end
def default_title
title = role ? role.name : _('members')
_('{#} %s') % title
end
def profiles
role ? owner.members.with_role(role.id) : owner.members
end
def footer
profile = self.owner
role_key = visible_role
s = show_join_leave_button
proc do
render :file => 'blocks/members', :locals => { :profile => profile, :show_join_leave_button => s, :role_key => role_key}
end
end
def role
visible_role && !visible_role.empty? ? Role.find_by_key_and_environment_id(visible_role, owner.environment) : nil
end
def roles
Profile::Roles.organization_member_roles(owner.environment)
end
def extra_option
data = {
:human_name => _("Show join leave button"),
:name => 'block[show_join_leave_button]',
:value => true,
:checked => show_join_leave_button,
:options => {}
}
end
def self.expire_on
{:profile => [:role_assignment]}
end
end