plugins/people_block/lib/members_block.rb
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 base_profiles
role ? owner.members.with_role(role.id) : owner.members
end
def profiles(user = nil)
profiles = super
Profile.from(profiles, :profiles).order("RANDOM()")
end
def role
visible_role && !visible_role.empty? ? Role.find_by(key: visible_role, environment_id: owner.environment.id) : 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