137 lines
5.5 KiB
Plaintext
137 lines
5.5 KiB
Plaintext
- if @badges.size > 0
|
|
.row.mb-4
|
|
.col
|
|
.badges style="margin-top: -18px; position: absolute"
|
|
- @badges.each do |badge|
|
|
span.badge.text-bg-info.me-2
|
|
= badge
|
|
|
|
javascript:
|
|
async function copyExtensionUrlToClipboard() {
|
|
await navigator.clipboard.writeText("#{message_url}?token=#{@contest.generate_token_for(:token)}");
|
|
}
|
|
|
|
.row.mb-5
|
|
.col
|
|
a.btn.btn-success href="/public/#{@contest.slug}"
|
|
= t("contests.show.open_public_scoreboard")
|
|
button.btn.btn-success.ms-3 onclick="copyExtensionUrlToClipboard()"
|
|
css:
|
|
button > svg {
|
|
margin-right: 2px;
|
|
margin-top: -3px;
|
|
}
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16">
|
|
<path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1z"/>
|
|
<path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0z"/>
|
|
</svg>
|
|
=< t("contests.show.copy_extension_url")
|
|
|
|
.row.mb-4
|
|
.col-7
|
|
.row
|
|
.col
|
|
h4
|
|
= t("puzzles.plural").capitalize
|
|
a.ms-3.btn.btn-sm.btn-primary href=new_contest_puzzle_path(@contest) style="margin-top: -3px"
|
|
| + #{t("helpers.buttons.add")}
|
|
table.table.table-striped.table-hover
|
|
thead
|
|
tr
|
|
th scope="col"
|
|
= t("activerecord.attributes.puzzle.image")
|
|
th scope="col"
|
|
= t("activerecord.attributes.puzzle.name")
|
|
th scope="col"
|
|
= t("activerecord.attributes.puzzle.brand")
|
|
tbody
|
|
- @puzzles.each do |puzzle|
|
|
tr.align-middle scope="row"
|
|
td
|
|
= image_tag(puzzle.image, class: "img-fluid", style: "max-height: 48px;") if puzzle.image.attached?
|
|
td
|
|
= puzzle.name
|
|
td
|
|
= puzzle.brand
|
|
td
|
|
a.btn.btn-sm.btn-secondary href=edit_contest_puzzle_path(@contest, puzzle)
|
|
= t("helpers.buttons.edit")
|
|
- if @messages
|
|
.row.mt-5
|
|
.col
|
|
h4 = t("messages.plural").capitalize
|
|
- if @puzzles.size == 0
|
|
.row
|
|
.col.alert.alert-danger
|
|
= t("messages.warning")
|
|
table.table.table-striped.table-hover
|
|
thead
|
|
tr
|
|
th scope="col" style="white-space: nowrap"
|
|
= t("activerecord.attributes.message.processed")
|
|
th scope="col"
|
|
= t("activerecord.attributes.message.time")
|
|
th scope="col"
|
|
= t("activerecord.attributes.message.author")
|
|
th.w-25 scope="col"
|
|
= t("activerecord.attributes.message.text")
|
|
th.w-25 scope="col"
|
|
tbody
|
|
- @messages.each do |message|
|
|
tr.align-middle scope="row"
|
|
td style="text-align: center"
|
|
- if message.completions.size > 0
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-check-square" viewBox="0 0 16 16">
|
|
<path d="M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z"/>
|
|
<path d="M10.97 4.97a.75.75 0 0 1 1.071 1.05l-3.992 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425z"/>
|
|
</svg>
|
|
td
|
|
= message.display_time
|
|
td
|
|
= message.author
|
|
td
|
|
= message.text
|
|
td
|
|
- if @puzzles.size > 0
|
|
a.btn.btn-sm.btn-secondary href=contest_message_convert_path(@contest, message) style="white-space: nowrap;"
|
|
= t("helpers.buttons.add_completion")
|
|
- else
|
|
a.btn.btn-sm.btn-secondary.disabled href=contest_message_convert_path(@contest, message) style="white-space: nowrap;"
|
|
= t("helpers.buttons.add_completion")
|
|
td
|
|
= link_to t("helpers.buttons.delete"), contest_message_path(@contest, message), data: { turbo_method: :delete }, class: "btn btn-sm btn-danger"
|
|
.col-5
|
|
.row
|
|
.col
|
|
h4
|
|
= t("contestants.plural").capitalize
|
|
a.ms-3.btn.btn-sm.btn-primary href=new_contest_contestant_path(@contest) style="margin-top: -3px"
|
|
| + #{t("helpers.buttons.add")}
|
|
a.ms-3.btn-sm.btn.btn-primary href=contest_import_path(@contest) style="margin-top: -3px"
|
|
| #{t("helpers.buttons.import")}
|
|
table.table.table-striped.table-hover
|
|
thead
|
|
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")
|
|
tbody
|
|
- @contestants.each_with_index do |contestant, index|
|
|
tr scope="row"
|
|
td
|
|
= index + 1
|
|
td
|
|
= contestant.name
|
|
td
|
|
= contestant.completions.length
|
|
td
|
|
= contestant.display_time
|
|
td
|
|
a.btn.btn-sm.btn-secondary href=edit_contest_contestant_path(@contest, contestant)
|
|
= t("helpers.buttons.open")
|