Aggiunge i tornei con hub, pagina pubblica e tabellone per semifinali e finali.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
<% 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>
|
||||
Reference in New Issue
Block a user