Tutte le view marketing, legali, viewer, dashboard e admin usano t(); mailer utente-facing e flash localizzati; admin con LocaleResolver e selettore lingua. Co-authored-by: Cursor <cursoragent@cursor.com>
34 lines
1.0 KiB
Ruby
34 lines
1.0 KiB
Ruby
module RosterHelper
|
|
def roster_person_avatar(person, team, size: 96)
|
|
primary = team.effective_primary_color
|
|
secondary = team.effective_secondary_color
|
|
style = "--avatar-primary:#{primary};--avatar-secondary:#{secondary};width:#{size}px;height:#{size}px"
|
|
|
|
if person.photo_url.present?
|
|
image_tag person.photo_url, alt: person.full_name, class: "roster-avatar roster-avatar--photo",
|
|
style: style, width: size, height: size
|
|
else
|
|
tag.div(
|
|
person.initials,
|
|
class: "roster-avatar roster-avatar--placeholder",
|
|
style: "#{style};font-size:#{(size * 0.34).round}px",
|
|
aria: { label: person.full_name }
|
|
)
|
|
end
|
|
end
|
|
|
|
def roster_category_options
|
|
TeamRosterMember::DISPLAY_ORDER.map do |cat|
|
|
[TeamRosterMember.category_label(cat), cat]
|
|
end
|
|
end
|
|
|
|
def roster_player_role_options(team, selected = nil)
|
|
roles = Sports::PlayerRoles.for_team(team)
|
|
options_for_select(
|
|
[[t("roster.role_select_blank"), ""]] + roles.map { |r| [r, r] },
|
|
selected
|
|
)
|
|
end
|
|
end
|