80 lines
3.7 KiB
ERB
80 lines
3.7 KiB
ERB
<% content_for :title, t("tournaments.new.title", name: @club.name) %>
|
|
<% content_for :robots, "noindex, nofollow" %>
|
|
|
|
<div class="wrap wrap--portal tournament-new" style="padding-top:20px">
|
|
<nav class="team-dashboard-nav">
|
|
<%= link_to "← #{t("tournaments.index.heading")}", public_club_tournaments_path(@club), class: "team-dashboard-nav__club" %>
|
|
</nav>
|
|
<h1><%= t("tournaments.new.heading") %></h1>
|
|
<p class="tournament-new__lead"><%= t("tournaments.index.lead") %></p>
|
|
|
|
<div class="card" style="margin-top:16px">
|
|
<%= form_with model: @tournament, url: public_club_tournaments_path(@club), method: :post, html: { class: "tournament-form", multipart: true, data: { tournament_form: true } } do %>
|
|
<div class="tournament-form__field tournament-form__full">
|
|
<%= label_tag "tournament[name]", t("tournaments.form.name") %>
|
|
<%= text_field_tag "tournament[name]", @tournament.name, required: true %>
|
|
</div>
|
|
|
|
<div class="tournament-form__field">
|
|
<%= label_tag "tournament[sport_key]", t("tournaments.form.sport") %>
|
|
<%= select_tag "tournament[sport_key]",
|
|
options_for_select(Sports::Catalog.as_api_list.map { |s| [s[:label], s[:key]] }, @tournament.sport_key) %>
|
|
</div>
|
|
|
|
<div class="tournament-form__field">
|
|
<%= label_tag "tournament[venue]", t("tournaments.form.venue") %>
|
|
<%= text_field_tag "tournament[venue]", @tournament.venue %>
|
|
</div>
|
|
|
|
<div class="tournament-form__field">
|
|
<%= label_tag "tournament[starts_on]", t("tournaments.form.starts_on") %>
|
|
<%= date_field_tag "tournament[starts_on]", @tournament.starts_on, required: true %>
|
|
</div>
|
|
|
|
<div class="tournament-form__field">
|
|
<%= label_tag "tournament[ends_on]", t("tournaments.form.ends_on") %>
|
|
<%= date_field_tag "tournament[ends_on]", @tournament.ends_on, required: true %>
|
|
</div>
|
|
|
|
<div class="tournament-form__field">
|
|
<%= label_tag "tournament[format_kind]", t("tournaments.form.format") %>
|
|
<%= select_tag "tournament[format_kind]",
|
|
options_for_select(Tournament::FORMAT_KINDS.map { |k| [t("tournaments.form.formats.#{k}"), k] }, @tournament.format_kind),
|
|
data: { tournament_format: true } %>
|
|
</div>
|
|
|
|
<div class="tournament-form__field" data-knockout-field>
|
|
<%= label_tag "tournament[knockout_size]", t("tournaments.form.knockout_size") %>
|
|
<%= select_tag "tournament[knockout_size]", options_for_select([2, 4, 8, 16], @tournament.knockout_size || 4) %>
|
|
</div>
|
|
|
|
<div class="tournament-form__field tournament-form__full">
|
|
<%= label_tag "tournament[logo_file]", t("tournaments.form.logo") %>
|
|
<%= file_field_tag "tournament[logo_file]", accept: "image/png,image/jpeg,image/webp" %>
|
|
<p class="tournament-hub-hint" style="margin:6px 0 0"><%= t("tournaments.form.logo_hint") %></p>
|
|
</div>
|
|
|
|
<div class="tournament-form__field tournament-form__full">
|
|
<%= label_tag "tournament[courts]", t("tournaments.form.courts") %>
|
|
<%= text_area_tag "tournament[courts]", Array(@tournament.courts).join("\n"), rows: 3 %>
|
|
</div>
|
|
|
|
<div class="tournament-form__actions">
|
|
<%= submit_tag t("tournaments.new.submit"), class: "btn btn-primary" %>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
document.querySelectorAll("[data-tournament-form]").forEach(function (form) {
|
|
var format = form.querySelector("[data-tournament-format]");
|
|
var knockout = form.querySelector("[data-knockout-field]");
|
|
if (!format || !knockout) return;
|
|
var sync = function () {
|
|
knockout.hidden = !(format.value === "knockout" || format.value === "mixed");
|
|
};
|
|
format.addEventListener("change", sync);
|
|
sync();
|
|
});
|
|
</script>
|