diff --git a/controller/internal/web/i18n_parity_test.go b/controller/internal/web/i18n_parity_test.go index 996b6f8..4b9af7d 100644 --- a/controller/internal/web/i18n_parity_test.go +++ b/controller/internal/web/i18n_parity_test.go @@ -306,19 +306,43 @@ func renderI18nCase(t *testing.T, s *Server, lang string, c i18nCase) string { // is exactly what the first attempt at this release did, and what the diff caught. if i18nDirectTemplates[c.tmpl] { data["Lang"] = lang - addLangOptions(data, lang, langCookiePath, "/i18n-fixture", "") + // And WITHIN the direct-render set, two shapes again: /recovery is an AUTHENTICATED route, so + // its globe writes the household's setting; /login and /claim are met with no session, so + // theirs writes the visitor's cookie. The fixture has to be the one the real page serves. + if i18nSessionTemplates[c.tmpl] { + addLangOptions(data, lang, "/settings/language", "/i18n-fixture", s.csrfField(r)) + } else { + addLangOptions(data, lang, langCookiePath, "/i18n-fixture", "") + } } else { s.addLanguageData(data, r, lang) } if err := s.templatesFor(lang).ExecuteTemplate(&buf, c.tmpl, data); err != nil { t.Fatalf("%s [%s]: render: %v", c.name, lang, err) } - return relativeAgeRe.ReplaceAllString(buf.String(), "# $1") + return normaliseI18nRender(buf.String()) +} + +// csrfValueRe matches a CSRF field's value. A session CSRF token is random per session, so it can +// never be a fixture value; it is blanked on BOTH sides of every parity comparison, exactly as +// relative ages are. What the fixture still pins is that the field is THERE and which form it is in — +// which is the part that says whether the page posts to the household switch or to /lang. +var csrfValueRe = regexp.MustCompile(`(name="_csrf" value=")[^"]*"`) + +// normaliseI18nRender removes the two things that legitimately differ between two renders of the same +// page: a relative age off the wall clock, and a per-session CSRF token. +func normaliseI18nRender(s string) string { + s = relativeAgeRe.ReplaceAllString(s, "# $1") + return csrfValueRe.ReplaceAllString(s, "${1}CSRF\"") } // i18nDirectTemplates are the templates rendered by executeTemplateLang — the pages a request with no // household session meets. Kept beside the harness that has to branch on it; i18nDirectPages (in // i18n_wiring_test.go) names the same set with one case and an English probe each. +// i18nSessionTemplates are the direct-render templates whose reader is SIGNED IN. /recovery is in the +// authenticated route table; the rest of the direct set is met with no session. +var i18nSessionTemplates = map[string]bool{"recovery": true} + var i18nDirectTemplates = map[string]bool{ "login": true, "claim": true, "recovery": true, "launcher_shared": true, "launcher_share_password": true, "catchall": true, diff --git a/controller/internal/web/i18n_wiring_test.go b/controller/internal/web/i18n_wiring_test.go index 9360200..182bb02 100644 --- a/controller/internal/web/i18n_wiring_test.go +++ b/controller/internal/web/i18n_wiring_test.go @@ -306,10 +306,19 @@ func TestI18nDirectRenderPagesFollowLanguage(t *testing.T) { // The SAME request path the parity harness renders with. Since v0.254.0 the page carries a // language globe whose `back` is the path the visitor is on, so a different path here would // differ from the fixture in one attribute and say nothing about the language. - if err := s.executeTemplateLang(&buf, httptest.NewRequest(http.MethodGet, "/i18n-fixture", nil), p.tmpl, c.data()); err != nil { + // + // And the same SESSION state: /recovery is an authenticated route, so its reader is the + // household and its globe writes their setting; /login and /claim are met with no session. + // Rendering recovery session-less here would compare the real page against a form it never + // serves — the mistake this release already made once, in the parity harness. + req := httptest.NewRequest(http.MethodGet, "/i18n-fixture", nil) + if i18nSessionTemplates[p.tmpl] { + req.AddCookie(&http.Cookie{Name: sessionCookieName, Value: newTestSession(s)}) + } + if err := s.executeTemplateLang(&buf, req, p.tmpl, c.data()); err != nil { t.Fatalf("%s [%s]: %v", p.tmpl, lang, err) } - got := relativeAgeRe.ReplaceAllString(buf.String(), "# $1") + got := normaliseI18nRender(buf.String()) if lang == "hu" { want, err := os.ReadFile(filepath.Join("testdata", "i18n_parity", p.caseName+".html")) if err != nil { diff --git a/controller/internal/web/server.go b/controller/internal/web/server.go index dc8ba6a..572eaca 100644 --- a/controller/internal/web/server.go +++ b/controller/internal/web/server.go @@ -915,17 +915,30 @@ func (s *Server) executeTemplateLang(w io.Writer, r *http.Request, name string, lang := s.langFor(r) if data != nil { data["Lang"] = lang - // v0.254.0: the globe on the pages a VISITOR meets. It posts to /lang, not to the household - // switch, and carries NO CSRF field — there is no session to mint one from, and the handler - // writes only a display cookie in the visitor's own browser (CsrfProtect carries the reasoning). + // v0.254.0: the globe, on a page rendered outside the dashboard chrome. WHICH FORM it posts to + // depends on WHO is reading, and getting that wrong makes the globe do nothing: // - // `back` is the path the visitor is ON, so the switch returns them to it. safeBackPath in the - // handler is what makes that safe to take from an anonymous form. + // * NO SESSION — the sign-in and claim pages. The reader is a visitor: they have no setting + // and may not write the household's, so the globe posts to /lang and their choice lives in + // their own browser. No CSRF field: there is no session to mint one from. + // * WITH A SESSION — /recovery is in the AUTHENTICATED route table; its reader IS the + // household. Their globe must write their SETTING, because langFor deliberately ignores the + // cookie once there is a session — so an anonymous form here would set a cookie nothing + // reads and the button would appear to do nothing. Measured live on demo-hp before this + // branch existed. + // + // Only the language form's own fields are added, never the dashboard chrome R-543 keeps off + // these pages (TestI18nDirectRenderPagesHaveNoAdminChrome still passes: it names CSRFField, + // CSRFToken and the escrow banner, none of which appear here). back := "/" if r != nil && r.URL != nil && r.URL.Path != "" { back = r.URL.Path } - addLangOptions(data, lang, langCookiePath, back, "") + if s.hasSession(r) { + addLangOptions(data, lang, "/settings/language", back, s.csrfField(r)) + } else { + addLangOptions(data, lang, langCookiePath, back, "") + } } return s.templatesFor(lang).ExecuteTemplate(w, name, data) } diff --git a/controller/internal/web/testdata/i18n_parity/app_export.html b/controller/internal/web/testdata/i18n_parity/app_export.html index 2418587..48e4b02 100644 --- a/controller/internal/web/testdata/i18n_parity/app_export.html +++ b/controller/internal/web/testdata/i18n_parity/app_export.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/app_import_bundles.html b/controller/internal/web/testdata/i18n_parity/app_import_bundles.html index 391c93c..08dd829 100644 --- a/controller/internal/web/testdata/i18n_parity/app_import_bundles.html +++ b/controller/internal/web/testdata/i18n_parity/app_import_bundles.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/app_import_empty.html b/controller/internal/web/testdata/i18n_parity/app_import_empty.html index 39b9b6c..b2dfee9 100644 --- a/controller/internal/web/testdata/i18n_parity/app_import_empty.html +++ b/controller/internal/web/testdata/i18n_parity/app_import_empty.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/app_info_available.html b/controller/internal/web/testdata/i18n_parity/app_info_available.html index 02d54cc..6d700d8 100644 --- a/controller/internal/web/testdata/i18n_parity/app_info_available.html +++ b/controller/internal/web/testdata/i18n_parity/app_info_available.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/app_info_deployed.html b/controller/internal/web/testdata/i18n_parity/app_info_deployed.html index c8e5f4c..31d4514 100644 --- a/controller/internal/web/testdata/i18n_parity/app_info_deployed.html +++ b/controller/internal/web/testdata/i18n_parity/app_info_deployed.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/app_info_installable.html b/controller/internal/web/testdata/i18n_parity/app_info_installable.html index 0b6b2a5..982d51c 100644 --- a/controller/internal/web/testdata/i18n_parity/app_info_installable.html +++ b/controller/internal/web/testdata/i18n_parity/app_info_installable.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/app_info_operator_creds.html b/controller/internal/web/testdata/i18n_parity/app_info_operator_creds.html index c172a80..66d6ef7 100644 --- a/controller/internal/web/testdata/i18n_parity/app_info_operator_creds.html +++ b/controller/internal/web/testdata/i18n_parity/app_info_operator_creds.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/app_info_updating.html b/controller/internal/web/testdata/i18n_parity/app_info_updating.html index 7c986e0..5f06a76 100644 --- a/controller/internal/web/testdata/i18n_parity/app_info_updating.html +++ b/controller/internal/web/testdata/i18n_parity/app_info_updating.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_apps_empty.html b/controller/internal/web/testdata/i18n_parity/backups_apps_empty.html index d8ce82e..afdff7e 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_apps_empty.html +++ b/controller/internal/web/testdata/i18n_parity/backups_apps_empty.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_apps_error.html b/controller/internal/web/testdata/i18n_parity/backups_apps_error.html index c567fab..8b84e52 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_apps_error.html +++ b/controller/internal/web/testdata/i18n_parity/backups_apps_error.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_apps_ok.html b/controller/internal/web/testdata/i18n_parity/backups_apps_ok.html index 6981ed7..bf10234 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_apps_ok.html +++ b/controller/internal/web/testdata/i18n_parity/backups_apps_ok.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_apps_other.html b/controller/internal/web/testdata/i18n_parity/backups_apps_other.html index 43dc3e3..1a6aca2 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_apps_other.html +++ b/controller/internal/web/testdata/i18n_parity/backups_apps_other.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_apps_running.html b/controller/internal/web/testdata/i18n_parity/backups_apps_running.html index 4b0d1ca..1bb4409 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_apps_running.html +++ b/controller/internal/web/testdata/i18n_parity/backups_apps_running.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_apps_stale_copy.html b/controller/internal/web/testdata/i18n_parity/backups_apps_stale_copy.html index 90486e1..6bcedb8 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_apps_stale_copy.html +++ b/controller/internal/web/testdata/i18n_parity/backups_apps_stale_copy.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_degraded.html b/controller/internal/web/testdata/i18n_parity/backups_degraded.html index fc3bf27..e90e884 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_degraded.html +++ b/controller/internal/web/testdata/i18n_parity/backups_degraded.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_empty.html b/controller/internal/web/testdata/i18n_parity/backups_empty.html index e1b20d8..7966363 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_empty.html +++ b/controller/internal/web/testdata/i18n_parity/backups_empty.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_full.html b/controller/internal/web/testdata/i18n_parity/backups_full.html index 0944aa3..28ca284 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_full.html +++ b/controller/internal/web/testdata/i18n_parity/backups_full.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_nobackup_yet.html b/controller/internal/web/testdata/i18n_parity/backups_nobackup_yet.html index 8107f40..e39b636 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_nobackup_yet.html +++ b/controller/internal/web/testdata/i18n_parity/backups_nobackup_yet.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_remote_empty.html b/controller/internal/web/testdata/i18n_parity/backups_remote_empty.html index 9ee339f..f3bad67 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_remote_empty.html +++ b/controller/internal/web/testdata/i18n_parity/backups_remote_empty.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_remote_error.html b/controller/internal/web/testdata/i18n_parity/backups_remote_error.html index 3d74d6b..083086b 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_remote_error.html +++ b/controller/internal/web/testdata/i18n_parity/backups_remote_error.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_remote_escrowed.html b/controller/internal/web/testdata/i18n_parity/backups_remote_escrowed.html index e9de987..307e29b 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_remote_escrowed.html +++ b/controller/internal/web/testdata/i18n_parity/backups_remote_escrowed.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_remote_full.html b/controller/internal/web/testdata/i18n_parity/backups_remote_full.html index f65fed3..28be3fe 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_remote_full.html +++ b/controller/internal/web/testdata/i18n_parity/backups_remote_full.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_remote_incomplete.html b/controller/internal/web/testdata/i18n_parity/backups_remote_incomplete.html index bb519e0..6d809db 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_remote_incomplete.html +++ b/controller/internal/web/testdata/i18n_parity/backups_remote_incomplete.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_remote_notconf.html b/controller/internal/web/testdata/i18n_parity/backups_remote_notconf.html index 357bd03..1ed113a 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_remote_notconf.html +++ b/controller/internal/web/testdata/i18n_parity/backups_remote_notconf.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_remote_notconf_hub.html b/controller/internal/web/testdata/i18n_parity/backups_remote_notconf_hub.html index f7698be..5eeea00 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_remote_notconf_hub.html +++ b/controller/internal/web/testdata/i18n_parity/backups_remote_notconf_hub.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_remote_pending_agent.html b/controller/internal/web/testdata/i18n_parity/backups_remote_pending_agent.html index 025395c..04a9a85 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_remote_pending_agent.html +++ b/controller/internal/web/testdata/i18n_parity/backups_remote_pending_agent.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_remote_pending_old.html b/controller/internal/web/testdata/i18n_parity/backups_remote_pending_old.html index b008416..0080984 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_remote_pending_old.html +++ b/controller/internal/web/testdata/i18n_parity/backups_remote_pending_old.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_remote_running.html b/controller/internal/web/testdata/i18n_parity/backups_remote_running.html index 0c24dbe..7373587 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_remote_running.html +++ b/controller/internal/web/testdata/i18n_parity/backups_remote_running.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_remote_stale.html b/controller/internal/web/testdata/i18n_parity/backups_remote_stale.html index 161d9b7..7989cf7 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_remote_stale.html +++ b/controller/internal/web/testdata/i18n_parity/backups_remote_stale.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_remote_stale_old.html b/controller/internal/web/testdata/i18n_parity/backups_remote_stale_old.html index 0cc96f4..58397bf 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_remote_stale_old.html +++ b/controller/internal/web/testdata/i18n_parity/backups_remote_stale_old.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_restore_empty.html b/controller/internal/web/testdata/i18n_parity/backups_restore_empty.html index 6f7c4f2..cf0ed9d 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_restore_empty.html +++ b/controller/internal/web/testdata/i18n_parity/backups_restore_empty.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_restore_full.html b/controller/internal/web/testdata/i18n_parity/backups_restore_full.html index 7955d32..5cf7b34 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_restore_full.html +++ b/controller/internal/web/testdata/i18n_parity/backups_restore_full.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_restore_known_empty.html b/controller/internal/web/testdata/i18n_parity/backups_restore_known_empty.html index 7c45636..c89e804 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_restore_known_empty.html +++ b/controller/internal/web/testdata/i18n_parity/backups_restore_known_empty.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_restore_notarget.html b/controller/internal/web/testdata/i18n_parity/backups_restore_notarget.html index d20408c..fd4c2ed 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_restore_notarget.html +++ b/controller/internal/web/testdata/i18n_parity/backups_restore_notarget.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/backups_tier_due.html b/controller/internal/web/testdata/i18n_parity/backups_tier_due.html index 1e2d4ed..e0365b1 100644 --- a/controller/internal/web/testdata/i18n_parity/backups_tier_due.html +++ b/controller/internal/web/testdata/i18n_parity/backups_tier_due.html @@ -150,8 +150,8 @@ 0.247.0
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/claim_reset_code.html b/controller/internal/web/testdata/i18n_parity/claim_reset_code.html index a4ddc78..cc336e4 100644 --- a/controller/internal/web/testdata/i18n_parity/claim_reset_code.html +++ b/controller/internal/web/testdata/i18n_parity/claim_reset_code.html @@ -29,7 +29,7 @@ Add meg az e-mailben kapott beállító kódot, majd válassz új jelszót.

- +
- + diff --git a/controller/internal/web/testdata/i18n_parity/claim_reset_nocode.html b/controller/internal/web/testdata/i18n_parity/claim_reset_nocode.html index 58fe96e..409c039 100644 --- a/controller/internal/web/testdata/i18n_parity/claim_reset_nocode.html +++ b/controller/internal/web/testdata/i18n_parity/claim_reset_nocode.html @@ -29,7 +29,7 @@
- +
diff --git a/controller/internal/web/testdata/i18n_parity/claim_setup_code.html b/controller/internal/web/testdata/i18n_parity/claim_setup_code.html index ef4f005..35dce76 100644 --- a/controller/internal/web/testdata/i18n_parity/claim_setup_code.html +++ b/controller/internal/web/testdata/i18n_parity/claim_setup_code.html @@ -29,7 +29,7 @@ Add meg az e-mailben kapott beállító kódot, majd válassz saját jelszót a vezérlőpult védelméhez.

- +
- + diff --git a/controller/internal/web/testdata/i18n_parity/claim_setup_nocode.html b/controller/internal/web/testdata/i18n_parity/claim_setup_nocode.html index 7d90251..f3a3721 100644 --- a/controller/internal/web/testdata/i18n_parity/claim_setup_nocode.html +++ b/controller/internal/web/testdata/i18n_parity/claim_setup_nocode.html @@ -29,7 +29,7 @@
- +
diff --git a/controller/internal/web/testdata/i18n_parity/dashboard_diskcrit.html b/controller/internal/web/testdata/i18n_parity/dashboard_diskcrit.html index 85b8771..32a3d7f 100644 --- a/controller/internal/web/testdata/i18n_parity/dashboard_diskcrit.html +++ b/controller/internal/web/testdata/i18n_parity/dashboard_diskcrit.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/dashboard_full.html b/controller/internal/web/testdata/i18n_parity/dashboard_full.html index 7b17c19..49d5647 100644 --- a/controller/internal/web/testdata/i18n_parity/dashboard_full.html +++ b/controller/internal/web/testdata/i18n_parity/dashboard_full.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/dashboard_nobackup.html b/controller/internal/web/testdata/i18n_parity/dashboard_nobackup.html index 661234d..10e6c8e 100644 --- a/controller/internal/web/testdata/i18n_parity/dashboard_nobackup.html +++ b/controller/internal/web/testdata/i18n_parity/dashboard_nobackup.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/dashboard_sparse.html b/controller/internal/web/testdata/i18n_parity/dashboard_sparse.html index 3042eca..659f35a 100644 --- a/controller/internal/web/testdata/i18n_parity/dashboard_sparse.html +++ b/controller/internal/web/testdata/i18n_parity/dashboard_sparse.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/debug.html b/controller/internal/web/testdata/i18n_parity/debug.html index f0ce69f..2bddeab 100644 --- a/controller/internal/web/testdata/i18n_parity/debug.html +++ b/controller/internal/web/testdata/i18n_parity/debug.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/deploy_deployed_running.html b/controller/internal/web/testdata/i18n_parity/deploy_deployed_running.html index a525944..3477bcd 100644 --- a/controller/internal/web/testdata/i18n_parity/deploy_deployed_running.html +++ b/controller/internal/web/testdata/i18n_parity/deploy_deployed_running.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/deploy_deployed_stopped.html b/controller/internal/web/testdata/i18n_parity/deploy_deployed_stopped.html index 845ff4e..9d8aabf 100644 --- a/controller/internal/web/testdata/i18n_parity/deploy_deployed_stopped.html +++ b/controller/internal/web/testdata/i18n_parity/deploy_deployed_stopped.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/deploy_new.html b/controller/internal/web/testdata/i18n_parity/deploy_new.html index 13bd511..5cb0635 100644 --- a/controller/internal/web/testdata/i18n_parity/deploy_new.html +++ b/controller/internal/web/testdata/i18n_parity/deploy_new.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/deploy_new_blocked.html b/controller/internal/web/testdata/i18n_parity/deploy_new_blocked.html index 5754521..9c43f17 100644 --- a/controller/internal/web/testdata/i18n_parity/deploy_new_blocked.html +++ b/controller/internal/web/testdata/i18n_parity/deploy_new_blocked.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/deploy_new_memory_blocked.html b/controller/internal/web/testdata/i18n_parity/deploy_new_memory_blocked.html index 490368b..3203c83 100644 --- a/controller/internal/web/testdata/i18n_parity/deploy_new_memory_blocked.html +++ b/controller/internal/web/testdata/i18n_parity/deploy_new_memory_blocked.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/escrow_agent_old.html b/controller/internal/web/testdata/i18n_parity/escrow_agent_old.html index 8a99f47..d935935 100644 --- a/controller/internal/web/testdata/i18n_parity/escrow_agent_old.html +++ b/controller/internal/web/testdata/i18n_parity/escrow_agent_old.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/escrow_first.html b/controller/internal/web/testdata/i18n_parity/escrow_first.html index e2ea58f..eb68c82 100644 --- a/controller/internal/web/testdata/i18n_parity/escrow_first.html +++ b/controller/internal/web/testdata/i18n_parity/escrow_first.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/escrow_not_ready.html b/controller/internal/web/testdata/i18n_parity/escrow_not_ready.html index 9734fea..86420cd 100644 --- a/controller/internal/web/testdata/i18n_parity/escrow_not_ready.html +++ b/controller/internal/web/testdata/i18n_parity/escrow_not_ready.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/escrow_receremony.html b/controller/internal/web/testdata/i18n_parity/escrow_receremony.html index ff11b6f..206cf21 100644 --- a/controller/internal/web/testdata/i18n_parity/escrow_receremony.html +++ b/controller/internal/web/testdata/i18n_parity/escrow_receremony.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/launcher_empty.html b/controller/internal/web/testdata/i18n_parity/launcher_empty.html index 5c0bebe..de2ccd0 100644 --- a/controller/internal/web/testdata/i18n_parity/launcher_empty.html +++ b/controller/internal/web/testdata/i18n_parity/launcher_empty.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/launcher_full.html b/controller/internal/web/testdata/i18n_parity/launcher_full.html index 70a4988..2ac266c 100644 --- a/controller/internal/web/testdata/i18n_parity/launcher_full.html +++ b/controller/internal/web/testdata/i18n_parity/launcher_full.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/launcher_nopassword.html b/controller/internal/web/testdata/i18n_parity/launcher_nopassword.html index 395d46e..86c0cb4 100644 --- a/controller/internal/web/testdata/i18n_parity/launcher_nopassword.html +++ b/controller/internal/web/testdata/i18n_parity/launcher_nopassword.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/launcher_reminder_tier0.html b/controller/internal/web/testdata/i18n_parity/launcher_reminder_tier0.html index 47141bb..8cb1680 100644 --- a/controller/internal/web/testdata/i18n_parity/launcher_reminder_tier0.html +++ b/controller/internal/web/testdata/i18n_parity/launcher_reminder_tier0.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/launcher_reminder_tier3.html b/controller/internal/web/testdata/i18n_parity/launcher_reminder_tier3.html index 8e3db93..cb10b41 100644 --- a/controller/internal/web/testdata/i18n_parity/launcher_reminder_tier3.html +++ b/controller/internal/web/testdata/i18n_parity/launcher_reminder_tier3.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
diff --git a/controller/internal/web/testdata/i18n_parity/launcher_reminder_tiers.html b/controller/internal/web/testdata/i18n_parity/launcher_reminder_tiers.html index a7ad0b9..e6537f6 100644 --- a/controller/internal/web/testdata/i18n_parity/launcher_reminder_tiers.html +++ b/controller/internal/web/testdata/i18n_parity/launcher_reminder_tiers.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/launcher_share_password.html b/controller/internal/web/testdata/i18n_parity/launcher_share_password.html index 98d62d1..298e602 100644 --- a/controller/internal/web/testdata/i18n_parity/launcher_share_password.html +++ b/controller/internal/web/testdata/i18n_parity/launcher_share_password.html @@ -16,7 +16,7 @@

Ez az oldal jelszóval védett.

Hibás jelszó lett megadva.
- +
diff --git a/controller/internal/web/testdata/i18n_parity/logs.html b/controller/internal/web/testdata/i18n_parity/logs.html index 9c2036f..4e84bdb 100644 --- a/controller/internal/web/testdata/i18n_parity/logs.html +++ b/controller/internal/web/testdata/i18n_parity/logs.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/monitoring_hub_down.html b/controller/internal/web/testdata/i18n_parity/monitoring_hub_down.html index 46f467b..f3fc1b3 100644 --- a/controller/internal/web/testdata/i18n_parity/monitoring_hub_down.html +++ b/controller/internal/web/testdata/i18n_parity/monitoring_hub_down.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/monitoring_hub_off.html b/controller/internal/web/testdata/i18n_parity/monitoring_hub_off.html index de3941f..06b8cc2 100644 --- a/controller/internal/web/testdata/i18n_parity/monitoring_hub_off.html +++ b/controller/internal/web/testdata/i18n_parity/monitoring_hub_off.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/monitoring_hub_ok.html b/controller/internal/web/testdata/i18n_parity/monitoring_hub_ok.html index 36d7f33..023d856 100644 --- a/controller/internal/web/testdata/i18n_parity/monitoring_hub_ok.html +++ b/controller/internal/web/testdata/i18n_parity/monitoring_hub_ok.html @@ -150,8 +150,8 @@ 0.247.0
    -
  • -
  • +
  • +
Kijelentkezés ↗ diff --git a/controller/internal/web/testdata/i18n_parity/recovery_locked_can.html b/controller/internal/web/testdata/i18n_parity/recovery_locked_can.html index b2ebce8..60002b5 100644 --- a/controller/internal/web/testdata/i18n_parity/recovery_locked_can.html +++ b/controller/internal/web/testdata/i18n_parity/recovery_locked_can.html @@ -12,8 +12,8 @@
    -
  • -
  • +
  • +