Files
puzzle-scoreboard/app/views/contests/scoreboard.html.slim
sto 51e55f0828
All checks were successful
CI / scan_ruby (push) Successful in 16s
CI / scan_js (push) Successful in 13s
CI / lint (push) Successful in 14s
CI / test (push) Successful in 36s
Add hidden setting to puzzles
#19
2025-12-04 11:35:41 +01:00

112 lines
4.4 KiB
Plaintext

css:
@media (max-width: 800px) {
a.btn { display: none; }
.col-5 { display: none; }
.col-6 { width: 100% !important; display: block !important; }
.small-screen-image { display: block !important; }
.container { margin-top: 2rem !important; }
}
- if @contest.puzzles.size <= 1
.row.small-screen-image style="display: none"
- @puzzles.each do |puzzle|
.d-flex.flex-column.justify-content-center.mb-5
= image_tag(puzzle.image, style: "max-height: 200px; object-fit: contain") if puzzle.image.attached?
.mt-2.fs-6 style="text-align: center"
=> "#{puzzle.name} -"
= "#{puzzle.brand} #{puzzle.pieces}p"
= render "selectors"
.row
.mt-3.col-6.d-flex.flex-column style="height: calc(100vh - 250px)"
.d-flex.flex-column style="overflow-y: auto"
table.table.table-striped.table-hover
thead
tr
th
= t("helpers.rank")
th
= t("activerecord.attributes.contestant.name")
- if @contest.puzzles.size > 1
th
= t("activerecord.attributes.contestant.completions")
th style="width: 170px"
= t("activerecord.attributes.contestant.display_time")
tbody
- @contestants.each_with_index do |contestant, index|
tr scope="row"
td
= index + 1
- if contestant.offline.present?
= @space
| (hors-ligne)
td
= contestant.name
- if @contest.puzzles.size > 1
td
= contestant.completions.where(remaining_pieces: nil).length
td style="position: relative"
- if index > 0 && contestant.time_seconds > 0 && contestant.completions.where(completed: true).size > 0
.relative-time style="position:absolute; margin: 1px 0 0 112px; font-size: 14px; color: grey"
|> +
= display_time(contestant.time_seconds - @contestants[index - 1].time_seconds)
= contestant.display_time
.col-1
.col-5
- @puzzles.each do |puzzle|
= image_tag(puzzle.image, class: "img-fluid ms-3 me-3") if puzzle.image.attached?
.mt-3.fs-4 style="margin-left: 15px"
= puzzle.name
.fs-6 style="margin-left: 15px"
b
= "#{puzzle.brand} - #{puzzle.pieces}p"
- else
.d-flex.flex-column style="height: calc(100vh - 180px)"
= render "selectors"
.d-flex.flex-column style="overflow-y: auto"
.table-responsive-md
table.table.table-striped.table-hover
thead
tr
th
th
th
th
- @puzzles.each do |puzzle|
th scope="col"
= image_tag(puzzle.image, class: "img-fluid", style: "max-height: 64px;") if puzzle.image.attached?
tr
th scope="col"
= t("helpers.rank")
th scope="col"
= t("activerecord.attributes.contestant.name")
th scope="col"
= t("activerecord.attributes.contestant.completions")
th scope="col"
= t("activerecord.attributes.contestant.display_time")
- @puzzles.each do |puzzle|
th scope="col"
= puzzle.name
tbody
- @contestants.each_with_index do |contestant, index|
tr scope="row"
td
= index + 1
td
= contestant.name
td
= contestant.completions.where(remaining_pieces: nil).length
td
= contestant.completions.size > 0 && contestant.completions[-1].remaining_pieces ? "#{contestant.completions.map{|completion| completion.puzzle.pieces}.sum - contestant.completions[-1].remaining_pieces}p" : contestant.display_time
- @puzzles.each do |puzzle|
td
- contestant.completions.each do |completion|
- if completion.puzzle == puzzle
- if completion.completed
= completion.display_relative_time
- else
= "#{puzzle.pieces - completion.remaining_pieces}p"