Permette upload da portale e app con ereditarietà partita→squadra→società, generazione MP4 via ffmpeg e distribuzione su home lab e nodi CPX per pause e assenza segnale. Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
2.2 KiB
ERB
56 lines
2.2 KiB
ERB
<% record = local_assigns[:record] %>
|
|
<% show_inherit_hint = local_assigns[:show_inherit_hint] %>
|
|
<% can_upload = local_assigns.fetch(:can_upload, false) %>
|
|
<% cover_src = record.effective_cover_url.presence || Streams::CoverResolver::DEFAULT_COVER_URL %>
|
|
|
|
<fieldset class="branding-fields cover-fields">
|
|
<legend><%= t("club.branding.cover_legend") %></legend>
|
|
|
|
<% if show_inherit_hint %>
|
|
<p class="branding-hint"><%= t("club.branding.cover_inherit_hint") %></p>
|
|
<% end %>
|
|
|
|
<p class="branding-hint"><%= t("club.branding.cover_hint") %></p>
|
|
|
|
<div class="branding-logo-block cover-preview-block">
|
|
<%= label_tag "branding[cover_image]", t("club.branding.cover_file_label") %>
|
|
<div class="branding-logo-preview branding-cover-preview" data-branding-cover-preview>
|
|
<%= image_tag cover_src,
|
|
alt: t("club.branding.cover_preview_alt"),
|
|
class: "branding-cover-preview__img",
|
|
data: { branding_cover_img: true } %>
|
|
</div>
|
|
|
|
<% if can_upload %>
|
|
<%= file_field_tag "branding[cover_image]",
|
|
accept: "image/png,image/jpeg,image/webp",
|
|
data: { branding_cover_file: true },
|
|
class: "branding-file-input" %>
|
|
<% if record.cover_image_attached? %>
|
|
<label class="checkbox-label cover-remove-label">
|
|
<%= check_box_tag "remove_cover", "1", false, id: "remove_cover_#{record.model_name.param_key}" %>
|
|
<%= t("club.branding.cover_remove_label") %>
|
|
</label>
|
|
<% end %>
|
|
<% else %>
|
|
<p class="muted"><%= t("club.branding.cover_requires_full") %></p>
|
|
<%= link_to t("club.branding.cover_see_plans"), public_prezzi_path, class: "btn btn-secondary btn-sm" %>
|
|
<% end %>
|
|
</div>
|
|
</fieldset>
|
|
|
|
<script>
|
|
(function () {
|
|
var input = document.querySelector("[data-branding-cover-file]");
|
|
var img = document.querySelector("[data-branding-cover-img]");
|
|
if (!input || !img) return;
|
|
input.addEventListener("change", function () {
|
|
var file = input.files && input.files[0];
|
|
if (!file) return;
|
|
var reader = new FileReader();
|
|
reader.onload = function (e) { img.src = e.target.result; };
|
|
reader.readAsDataURL(file);
|
|
});
|
|
})();
|
|
</script>
|