Completa i18n IT/EN/FR/DE/ES su sito pubblico, area autenticata e admin.
Tutte le view marketing, legali, viewer, dashboard e admin usano t(); mailer utente-facing e flash localizzati; admin con LocaleResolver e selettore lingua. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2,30 +2,30 @@
|
||||
|
||||
<section class="kpi-grid">
|
||||
<div class="kpi-card <%= @summary[:open_critical].positive? ? 'kpi-card--danger' : 'kpi-card--accent' %>">
|
||||
<div class="kpi-label">Critici aperti</div>
|
||||
<div class="kpi-label"><%= t("admin.ops.kpi.critical") %></div>
|
||||
<div class="kpi-value"><%= @summary[:open_critical] %></div>
|
||||
</div>
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">Warning aperti</div>
|
||||
<div class="kpi-label"><%= t("admin.ops.kpi.warning") %></div>
|
||||
<div class="kpi-value"><%= @summary[:open_warning] %></div>
|
||||
</div>
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">Totale aperti</div>
|
||||
<div class="kpi-label"><%= t("admin.ops.kpi.total") %></div>
|
||||
<div class="kpi-value"><%= @summary[:open_total] %></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="panel" style="margin-bottom:1.5rem">
|
||||
<h2>Incidenti aperti</h2>
|
||||
<h2><%= t("admin.ops.open.title") %></h2>
|
||||
<% if @open_incidents.any? %>
|
||||
<table class="admin-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Severità</th>
|
||||
<th>Tipo</th>
|
||||
<th>Titolo</th>
|
||||
<th>Occ.</th>
|
||||
<th>Ultimo</th>
|
||||
<th><%= t("admin.ops.open.table.severity") %></th>
|
||||
<th><%= t("admin.ops.open.table.kind") %></th>
|
||||
<th><%= t("admin.ops.open.table.title") %></th>
|
||||
<th><%= t("admin.ops.open.table.occurrences") %></th>
|
||||
<th><%= t("admin.ops.open.table.last_seen") %></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -44,26 +44,32 @@
|
||||
<td class="muted"><%= inc.last_seen_at&.strftime("%d/%m %H:%M") %></td>
|
||||
<td class="admin-actions">
|
||||
<% unless inc.status == 'acknowledged' %>
|
||||
<%= button_to "Preso in carico", acknowledge_admin_op_path(inc), method: :post, class: "admin-btn admin-btn--sm" %>
|
||||
<%= button_to t("admin.ops.actions.acknowledge"), acknowledge_admin_op_path(inc), method: :post, class: "admin-btn admin-btn--sm" %>
|
||||
<% end %>
|
||||
<%= button_to "Risolvi", resolve_admin_op_path(inc), method: :post, class: "admin-btn admin-btn--sm" %>
|
||||
<%= button_to "Mute 24h", mute_admin_op_path(inc), method: :post, class: "admin-btn admin-btn--sm admin-btn--outline" %>
|
||||
<%= button_to t("admin.ops.actions.resolve"), resolve_admin_op_path(inc), method: :post, class: "admin-btn admin-btn--sm" %>
|
||||
<%= button_to t("admin.ops.actions.mute"), mute_admin_op_path(inc), method: :post, class: "admin-btn admin-btn--sm admin-btn--outline" %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% else %>
|
||||
<p class="empty">Nessun incidente aperto. La piattaforma risulta sana.</p>
|
||||
<p class="empty"><%= t("admin.ops.open.none") %></p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<h2>Risolti (ultimi 30 giorni)</h2>
|
||||
<h2><%= t("admin.ops.resolved.title") %></h2>
|
||||
<% if @resolved_incidents.any? %>
|
||||
<table class="admin-table">
|
||||
<thead>
|
||||
<tr><th>Severità</th><th>Tipo</th><th>Titolo</th><th>Occ.</th><th>Risolto</th></tr>
|
||||
<tr>
|
||||
<th><%= t("admin.ops.open.table.severity") %></th>
|
||||
<th><%= t("admin.ops.open.table.kind") %></th>
|
||||
<th><%= t("admin.ops.open.table.title") %></th>
|
||||
<th><%= t("admin.ops.open.table.occurrences") %></th>
|
||||
<th><%= t("admin.ops.resolved.table.resolved_at") %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @resolved_incidents.each do |inc| %>
|
||||
@@ -78,6 +84,6 @@
|
||||
</tbody>
|
||||
</table>
|
||||
<% else %>
|
||||
<p class="empty">Nessun incidente risolto di recente.</p>
|
||||
<p class="empty"><%= t("admin.ops.resolved.none") %></p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user