ozfortress/citadel

View on GitHub
app/views/leagues/rosters/edit.html.haml

Summary

Maintainability
Test Coverage
- content_for(:title) { "Edit: #{@roster.name} | #{@league.name}" }

%h1
  = present(@league).link
  Editing roster


%h4
  - if @league.signuppable?
    Edit sign up for
  - else
    Edit
  = link_to @roster.name, team_path(@roster.team)


- unless @roster.approved?
  .alert.alert-warning
    .d-flex.flex-wrap.align-items-center
      = inline_svg_tag 'open_iconic/warning.svg', class: 'icon mr-2'
      Roster is awaiting approval

      - if user_can_edit_league?
        .btn-toolbar.guttered.ml-auto
          = link_to 'Approve', review_roster_path(@roster),
                              class: 'btn btn-success'
          = button_to 'Decline', roster_path(@roster),
              method: :delete, class: 'btn btn-danger',
              data: { confirm: "Are you sure you want to decline this team's sign up?" }


.card.mb-3
  .card-header Info
  .card-body
    = bootstrap_form_for @roster, as: :roster, url: roster_path(@roster) do |f|
      - if user_can_edit_league?
        = f.text_field :name
        = f.select :division_id, divisions_select(@league), label: 'Division'
        = f.number_field :seeding
        = f.number_field :ranking
        = f.markdown_editor :notice, rows: 3, label: 'Notice (Public)'

      = render 'form', f: f

      .btn-toolbar.guttered
        = link_to users_permissions_path(action_: :edit, subject: :team, target: @roster.team.id),
                  class: 'btn btn-secondary' do
          = inline_svg_tag 'open_iconic/people.svg', class: 'icon mr-2'
          Manage Permissions

        .spacer

        .ml-auto
          = link_to 'Cancel', team_path(@roster.team), class: 'btn btn-link mr-2'
          = f.primary 'Update'


= render 'leagues/rosters/transfers/index',
         league: @league, roster: @roster, new_transfer_request: @transfer_request,
         users_on_roster: @users_on_roster, users_off_roster: @users_off_roster


- if user_can_disband_roster? || user_can_destroy_roster?
  .alert.alert-danger.mb-3
    %label.font-weight-bold.alert-heading
      Danger Zone

    .btn-toolbar.guttered
      - if @roster.disbanded? && user_can_edit_league?
        = button_to undisband_roster_path(@roster),
                    method: :put, class: 'btn btn-danger',
                    data: { confirm: 'Are you sure you want to Un-disband this Roster?' } do
          Un-disband

      - elsif !@roster.disbanded? && user_can_disband_roster?
        = button_to disband_roster_path(@roster),
                    method: :delete, class: 'btn btn-danger',
                    data: { confirm: 'Are you sure you want to Disband this Roster?' } do
          Disband

      - if user_can_destroy_roster?
        = button_to roster_path(@roster),
                        method: :delete, class: 'btn btn-danger',
                        data: { confirm: 'Are you sure you want to Delete this Roster?' } do
          = inline_svg_tag 'open_iconic/trash.svg', class: 'icon mr-2'
          Destroy


- if user_can_edit_league?
  %hr

  .alert.alert-admin.mb-3
    %label.font-weight-bold.alert-heading
      Admin Comments

    %hr.mt-0

    - @comments.each do |comment|
      - options = { comment: comment, quote_id: 'wmd-input-new-league-roster-comment' }

      - if comment.exists?
        = render 'shared/comment', options
      - else
        = render 'shared/comment_deleted', options

      %hr

    = bootstrap_form_for @comment, as: :comment, url: roster_comments_path(@roster) do |f|
      = render 'leagues/rosters/comments/form', f: f

      .d-flex.justify-content-end
        = f.primary 'Post'