Merge branch 'main' into collaudo
Porta in collaudo l'invito trasmissione con email automatica.
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
<% recordings = local_assigns[:recordings] %>
|
||||
<% entitlements = local_assigns[:entitlements] %>
|
||||
|
||||
<section class="team-streaming-staff">
|
||||
<section class="team-streaming-staff" id="responsabili-trasmissione">
|
||||
<% if can_manage %>
|
||||
<% if owner_membership&.staff_kind.blank? %>
|
||||
<div class="card team-streaming-staff__self">
|
||||
@@ -51,12 +51,34 @@
|
||||
<% else %>
|
||||
<p class="muted">
|
||||
<%= t("team.streaming_staff.no_staff") %>
|
||||
<% if can_manage %><%= link_to t("team.streaming_staff.invite_someone"), public_team_invite_path(team) %>.<% end %>
|
||||
<% if can_manage %><%= link_to t("team.streaming_staff.invite_someone"), "#invita-trasmissione" %>.<% end %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<% if can_manage %>
|
||||
<div class="card team-invite-form" id="invita-trasmissione">
|
||||
<h2><%= t("team.streaming_staff.invite_form_heading") %></h2>
|
||||
<p class="muted team-invite-form__hint"><%= t("team.streaming_staff.invite_form_hint") %></p>
|
||||
<%= form_with url: public_team_invite_path(team), method: :post, class: "team-invite-form__fields" do %>
|
||||
<%= hidden_field_tag :staff_kind, "transmission" %>
|
||||
<%= label_tag :email, t("team.invite.email_label") %>
|
||||
<%= email_field_tag :email, params[:email], required: true, autocomplete: "email", placeholder: "nome@email.it" %>
|
||||
<%= submit_tag t("team.invite.submit"), class: "btn btn-primary" %>
|
||||
<% end %>
|
||||
|
||||
<% if flash[:invite_url].present? %>
|
||||
<div class="team-invite-link" id="invito-generato">
|
||||
<p class="team-invite-link__title"><%= t("team.invite.share_hint") %></p>
|
||||
<code class="team-invite-link__url" id="team-invite-url"><%= flash[:invite_url] %></code>
|
||||
<button type="button" class="btn btn-secondary team-invite-link__copy" data-copy-target="team-invite-url">
|
||||
<%= t("regia.copy_link") %>
|
||||
</button>
|
||||
<p class="muted team-invite-link__note"><%= t("team.streaming_staff.invite_once_note") %></p>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<h2><%= t("team.streaming_staff.pending_invitations_heading") %></h2>
|
||||
<div class="card">
|
||||
<% if pending_invitations.any? %>
|
||||
@@ -114,3 +136,18 @@
|
||||
</div>
|
||||
<% end %>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
document.querySelectorAll("[data-copy-target]").forEach(function (btn) {
|
||||
btn.addEventListener("click", async function () {
|
||||
var el = document.getElementById(btn.getAttribute("data-copy-target"));
|
||||
if (!el) return;
|
||||
try {
|
||||
await navigator.clipboard.writeText(el.textContent.trim());
|
||||
btn.textContent = <%= raw t("team.streaming_staff.copied").to_json %>;
|
||||
} catch (e) {
|
||||
window.getSelection().selectAllChildren(el);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
<% if @can_manage %>
|
||||
<%= link_to t("club.back_to_club"), public_club_path(@club), class: "btn btn-secondary" %>
|
||||
<%= link_to t("team.details.public_page"), public_team_page_path(@team.slug), class: "btn btn-secondary", target: "_blank", rel: "noopener" %>
|
||||
<%= link_to t("team.details.streaming_managers"), public_team_invite_path(@team), class: "btn btn-secondary" %>
|
||||
<%= link_to t("team.details.streaming_managers"), "#responsabili-trasmissione", class: "btn btn-secondary" %>
|
||||
<% end %>
|
||||
<% if current_user.can_stream_for?(@team) %>
|
||||
<%= link_to t("team.details.schedule_matches"), public_team_matches_path(@team), class: "btn btn-primary" %>
|
||||
|
||||
@@ -1,38 +1,8 @@
|
||||
<%# Pagina legacy: l'invito è sulla pagina dettagli squadra. %>
|
||||
<% content_for :title, t("team.invite.title", name: @team.name) %>
|
||||
<% content_for :robots, "noindex, nofollow" %>
|
||||
|
||||
<div class="wrap" style="padding-top:20px">
|
||||
<h1><%= t("team.invite.heading") %></h1>
|
||||
<p>
|
||||
<%= t("team.invite.assigned_label") %> <strong><%= @entitlements.staff_count_for("transmission") %> / <%= @entitlements.max_staff_transmission || "∞" %></strong>
|
||||
<%= t("team.invite.per_team_note") %>
|
||||
</p>
|
||||
<p class="muted" style="max-width:640px">
|
||||
<%= raw t("team.invite.info") %>
|
||||
</p>
|
||||
|
||||
<% owner_membership = current_user.user_teams.find_by(team: @team) %>
|
||||
<% if owner_membership&.staff_kind.blank? %>
|
||||
<div class="card" style="max-width:520px;margin-bottom:16px">
|
||||
<p style="margin:0 0 12px;color:#aaa;font-size:0.92rem">
|
||||
<%= raw t("team.invite.self_assign_hint_html", email: current_user.email) %>
|
||||
</p>
|
||||
<%= button_to t("team.invite.self_assign_submit"), public_team_assign_self_staff_path(@team), method: :post, params: { staff_kind: "transmission" }, class: "btn btn-primary" %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div class="card" style="max-width:520px">
|
||||
<h2 style="margin-top:0;font-size:1.05rem"><%= t("team.invite.invite_other_heading") %></h2>
|
||||
<%= form_with url: public_team_invite_path(@team), method: :post do %>
|
||||
<%= hidden_field_tag :staff_kind, "transmission" %>
|
||||
<%= label_tag :email, t("team.invite.email_label") %>
|
||||
<%= email_field_tag :email, params[:email], required: true %>
|
||||
<%= submit_tag t("team.invite.submit"), class: "btn btn-primary" %>
|
||||
<% end %>
|
||||
<% if defined?(@invite_url) && @invite_url.present? %>
|
||||
<p style="margin-top:16px"><%= t("team.invite.share_hint") %></p>
|
||||
<code style="word-break:break-all;display:block;background:#0a0a0e;padding:12px;border-radius:8px"><%= @invite_url %></code>
|
||||
<% end %>
|
||||
</div>
|
||||
<p><%= link_to t("team.back_to_details"), public_team_details_path(@team) %></p>
|
||||
<p class="muted"><%= t("team.streaming_staff.invite_form_hint") %></p>
|
||||
<p><%= link_to t("team.back_to_details"), public_team_details_path(@team, anchor: "invita-trasmissione"), class: "btn btn-primary" %></p>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user