app/views/leagues/rosters/new.html.haml
- content_for(:title) { "Sign up | #{@league.name}" }
- league_p = present(@league)
%h1.mb-4
= league_p.link
Sign up
- if @team.nil?
%h4 Which team do you want to sign up with?
%ul.list-group.mb-3
- if @teams.empty?
%li.list-group-item
You must have at least #{@league.min_players} players on a team to sign up.
- @teams.each do |team|
= link_to new_league_roster_path(@league, team_id: team.id),
class: 'list-group-item' do
= team.name
= link_to league_path(@league), class: 'btn btn-light' do
= inline_svg_tag 'open_iconic/chevron-left.svg', class: 'icon mr-2'
Back
- else
%h4
Sign up with #{@team.name}
.card
.card-body
= bootstrap_form_for @roster, as: :roster,
url: league_rosters_path(@league, team_id: @team.id) do |f|
= f.text_field :name
= f.select :division_id, divisions_select(@league), label: 'Desired Division'
= render 'form', f: f
= f.form_group :players, label: { text: 'Players' } do
/ Check box list for players from the team to add to the roster
= f.fields_for(:players, @team.users) do |user_f|
:ruby
user = user_f.object
user_p = present(user)
player = @roster.players.find { |pl| pl.user_id == user.id }
has_errors = player&.errors&.any?
.form-group{ class: ('has-error' if has_errors) }
- label = user_p.avatar_tag size: 20, class: 'rounded mx-1'
= user_f.check_box :user_id, { checked: !player.nil?, label_class: 'cursor-pointer' }, user.id, nil do
= user_p.link label
= user.name
/ Manually display errors.
- if player && has_errors
- player.errors.each do |_key_, error|
%span.help-block= error
.d-flex.justify-content-end
= link_to 'Cancel', league_path(@league), class: 'btn btn-link mr-2'
= f.primary 'Sign up'