Files
MatchLiveTv/backend/app/views/admin/announcements/_form.html.erb
T
eminuxandCursor a07f231417 Permette titolo, testo e link diversi per Android e iOS negli avvisi.
Separa i canali app e mostra il nodo ingest nelle sessioni admin.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 16:09:04 +02:00

126 lines
5.2 KiB
ERB

<%= form_with model: announcement, url: (announcement.persisted? ? admin_announcement_path(announcement) : admin_announcements_path),
method: (announcement.persisted? ? :patch : :post), local: true, class: "admin-form" do |f| %>
<div class="admin-form-row">
<div>
<%= f.label :kind, t("admin.announcements.form.kind") %>
<%= f.select :kind, AppAnnouncement::KINDS.map { |k| [t("admin.announcements.kind.#{k}"), k] } %>
</div>
<div>
<%= f.label :severity, t("admin.announcements.form.severity") %>
<%= f.select :severity, AppAnnouncement::SEVERITIES.map { |k| [t("admin.announcements.severity.#{k}"), k] } %>
</div>
</div>
<div>
<%= f.label :status, t("admin.announcements.form.status") %>
<%= f.select :status, AppAnnouncement::STATUSES.map { |k| [t("admin.announcements.status.#{k}"), k] } %>
</div>
<fieldset class="admin-channels">
<legend><%= t("admin.announcements.form.channels") %></legend>
<label class="admin-checkbox">
<%= f.check_box :show_on_android %>
<span><%= t("admin.announcements.channels.android") %></span>
</label>
<label class="admin-checkbox">
<%= f.check_box :show_on_ios %>
<span><%= t("admin.announcements.channels.ios") %></span>
</label>
<label class="admin-checkbox">
<%= f.check_box :show_on_web_public %>
<span><%= t("admin.announcements.channels.web_public") %></span>
</label>
<label class="admin-checkbox">
<%= f.check_box :show_on_web_private %>
<span><%= t("admin.announcements.channels.web_private") %></span>
</label>
<p class="muted admin-form-hint"><%= t("admin.announcements.form.channels_hint") %></p>
</fieldset>
<div>
<%= f.label :title, t("admin.announcements.form.title") %>
<%= f.text_field :title, required: true, maxlength: 120 %>
</div>
<div>
<%= f.label :body, t("admin.announcements.form.body") %>
<%= f.text_area :body, required: true, rows: 5, maxlength: 2000 %>
</div>
<div>
<%= f.label :action_url, t("admin.announcements.form.action_url") %>
<%= f.url_field :action_url, placeholder: "https://" %>
</div>
<p class="muted admin-form-hint"><%= t("admin.announcements.form.action_url_hint") %></p>
<div>
<%= f.label :action_label, t("admin.announcements.form.action_label") %>
<%= f.text_field :action_label, maxlength: 40 %>
</div>
<fieldset class="admin-channels admin-platform-copy">
<legend><%= t("admin.announcements.form.android_override") %></legend>
<p class="muted admin-form-hint"><%= t("admin.announcements.form.platform_override_hint") %></p>
<div>
<%= f.label :android_title, t("admin.announcements.form.title") %>
<%= f.text_field :android_title, maxlength: 120 %>
</div>
<div>
<%= f.label :android_body, t("admin.announcements.form.body") %>
<%= f.text_area :android_body, rows: 4, maxlength: 2000 %>
</div>
<div>
<%= f.label :android_action_url, t("admin.announcements.form.action_url") %>
<%= f.url_field :android_action_url, placeholder: "https://play.google.com/..." %>
</div>
<div>
<%= f.label :android_action_label, t("admin.announcements.form.action_label") %>
<%= f.text_field :android_action_label, maxlength: 40 %>
</div>
</fieldset>
<fieldset class="admin-channels admin-platform-copy">
<legend><%= t("admin.announcements.form.ios_override") %></legend>
<p class="muted admin-form-hint"><%= t("admin.announcements.form.platform_override_hint") %></p>
<div>
<%= f.label :ios_title, t("admin.announcements.form.title") %>
<%= f.text_field :ios_title, maxlength: 120 %>
</div>
<div>
<%= f.label :ios_body, t("admin.announcements.form.body") %>
<%= f.text_area :ios_body, rows: 4, maxlength: 2000 %>
</div>
<div>
<%= f.label :ios_action_url, t("admin.announcements.form.action_url") %>
<%= f.url_field :ios_action_url, placeholder: "https://apps.apple.com/..." %>
</div>
<div>
<%= f.label :ios_action_label, t("admin.announcements.form.action_label") %>
<%= f.text_field :ios_action_label, maxlength: 40 %>
</div>
</fieldset>
<div class="admin-form-row">
<div>
<%= f.label :starts_at, t("admin.announcements.form.starts_at") %>
<%= f.datetime_field :starts_at, value: announcement.starts_at&.in_time_zone&.strftime("%Y-%m-%dT%H:%M") %>
</div>
<div>
<%= f.label :ends_at, t("admin.announcements.form.ends_at") %>
<%= f.datetime_field :ends_at, value: announcement.ends_at&.in_time_zone&.strftime("%Y-%m-%dT%H:%M") %>
</div>
</div>
<p class="muted admin-form-hint"><%= t("admin.announcements.form.window_hint") %></p>
<label class="admin-checkbox">
<%= f.check_box :dismissible %>
<span><%= t("admin.announcements.form.dismissible") %></span>
</label>
<p class="muted admin-form-hint"><%= t("admin.announcements.form.dismissible_hint") %></p>
<div class="admin-form-actions">
<%= f.submit (announcement.persisted? ? t("admin.announcements.form.submit_update") : t("admin.announcements.form.submit_create")), class: "admin-btn admin-btn--primary" %>
<%= link_to t("admin.announcements.form.cancel"), admin_announcements_path, class: "admin-btn admin-btn--outline" %>
</div>
<% end %>