Files
MatchLiveTv/backend/app/views/public/tournaments/_tab_calendario.html.erb
T
eminuxandCursor c3ef8e91a6 Rende usabili calendario, overlay ospite e stato diretta del cartellone.
Il calendario non deve più scorrere in orizzontale, il logo a destra non copre il nome e una diretta YouTube o in collegamento compare come In diretta.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 09:55:08 +02:00

158 lines
9.2 KiB
ERB
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div class="card">
<% if @writable && @tournament.uses_groups? %>
<p class="tournament-hub-hint"><%= t("tournaments.hub.generate_hint") %></p>
<%= button_to t("tournaments.hub.generate_group_matches"),
public_generate_group_matches_tournament_path(@tournament),
method: :post, class: "btn btn-secondary" %>
<% end %>
<% if @matches.any? %>
<p class="tournament-hub-hint" style="margin-top:16px"><%= t("tournaments.hub.calendar_edit_hint") %></p>
<div class="tournament-match-list tournament-match-table" data-swap-error="<%= t("flash.tournaments.sides_swap_failed") %>">
<% @matches.each do |match| %>
<% form_id = "match-edit-#{match.id}" %>
<% courts = (@tournament.court_list + [match.court]).compact_blank.uniq %>
<%= form_with url: public_tournament_match_path(@tournament, match), method: :patch, html: { id: form_id, class: "visually-hidden" } do %>
<%= hidden_field_tag :tab, @tab, form: form_id %>
<% end %>
<article class="tournament-match-row">
<% if @writable %>
<div class="tournament-match-row__field">
<label for="match_at_<%= match.id %>"><%= t("tournaments.hub.datetime") %></label>
<%= datetime_local_field_tag "match[scheduled_at]", tournament_datetime_local(match.scheduled_at),
id: "match_at_#{match.id}", form: form_id, required: true, class: "tournament-match-form__datetime" %>
</div>
<div class="tournament-match-row__field">
<label for="match_court_<%= match.id %>"><%= t("tournaments.hub.court") %></label>
<%= select_tag "match[court]", options_for_select(courts, match.court),
id: "match_court_#{match.id}", form: form_id, include_blank: true, class: "tournament-match-form__court" %>
</div>
<div class="tournament-match-row__field tournament-match-row__field--phase">
<span class="tournament-match-row__label"><%= t("tournaments.hub.round") %></span>
<p class="tournament-match-row__phase"><%= tournament_phase_label(match) %></p>
</div>
<div class="tournament-match-row__sides">
<div class="tournament-match-row__side">
<span class="tournament-match-row__label"><%= t("tournaments.hub.home") %></span>
<div data-swap-side="home"><%= render "public/tournaments/match_side_select", match: match, side: :home, form_id: form_id %></div>
</div>
<div class="tournament-match-swap-col">
<%= button_to public_swap_tournament_match_path(@tournament, match), method: :post,
class: "tournament-match-swap__btn",
title: t("tournaments.hub.swap_sides"),
form: { class: "tournament-match-swap__form", data: { turbo: false } } do %>
<i class="fa-solid fa-right-left" aria-hidden="true"></i>
<span class="visually-hidden"><%= t("tournaments.hub.swap_sides") %></span>
<% end %>
</div>
<div class="tournament-match-row__side">
<span class="tournament-match-row__label"><%= t("tournaments.hub.away") %></span>
<div data-swap-side="away"><%= render "public/tournaments/match_side_select", match: match, side: :away, form_id: form_id %></div>
</div>
<div class="tournament-match-row__score">
<span class="tournament-match-row__label"><%= t("tournaments.hub.result") %></span>
<% if match.played? || match.result_status.to_s.start_with?("walkover") %>
<p data-swap-played-score><%= match.home_score %><%= match.away_score %></p>
<% else %>
<span class="tournament-match-form__score">
<%= number_field_tag :home_score, match.home_score, id: "home_score_#{match.id}", form: form_id, data: { swap_score: "home" } %>
<span></span>
<%= number_field_tag :away_score, match.away_score, id: "away_score_#{match.id}", form: form_id, data: { swap_score: "away" } %>
</span>
<% end %>
</div>
</div>
<div class="tournament-match-form__actions tournament-match-row__actions">
<%= submit_tag t("tournaments.hub.save_match"), form: form_id, class: "btn btn-secondary tournament-match-form__save" %>
<% if match.deletable? %>
<%= button_to t("matches.index.delete"), public_tournament_match_path(@tournament, match),
method: :delete, class: "btn btn-secondary tournament-match-form__save",
form: { class: "tournament-match-delete-form", data: { turbo_confirm: match.matchup_label } } %>
<% end %>
</div>
<% else %>
<div class="tournament-match-row__field">
<span class="tournament-match-row__label"><%= t("tournaments.hub.datetime") %></span>
<p class="tournament-match-row__phase"><%= match.scheduled_at ? l(match.scheduled_at, format: :short) : "—" %></p>
</div>
<div class="tournament-match-row__field">
<span class="tournament-match-row__label"><%= t("tournaments.hub.court") %></span>
<p class="tournament-match-row__phase"><%= match.court || "—" %></p>
</div>
<div class="tournament-match-row__field tournament-match-row__field--phase">
<span class="tournament-match-row__label"><%= t("tournaments.hub.round") %></span>
<p class="tournament-match-row__phase"><%= tournament_phase_label(match) %></p>
</div>
<div class="tournament-match-row__sides">
<div class="tournament-match-row__side">
<span class="tournament-match-row__label"><%= t("tournaments.hub.home") %></span>
<%= tournament_team_chip(match.home_participant, name: match.home_display_name) %>
</div>
<div class="tournament-match-swap-col" aria-hidden="true"></div>
<div class="tournament-match-row__side">
<span class="tournament-match-row__label"><%= t("tournaments.hub.away") %></span>
<%= tournament_team_chip(match.away_participant, name: match.away_display_name) %>
</div>
<div class="tournament-match-row__score">
<span class="tournament-match-row__label"><%= t("tournaments.hub.result") %></span>
<p>
<% if match.home_score.present? %>
<%= match.home_score %><%= match.away_score %>
<% else %>
<% end %>
</p>
</div>
</div>
<% end %>
</article>
<% end %>
</div>
<% else %>
<p class="tournament-hub-hint" style="margin-top:16px"><%= t("tournaments.hub.no_matches") %></p>
<% end %>
<% if @writable %>
<details class="tournament-schedule-extra">
<summary><%= t("tournaments.hub.schedule_another") %></summary>
<%= form_with url: public_tournament_matches_path(@tournament), method: :post, html: { class: "tournament-form", style: "margin-top:16px" } do %>
<div class="tournament-form__field">
<%= label_tag "match[home_participant_id]", t("tournaments.hub.home") %>
<%= select_tag "match[home_participant_id]",
options_from_collection_for_select(@participants, :id, :name), include_blank: t("tournaments.tbd") %>
</div>
<div class="tournament-form__field">
<%= label_tag "match[away_participant_id]", t("tournaments.hub.away") %>
<%= select_tag "match[away_participant_id]",
options_from_collection_for_select(@participants, :id, :name), include_blank: t("tournaments.tbd") %>
</div>
<div class="tournament-form__field">
<%= label_tag "match[court]", t("tournaments.hub.court") %>
<%= select_tag "match[court]", options_for_select(@tournament.court_list) %>
</div>
<div class="tournament-form__field">
<%= label_tag "match[scheduled_at]", t("tournaments.hub.datetime") %>
<%= datetime_local_field_tag "match[scheduled_at]", nil, required: true %>
</div>
<% if @groups.any? %>
<div class="tournament-form__field">
<%= label_tag "match[tournament_group_id]", t("tournaments.hub.group") %>
<%= select_tag "match[tournament_group_id]",
options_from_collection_for_select(@groups, :id, :name), include_blank: true %>
</div>
<% end %>
<% if @rounds.any? %>
<div class="tournament-form__field">
<%= label_tag "match[tournament_round_id]", t("tournaments.hub.round") %>
<%= select_tag "match[tournament_round_id]",
options_from_collection_for_select(@rounds, :id, :name), include_blank: t("tournaments.hub.no_round") %>
</div>
<% end %>
<div class="tournament-form__actions">
<%= submit_tag t("tournaments.hub.schedule_match"), class: "btn btn-primary" %>
</div>
<% end %>
</details>
<% end %>
</div>