<% content_for :body_class, "admin-body" %>
<%= t("admin.dashboard.kpi.active_sessions") %>
<%= @stats[:active_sessions] %>
<%= t("admin.dashboard.kpi.active_sessions_sub") %>
<%= t("admin.dashboard.kpi.today") %>
<%= @stats[:sessions_today] %>
<%= t("admin.dashboard.kpi.today_sub", duration: format_duration_minutes(@stats[:stream_minutes_today])) %>
<%= t("admin.dashboard.kpi.month") %>
<%= @stats[:sessions_month] %>
<%= t("admin.dashboard.kpi.month_sub", duration: format_duration_minutes(@stats[:stream_minutes_month])) %>
<%= t("admin.dashboard.kpi.teams") %>
<%= @stats[:teams_count] %>
<%= t("admin.dashboard.kpi.teams_sub", count: @stats[:users_count]) %>
<%= t("admin.dashboard.kpi.cpu") %>
<%= @host[:cpu] %>%
<%= t("admin.dashboard.kpi.cpu_sub", one: @host[:load_avg]["1m"], five: @host[:load_avg]["5m"], fifteen: @host[:load_avg]["15m"]) %>
<%= t("admin.dashboard.kpi.ram") %>
<%= @host[:memory][:used_percent] %>%
<%= t("admin.dashboard.kpi.ram_sub", used: format_bytes(@host[:memory][:used_bytes]), total: format_bytes(@host[:memory][:total_bytes])) %>
<%= t("admin.dashboard.kpi.network") %>
<%= format_bytes(@host[:network][:total_bytes]) %>
<%= t("admin.dashboard.kpi.network_sub", tx: format_bytes(@host[:network][:tx_bytes_total]), rx: format_bytes(@host[:network][:rx_bytes_total])) %>
<%= t("admin.dashboard.kpi.recordings") %>
<%= @stats[:recordings_ready] %>
<%= t("admin.dashboard.kpi.recordings_sub", count: @stats[:recordings_count]) %>

<%= t("admin.dashboard.charts.cpu") %>

<%= t("admin.dashboard.charts.ram") %>

<%= t("admin.dashboard.ops_panel.title") %>

<% critical = Ops::Incident.critical_open.count %> <% warnings = Ops::Incident.open.where(severity: "warning").count %> <% if critical.positive? %>

<%= t("admin.dashboard.ops_panel.critical", count: critical) %> — <%= link_to t("admin.dashboard.ops_panel.view_dashboard"), admin_ops_path %>

<% elsif warnings.positive? %>

<%= t("admin.dashboard.ops_panel.warnings", count: warnings) %> — <%= link_to t("admin.dashboard.ops_panel.dashboard_link"), admin_ops_path %>

<% else %>

<%= t("admin.dashboard.ops_panel.none_html", link: link_to(t("admin.dashboard.ops_panel.dashboard_link"), admin_ops_path)) %>

<% end %>

<%= t("admin.dashboard.concurrency_panel.title") %>

<% if @concurrency_violation_lookback.positive? %>

<%= t("admin.dashboard.concurrency_panel.count", count: @concurrency_violation_lookback) %> — <%= link_to t("admin.dashboard.concurrency_panel.view_all"), admin_stream_concurrency_violations_path %>

<%= render "admin/stream_concurrency_violations/table", violations: @recent_concurrency_violations, empty_key: "admin.dashboard.concurrency_panel.none" %> <% else %>

<%= t("admin.dashboard.concurrency_panel.none_html", link: link_to(t("admin.dashboard.concurrency_panel.view_all"), admin_stream_concurrency_violations_path)) %>

<% end %>

<%= t("admin.dashboard.disk.system_title") %>

<% root = @host[:disk][:root] %> <% if root[:total_bytes] %>
<%= root[:path] %><%= format_bytes(root[:used_bytes]) %> / <%= format_bytes(root[:total_bytes]) %>

<%= t("admin.dashboard.disk.free_label", free: format_bytes(root[:free_bytes]), percent: root[:used_percent]) %>

<% else %>

<%= t("admin.dashboard.disk.not_available") %>

<% end %>

<%= t("admin.dashboard.disk.recordings_title") %>

<% rec = @host[:disk][:recordings] %> <% if rec[:total_bytes] %>
<%= rec[:path] %><%= format_bytes(rec[:used_bytes]) %> / <%= format_bytes(rec[:total_bytes]) %>
<% if rec[:dir_size_bytes] %>

<%= t("admin.dashboard.disk.recordings_content", size: format_bytes(rec[:dir_size_bytes])) %>

<% end %>
<% else %>

<%= t("admin.dashboard.disk.recordings_not_mounted", path: Admin::HostMetrics::RECORDINGS_PATH) %>

<% end %>

<%= t("admin.dashboard.sessions.title") %>

<% if @active_sessions.any? %> <% @active_sessions.each do |s| %> <% end %>
<%= t("admin.dashboard.sessions.table.match") %> <%= t("admin.dashboard.sessions.table.status") %> <%= t("admin.dashboard.sessions.table.client") %> <%= t("admin.dashboard.sessions.table.ingest") %> <%= t("admin.dashboard.sessions.table.start") %> <%= t("admin.dashboard.sessions.table.link") %>
<%= s.match.team.name %> vs <%= s.match.opponent_name %> <%= s.status %> <%= admin_session_client_summary(s) %> <%= render "admin/sessions/ingest_cell", session: s %> <%= s.started_at&.strftime("%d/%m %H:%M") || t("admin.common.dash") %> <%= link_to t("admin.dashboard.sessions.detail"), admin_session_path(s) %> <%= button_to t("admin.dashboard.sessions.stop"), stop_admin_session_path(s), method: :post, class: "admin-btn admin-btn--danger admin-btn--sm", form: { data: { turbo_confirm: t("admin.dashboard.sessions.stop_confirm") } } %>
<% else %>

<%= t("admin.dashboard.sessions.none") %>

<% end %>

<%= t("admin.dashboard.teams.title") %>

<% if @stats[:teams_count] > @teams.size %>

<%= link_to t("admin.dashboard.teams.view_all", count: @stats[:teams_count]), admin_clubs_path %>

<% end %>