{{define "app_settings"}} {{template "layout_start" .}}
{{template "app_shell_start" .}} {{/* „BEALLITASOK" — the tab an installed app opens on. Order, and each step of it is a decision: 1. Mukodes — Start / Restart / Stop. They used to sit in the page header and read as menu buttons; a state change is an action on the app, so it is a card. 2. what the app still wants FROM the household — the setup gate, an after-start value, the sign-up window, the first login. Above the form, because an app that is waiting on the household is not asking them to review settings. 3. the settings themselves — generated values, install-time values (read-only), the optional ones, e-mail, integrations, geo. „Adatok es mentes" holds everything about the FILES, including the backup card that used to sit on this page. */}}
{{if .FlashSuccess}}
{{.FlashSuccess}}
{{end}} {{if .FlashError}}
{{.FlashError}}
{{end}} {{/* 1. WHAT THE APP IS WAITING FOR — the generic after-start card (Part 4, D2 = A). FIRST on the tab (v0.316.0): a household opening a Plex that wants its claim code should meet the code box, not a Restart button. It is the page's one BLUE callout — a request, never a fault, so never amber. The catalog says a value is asked after the The catalog says a value is asked after the app starts and supplies its label; the ACTION is Go code in after_start.go, keyed by slug and env var. A field with no registered action renders nothing and POSTs 404 — the catalog cannot make the box run anything. */}} {{- range .AfterStartFields}}

{{T "app_page.after_start_title"}}

{{if .Description}}

{{.Description}}

{{end}}
{{- end}} {{/* 2. MUKODES. Stop asks first — it takes the app away from everyone in the house, and the protected stacks refuse it server-side regardless (traefik, cloudflared, the controller itself and always samba). */}}

{{T "app_page.mukodes"}}

{{stateLabel .Stack.State}}

{{if isOperational .Stack.State}} {{else}} {{end}}
{{/* 3. THE REST OF WHAT THE APP WANTS FROM THE HOUSEHOLD. */}} {{- if .InstallHoldClosed}}

{{T "app_info.install_hold_title"}}

{{T "app_info.install_hold_closed"}}

{{- end}} {{- if .SetupGateClosed}}

{{T "app_info.setup_gate_title"}}

{{T "app_info.setup_gate_closed"}}

{{- if .SignupNative}}

{{T "app_info.restarts_once"}}

{{- end}} {{- if .SetupGateHasProbe}}

{{T "app_info.setup_gate_probe"}}

{{- else}}

{{T "app_info.setup_gate_button_hint"}}

{{- end}}
{{- end}} {{- if .CloseSignupOffered}}

{{T "app_info.signup_title"}}

{{T "app_info.close_signup_text"}}

{{- if .SignupNative}}

{{T "app_info.restarts_once"}}

{{- end}}
{{- end}} {{- if or .SignupClosed .SignupOpenUntil}}

{{T "app_info.signup_title"}}

{{- if .SignupOpenUntil}}

{{T "app_info.signup_open_until"}} {{.SignupOpenUntil}}

{{- else}}

{{T "app_info.signup_closed"}}

{{- end}} {{- if .AppInfo.AddPeople}}

{{T "app_info.signup_add_how"}} {{.AppInfo.AddPeople}}

{{- end}} {{- if .SignupNativeFailed}}

{{T "app_info.signup_native_failed"}}

{{- end}} {{- if .SignupNativeOpenFailed}}

{{T "app_info.signup_native_open_failed"}}

{{- end}} {{- if .SignupClosed}} {{- if .SignupNative}}

{{T "app_info.signup_window_restart"}}

{{- end}} {{- end}}
{{- end}} {{/* The logins, each already its own guarded card on the details page. */}}
{{if .InitialCreds}}

{{T "app_info.kezdeti_belepesi_adatok"}}

{{if .InitialCreds.Username}} {{end}} {{if .InitialCredsOperatorSet}} {{else}} {{end}}
{{T "app_info.felhasznalonev"}} {{.InitialCreds.Username}}
{{T "common.jelszo"}} {{T "app_info.az_uzemelteto_allitotta_be"}}
{{T "common.jelszo"}} ••••••••••••
{{if .InitialCreds.Note}}

{{.InitialCreds.Note}}

{{end}} {{if not .InitialCredsOperatorSet}}

{{T "app_info.az_elso_bejelentkezes_utan_azonnal"}}

{{end}}
{{end}} {{if and .AppInfo.DefaultCreds (not .DefaultLoginReplaced)}}

{{T "app_info.alapertelmezett_belepes"}}

{{.AppInfo.DefaultCreds}}

{{if .KnownLoginLine}}

{{.KnownLoginLine}}

{{else}}

{{T "app_info.az_elso_bejelentkezes_utan_azonnal_2"}}

{{end}} {{- if and .Stack.Deployed .KnownLoginLine}} {{- end}}
{{end}}
{{/* 3. THE SETTINGS. v0.316.0: the „this app is already installed, the settings below are read-only" BANNER is gone — it was a box saying what a one-line hint says, on a tab the household reached by pressing „Beallitasok" on an installed app. The hint lives with the fields it is about, at the bottom of this tab. */}} {{if .StorageInfo}}

{{T "deploy.adattarolas"}}

{{T "deploy.tarhely"}} {{.StorageInfo.Label}} ({{.StorageInfo.Path}})
{{if .StorageInfo.DataSizeHuman}}
{{T "deploy.adatmeret"}} {{numText .StorageInfo.DataSizeHuman}}
{{end}} {{if .StorageInfo.FreeHuman}}
{{T "deploy.szabad_hely"}} {{T "deploy.szabad"}}
{{end}}
{{if .OtherStoragePaths}} {{T "deploy.mozgatas_masik_tarolora"}} {{end}}
{{end}} {{if .StaleData}}

{{T "deploy.korabbi_adatok"}}

{{T "deploy.az_alkalmazas_adatainak_masolata_megtala"}}

{{range .StaleData}}
{{T "deploy.tarhely"}} {{.Label}} ({{.Path}})
{{T "deploy.meret"}} {{numText .SizeHuman}}
{{T "deploy.mappak"}} {{range .Mounts}}{{.}}
{{end}}
{{end}}
{{end}} {{if .HasIntegrations}}

{{T "deploy.integraciok"}}

{{T "deploy.mas_telepitett_alkalmazasokkal_valo_ossz"}}

{{range .Integrations}}
{{.Label}}

{{.Description}}

{{if not .TargetDeployed}} {{T "deploy.nincs_telepitve"}} {{else if not .TargetRunning}} {{T "deploy.celalkalmazas_leallitva"}} {{else if eq .Status "error"}} {{T "common.hiba"}} {{else if .Enabled}} {{T "deploy.aktiv"}} {{end}}
{{end}}
{{end}} {{if .GeoGlobalEnabled}}

{{T "deploy.foldrajzi_korlatozas"}}

{{T "deploy.az_alkalmazas_egyeni_orszagkorlatozas_ne"}}

{{end}} {{if .HasOptionalConfig}}

{{T "deploy.opcionalis_beallitasok"}}

{{range .OptionalConfig}}

{{.Group}}

{{if .Description}}

{{.Description}}

{{end}}
{{range .Fields}}
{{if .HelpText}}

{{.HelpText}}

{{end}} {{if .HelpURL}}

{{T "deploy.regisztracios_utmutato"}}

{{end}} {{if eq .Type "secret_input"}} {{/* R-255 (v0.308.0): a stored secret is NOT in the page; it is fetched on demand like the auto-generated ones (R-254). A blank field that was never revealed is not sent, so saving other fields keeps it. */}} {{$set := index $.CurrentValues .EnvVar}}
{{if $set}}{{end}}
{{else}} {{end}}
{{end}}
{{end}}
{{end}} {{if .AppEmailSupported}}

{{T "deploy.email_kuldes"}}

{{T "deploy.ez_az_alkalmazas_tud_emailt"}}

{{if not .AppEmailGlobalOn}}

{{T "deploy.az_alkalmazas_email_jelenleg_ki"}}

{{end}}
{{$.CSRFField}}
{{T "deploy.a_mentes_ujrainditja_az_alkalmazast"}}
{{end}}

{{T "app_page.address_and_keys"}}

{{if .EffectiveSubdomain}}
{{T "app_page.address"}}
{{.EffectiveSubdomain}}.{{.Domain}}
{{end}}
{{template "app_deploy_fields" .}}

{{T "app_page.installed_readonly"}}

{{if .InitialCreds}} {{end}} {{template "app_press_script" .}}
{{/* .app-page */}} {{template "layout_end" .}} {{end}}