Files
benchcoach-rails/app/views/event/lineup.html.slim
2023-09-07 14:23:30 -05:00

104 lines
5.0 KiB
Plaintext

div id="messages"
#success-message.Feedback.Feedback--positive.u-hidden role="alert"
.Feedback-icon
i.Icon.bi.bi-hand-thumbs-up-fill.u-fontSizeXl
h5.headline Successful
span.message
p
a href="javascript:void(0)" onclick="javascript:this.closest('.Feedback').classList.add('u-hidden')" Dismiss
#failure-message.Feedback.Feedback--negative.u-hidden role="alert"
.Feedback-icon.bi.bi-hand-thumbs-down-fill
h5.headline Not Successful!
span.message Error encountered.
p
a href="javascript:void(0)" onclick="javascript:this.closest('.Feedback').classList.add('u-hidden')" Dismiss
#waiting-message.Feedback.u-hidden role="alert"
.Feedback-icon
.Icon.Icon--loader.u-colorForeground.u-fontSizeXl
<svg viewBox="0 0 66 66" role="presentation" class="Icon Icon--loader">
<circle fill="none" stroke-width="12" stroke="currentColor" stroke-linecap="round" cx="33" cy="33" r="24" />
</svg>
h5.headline Sending...
div id="modals"
#email-modal.Modal
.Modal-content
.Modal-header
.Modal-title Email
a href="javascript:void(0)" onclick="javascript:this.closest('.Modal').classList.toggle('is-open')" Dismiss
.Modal-body
div id="event-lineup-#{event.id}" class="event-lineup"
= form_with(url: url_for(event_lineup_submit_path :team_id=>team.id, :event_id=>event.id), method: :post, :html => { :onsubmit => "onSubmit(this,event)" }) do |form|
=form.hidden_field name="event_lineup_id", value: !event_lineup.nil? ? event_lineup.id : nil
.event-card.u-maxWidthSm
.event-card-body
div.Grid
div.Grid-cell.u-sizeFill
h3.title #{event.formatted_title}
div.Grid-cell.u-sizeFit
.ButtonGroup
= form.submit("Save", class: "Button Button--orange")
.Button.Button--orange.u-padSidesXs.Popup onclick="togglePopup(this)"
.bi.bi-caret-down.u-spaceNone
.Popup-container.Popup-container--down.Popup-container--rightHang data-popup="demo4a" style="width: 200px"
.Popup-content
.u-textBold
a href="javascript:void(0)" onclick="emailModal(this, '#{url_for(event_lineup_email_path :team_id=>team.id, :event_id=>event.id)}')"
i.bi.bi-envelope
span Generate Email
hr.Divider.u-spaceEndsNone
a href=""
p.u-padEndsSm.u-padSidesMd Action 2
div.date #{event.start_date.strftime("%a, %b %e, %l:%M %p")}
div.location #{event.location_name}
div.availability-bar=render("event/availability_bar", team:team, event:event, availability_summary: availability_summary)
.Panel.u-maxWidthSm.starting
.Panel-body
.Panel-row.Panel-title.u-padXs
i.bi.bi-clipboard-check.me-1
span Starting Lineup
.Panel-row.Grid.Grid--fit.fw-bold.text-center.u-padXs
- for pos in ["P", "C", "1B", "2B", "3B", "SS", "LF", "CF", "RF", "EH", "DH"]
.Grid-cell.position-status #{pos}
.slot-set
- event_lineup_entry.select{|d| extract_flags(d)[1].exclude?(PositionLabelFlag::POSITION_ONLY)}.sort_by{|d| d['sequence']}.each_with_index do |d|
- m = members.find{|m| m.id == d['member_id']}
=render("lineup_slot",event_lineup_entry: by_member[m][:event_lineup_entry],availability: by_member[m][:availability], member:m, event:event, timeline: timeline, form: form, event_lineup:d)
.Panel.u-maxWidthSm.position-only
.Panel-body
.Panel-row.Panel-title.u-padXs
i.bi.bi-clipboard-check.me-1
span Position Only
.slot-set
- event_lineup_entry.select{ |d| extract_flags(d)[1].include?(PositionLabelFlag::POSITION_ONLY)}.sort_by{|d| d['sequence']}.each_with_index do |d|
- m = members.find{|m| m.id == d['member_id']}
=render("lineup_slot",event_lineup_entry: by_member[m][:event_lineup_entry],availability: by_member[m][:availability], member:m, event:event, timeline: timeline, form: form, event_lineup:d)
.Panel.u-maxWidthSm.bench
.Panel-body
.Panel-row.Panel-title.u-padXs
i.bi.bi-clipboard-minus.me-1
span Bench
.slot-set
- by_member.select{|m,d| !d[:availability].status_code.nil? and d[:availability].status_code != 0 and !m.is_non_player and d[:event_lineup_entry].nil?}.each_with_index do |(m, d), i|
=render("lineup_slot",event_lineup_entry: by_member[m][:event_lineup_entry],availability: by_member[m][:availability], member:m, event:event, timeline: timeline, form: form, event_lineup:event_lineup)
.Panel.u-maxWidthSm.out
.Panel-body
.Panel-row.Panel-title.u-padXs
i.bi.bi-clipboard-x.me-1
span Out
.slot-set
- by_member.select{|m,d| (d[:availability].status_code.nil? or d[:availability].status_code == 0) and !m.is_non_player and d[:event_lineup_entry].nil?}.each_with_index do |(m, d), i|
=render("lineup_slot",event_lineup_entry: by_member[m][:event_lineup_entry],availability: by_member[m][:availability], member:m, event:event, timeline: timeline, form: form, event_lineup:event_lineup)
script src="https://cdn.jsdelivr.net/npm/sortablejs@latest/Sortable.min.js"
=javascript_include_tag 'lineup'
javascript:
colorPositions();
refreshLineupOrder();