{{define "dashboard"}} {{template "layout_start" .}}
{{.RunningCount}}
{{T "dashboard.futo_alkalmazas"}}
{{.StoppedCount}}
{{T "dashboard.leallitva"}}
{{.TotalCount}}
{{T "dashboard.osszes_alkalmazas"}}
{{if .SystemInfo.TotalMemMB}}
{{T "dashboard.memoria"}} {{fmtMB .SystemInfo.UsedMemMB}} / {{fmtMB .SystemInfo.TotalMemMB}} ({{printf "%.0f" .SystemInfo.MemPercent}}%)
CPU {{printf "%.0f" .SystemInfo.CPUPercent}}%
Load: {{fmtLoad .SystemInfo.LoadAvg1}} / {{fmtLoad .SystemInfo.LoadAvg5}} / {{fmtLoad .SystemInfo.LoadAvg15}}
{{if .SystemInfo.TemperatureCelsius}}
{{T "dashboard.homerseklet"}} {{fmtTemp .SystemInfo.TemperatureCelsius}}
{{end}}
{{/* R-259: the figures and the bar render ONLY when the measurement succeeded. A statfs failure used to leave every number at zero, and usageColor(0) is "nominal" — so a disk we could not read was drawn as a healthy empty one. Same reasoning as the off-site card: a 0%-wide bar over an unmeasured store is a picture of emptiness, and a picture is a claim. */}} {{if not .SystemInfo.DiskKnown}}
{{T "common.rendszer_gyoker"}} — {{T "dashboard.nem_ismert"}}
{{T "dashboard.a_tarhely_merete_most_nem"}}
{{else}} {{$duc := usageColor .SystemInfo.DiskPercent}}
{{T "common.rendszer_gyoker"}} {{fmtGB .SystemInfo.DiskUsedGB}} / {{fmtGB .SystemInfo.DiskTotalGB}} ({{printf "%.0f" .SystemInfo.DiskPercent}}%)
{{if eq $duc "warn"}}
{{T "dashboard.fogyoban_a_hely"}}
{{else if eq $duc "crit"}}
{{T "dashboard.kritikusan_keves_hely"}}
{{end}}
{{end}} {{range .StorageBars}} {{if .Disconnected}}
{{.Label}} — {{T "common.levalasztva"}}
{{else}} {{$uc := usageColor .Percent}}
{{.Label}} {{fmtGB .UsedGB}} / {{fmtGB .TotalGB}} ({{printf "%.0f" .Percent}}%)
{{if eq $uc "warn"}}
{{T "dashboard.fogyoban_a_hely"}}
{{else if eq $uc "crit"}}
{{T "dashboard.kritikusan_keves_hely"}}
{{end}}
{{end}} {{end}}
{{if .SettingsWarning}}
● {{.SettingsWarning}}
{{end}} {{if .DiskWarnings}}
{{range .DiskWarnings}}
● {{.Message}} {{if .Link}}{{.LinkText}} →{{end}}
{{end}}
{{end}}
{{end}}

{{T "dashboard.lemezek_allapota"}}

{{if .DiskHealthRows}} {{else}}

{{T "dashboard.nincs_adat"}}

{{end}}
{{if .BackupEnabled}}

{{T "dashboard.biztonsagi_mentes"}}

{{if .BackupStatus}}
{{T "dashboard.utolso_mentes"}} {{if .BackupStatus.Success}} {{fmtTime .BackupStatus.LastRun}} {{else}} {{T "dashboard.sikertelen"}} {{end}}
{{else}}
{{T "dashboard.utolso_mentes"}} {{T "dashboard.meg_nem_futott"}}
{{end}} {{if .DBDumpStatus}}
{{T "dashboard.adatbazisok"}} {{T "dashboard.mentve"}}
{{end}} {{/* Cross-drive ("2. mentés") moved to the host agent in slice 8C — the dashboard handler no longer provides CrossDrive* fields, so the old block was a dead reference that 500'd the dashboard (gt 0). Removed in v0.41.2. */}}
{{end}}

{{T "dashboard.telepitett_alkalmazasok"}}

{{range .Stacks}} {{$im := infraMeta .Name}} {{if $im}} {{template "app_list_row" dict "Slug" .Meta.Slug "Name" $im.DisplayName "Secondary" $im.Description "RowClass" (printf "stack-state-%s" (stateColor .State)) "Href" (appHref .Meta.Slug) "FallbackIcon" "/static/infra-logo.svg"}} {{else}} {{template "app_list_row" dict "Slug" .Meta.Slug "Name" .Meta.DisplayName "Secondary" .Meta.Description "RowClass" (printf "stack-state-%s" (stateColor .State)) "Href" (appHref .Meta.Slug)}} {{end}} {{stateLabel .State}} {{if .Orphaned}}{{T "common.elavult"}}{{end}} {{template "meta_badge" (lifecycleBadge .Meta)}} {{$ms := index $.MissingStorage .Name}}{{if $ms}}{{T "dashboard.hianyzo_tarhely"}}{{end}} {{if $.OOMKilled}}{{if index $.OOMKilled .Name}}{{T "dashboard.memoria_elfogyott"}}{{end}}{{end}} {{$ns := index $.NetworkStubs .Name}}{{if $ns}}{{T "dashboard.halozati_tarhely_hibas_az_alkalmazas"}}{{end}} {{$nw := index $.NetworkWarnings .Name}}{{if $nw}}{{T "dashboard.halozati_tarhely_nem_elerheto"}}{{end}} {{if and .Deployed (routeUnpublished .State)}}{{T "dashboard.url_nem_elerheto"}}{{end}} {{if .Protected}} {{T "dashboard.vedett"}} {{/* Customer link ONLY for Linked infra (filebrowser → files.) — cloudflared/traefik have no customer UI (guarded by render test). */}} {{if and $im $im.Linked}} {{$subdomain := index $.Subdomains .Name}} {{if $subdomain}}{{T "dashboard.megnyitas"}} {{end}} {{end}} {{if isOperational .State}} {{end}} {{else if not .Deployed}} {{T "dashboard.telepites"}} {{else}} {{if isOperational .State}} {{$subdomain := index $.Subdomains .Name}} {{if $subdomain}}{{T "dashboard.megnyitas"}} {{end}} {{else}} {{if not .Orphaned}}{{end}} {{end}} {{T "dashboard.naplo"}} {{if .Orphaned}}{{end}} {{end}} {{template "app_list_row_end"}} {{else}}

{{T "dashboard.nincs_elerheto_alkalmazas"}}

{{end}}
{{template "layout_end" .}} {{end}}