Snellisci l'invito a trasmettere e invia l'email automatica.
Il form invito è sulla pagina squadra, genera il link e manda la mail; in caso di errore SMTP resta la copia manuale. Co-authored-by: Cursor <cursoragent@cursor.com>
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>
|
||||
|
||||
Reference in New Issue
Block a user