{{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. */}}
{{/* v0.319.0 — „BELEPES AZ ALKALMAZASBA": the name and the password of the app's first login, side by side. The values are fetched on demand (R-254, R-709); the page learns only whether the box holds one (app_login.go), and a field it holds none for is a sentence, not an eye. */}} {{if .LoginFields}}

{{T "app_page.login_title"}}

{{T "app_page.login_desc"}}

{{end}} {{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}} {{/* „CIM ES KULCSOK" (v0.319.0) — what was set at install, as rows. The hint that says they cannot be changed sits under the title it is about, not at the bottom of the tab. The domain, the subdomain and the data folder are the „Cim" and „Tarhely" rows; the login is the panel above; everything else is a row here (app_login.go appSettingRows). */}}

{{T "app_page.address_and_keys"}}

{{T "app_page.installed_readonly"}}

{{if .EffectiveSubdomain}}
{{T "app_page.address"}}
{{.EffectiveSubdomain}}.{{.Domain}}
{{end}} {{if .CurrentHDDPath}}
{{T "deploy.tarhely"}}
{{if .CurrentHDDPathMissing}}{{T "deploy.nem_elerheto"}}{{else if .CurrentHDDLabel}}{{.CurrentHDDLabel}}{{else}}{{.CurrentHDDPath}}{{end}}
{{end}} {{- range .SettingsRows}}
{{.Label}}
{{- if .OnDemand}}
{{- else}}
{{.Value}}
{{- end}}
{{- end}}
{{if .InitialCreds}} {{end}} {{template "app_press_script" .}}
{{/* .app-page */}} {{template "layout_end" .}} {{end}}