R-518: backup button copy says local copy, one short stop, off-site at night (hu+en)
The 'Mentes most' hint and its confirm stated the v0.296.0 measurements (about 6 min / 9 apps, about 8 min / 12 apps) and that the off-site copy in the same run makes it longer. Since decision 156 the press makes the local copy only and resumes the apps at its snapshot, so the copy now says: a short stop of about 1-1.5 minutes (longer with more apps), the apps run again while the copy finishes, the off-site copy follows with the next nightly backup. Parity fixtures updated in place; TestR518_BackupButtonStatesTheMeasuredDowntime -> TestR518_BackupButtonStatesTheShortLocalOnlyStop (new copy on page AND in confirm, old minutes gone, ASCII fragments). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -194,7 +194,7 @@
|
|||||||
"backups.a_kijeloles_nem_sikerult": "The drive could not be assigned:",
|
"backups.a_kijeloles_nem_sikerult": "The drive could not be assigned:",
|
||||||
"backups.a_meghajto_kijelolve": "The drive is assigned.",
|
"backups.a_meghajto_kijelolve": "The drive is assigned.",
|
||||||
"backups.a_meghajto_kijelolve_a_beallitas": "The drive is assigned. The setting takes effect after the host agent next restarts.",
|
"backups.a_meghajto_kijelolve_a_beallitas": "The drive is assigned. The setting takes effect after the host agent next restarts.",
|
||||||
"backups.a_mentes_alatt_az_alkalmazasok": "Every app stops for as long as the full system backup takes. That means minutes, not seconds: about 6 minutes on a box with 9 apps, about 8 minutes on a box with 12 — longer with more data, and longer when the off-site copy is made in the same run.",
|
"backups.a_mentes_alatt_az_alkalmazasok": "Every app stops briefly for the backup: about 1–1.5 minutes, longer with more apps. Then the apps run again while the copy finishes. This button makes the local copy; the off-site copy follows with the next nightly backup.",
|
||||||
"backups.a_mentes_sikertelen": "The backup failed.",
|
"backups.a_mentes_sikertelen": "The backup failed.",
|
||||||
"backups.a_mentesek_egymas_utan_futnak": "The backups run one after the other: database backup, local copy, remote backup, then the full system backup.",
|
"backups.a_mentesek_egymas_utan_futnak": "The backups run one after the other: database backup, local copy, remote backup, then the full system backup.",
|
||||||
"backups.a_rendszermentes_elkeszult": "The system backup is done.",
|
"backups.a_rendszermentes_elkeszult": "The system backup is done.",
|
||||||
@@ -208,7 +208,7 @@
|
|||||||
"backups.beagyazott_db_k_a_kotetmentesben": "embedded databases, inside the volume backup",
|
"backups.beagyazott_db_k_a_kotetmentesben": "embedded databases, inside the volume backup",
|
||||||
"backups.biztonsagi_mentes": "Backup",
|
"backups.biztonsagi_mentes": "Backup",
|
||||||
"backups.db_mentesek": "Database backups",
|
"backups.db_mentesek": "Database backups",
|
||||||
"backups.elinditod_a_teljes_rendszermentest_most": "Start the full system backup now? Every app stops for as long as the full system backup takes. That means minutes, not seconds: about 6 minutes on a box with 9 apps, about 8 minutes on a box with 12 — longer with more data, and longer when the off-site copy is made in the same run.",
|
"backups.elinditod_a_teljes_rendszermentest_most": "Start the full system backup now? Every app stops briefly for the backup: about 1–1.5 minutes, longer with more apps. Then the apps run again while the copy finishes. This button makes the local copy; the off-site copy follows with the next nightly backup.",
|
||||||
"backups.esedekes": "Due",
|
"backups.esedekes": "Due",
|
||||||
"backups.fajl": "{{$n := len .Backup.DumpFiles}}{{$n}} {{if eq $n 1}}file{{else}}files{{end}}",
|
"backups.fajl": "{{$n := len .Backup.DumpFiles}}{{$n}} {{if eq $n 1}}file{{else}}files{{end}}",
|
||||||
"backups.helyi_masolat": "Local copy: <strong>{{.BackupLegTier2}}</strong>",
|
"backups.helyi_masolat": "Local copy: <strong>{{.BackupLegTier2}}</strong>",
|
||||||
|
|||||||
@@ -190,7 +190,7 @@
|
|||||||
"backups.a_kijeloles_nem_sikerult": "A kijelölés nem sikerült:",
|
"backups.a_kijeloles_nem_sikerult": "A kijelölés nem sikerült:",
|
||||||
"backups.a_meghajto_kijelolve": "A meghajtó kijelölve.",
|
"backups.a_meghajto_kijelolve": "A meghajtó kijelölve.",
|
||||||
"backups.a_meghajto_kijelolve_a_beallitas": "A meghajtó kijelölve. A beállítás a host-ügynök következő újraindulása után lép életbe.",
|
"backups.a_meghajto_kijelolve_a_beallitas": "A meghajtó kijelölve. A beállítás a host-ügynök következő újraindulása után lép életbe.",
|
||||||
"backups.a_mentes_alatt_az_alkalmazasok": "A mentés alatt minden alkalmazás leáll, amíg a teljes rendszer mentése tart. Ez perceket jelent, nem másodperceket: egy 9 alkalmazásos gépen kb. 6 perc, egy 12 alkalmazásos gépen kb. 8 perc volt — több adatnál, és ha a távoli másolat is ugyanekkor készül, tovább.",
|
"backups.a_mentes_alatt_az_alkalmazasok": "Mentés közben minden alkalmazás rövid időre leáll: kb. 1–1,5 percre, több alkalmazásnál tovább. Utána újra futnak, amíg a másolás befejeződik. A gomb a helyi másolatot készíti el; a távoli másolat a következő éjszakai mentéssel készül.",
|
||||||
"backups.a_mentes_sikertelen": "A mentés sikertelen.",
|
"backups.a_mentes_sikertelen": "A mentés sikertelen.",
|
||||||
"backups.a_mentesek_egymas_utan_futnak": "A mentések egymás után futnak: adatbázis-mentés, helyi másolat, távoli mentés, majd a teljes rendszermentés.",
|
"backups.a_mentesek_egymas_utan_futnak": "A mentések egymás után futnak: adatbázis-mentés, helyi másolat, távoli mentés, majd a teljes rendszermentés.",
|
||||||
"backups.a_rendszermentes_elkeszult": "A rendszermentés elkészült.",
|
"backups.a_rendszermentes_elkeszult": "A rendszermentés elkészült.",
|
||||||
@@ -204,7 +204,7 @@
|
|||||||
"backups.beagyazott_db_k_a_kotetmentesben": "beágyazott DB-k a kötetmentésben",
|
"backups.beagyazott_db_k_a_kotetmentesben": "beágyazott DB-k a kötetmentésben",
|
||||||
"backups.biztonsagi_mentes": "Biztonsági mentés",
|
"backups.biztonsagi_mentes": "Biztonsági mentés",
|
||||||
"backups.db_mentesek": "DB mentések",
|
"backups.db_mentesek": "DB mentések",
|
||||||
"backups.elinditod_a_teljes_rendszermentest_most": "Elindítod a teljes rendszermentést most? A mentés alatt minden alkalmazás leáll, amíg a teljes rendszer mentése tart. Ez perceket jelent, nem másodperceket: egy 9 alkalmazásos gépen kb. 6 perc, egy 12 alkalmazásos gépen kb. 8 perc volt — több adatnál, és ha a távoli másolat is ugyanekkor készül, tovább.",
|
"backups.elinditod_a_teljes_rendszermentest_most": "Elindítod a teljes rendszermentést most? Mentés közben minden alkalmazás rövid időre leáll: kb. 1–1,5 percre, több alkalmazásnál tovább. Utána újra futnak, amíg a másolás befejeződik. A gomb a helyi másolatot készíti el; a távoli másolat a következő éjszakai mentéssel készül.",
|
||||||
"backups.esedekes": "Esedékes",
|
"backups.esedekes": "Esedékes",
|
||||||
"backups.fajl": "{{len .Backup.DumpFiles}} fájl",
|
"backups.fajl": "{{len .Backup.DumpFiles}} fájl",
|
||||||
"backups.helyi_masolat": "Helyi másolat: <strong>{{.BackupLegTier2}}</strong>",
|
"backups.helyi_masolat": "Helyi másolat: <strong>{{.BackupLegTier2}}</strong>",
|
||||||
|
|||||||
@@ -5,10 +5,18 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
// R-518 — the whole-system backup button promised a short stop; measured 2026-09-14 on a 12-app box,
|
// R-518 — the whole-system backup button's copy, in both languages, on the page AND in the confirm.
|
||||||
// every app was down for about 7 m 45 s. The copy now states that measurement, in both languages, on
|
//
|
||||||
// the page and in the confirm dialog. ASCII fragments only (ui-hungarian rule), each with a control.
|
// History: the button first promised a short stop; measured 2026-09-14 (12 apps) every app was down for
|
||||||
func TestR518_BackupButtonStatesTheMeasuredDowntime(t *testing.T) {
|
// about 7 m 45 s, and v0.296.0 stated the measurements (≈6 min / 9 apps, ≈8 min / 12 apps). Since
|
||||||
|
// `09` §3 decision 156 (R-518 option A) the press backs up the LOCAL copy only and resumes the apps at
|
||||||
|
// its snapshot, so the stop is short again (≈80 s inferred on demo-hp: stop 21 s + snapshot ≤12 s +
|
||||||
|
// restart 46 s) and the off-site copy follows at the next night run. The copy says exactly that, and
|
||||||
|
// the old minutes — now untrue for a press — must be gone.
|
||||||
|
//
|
||||||
|
// ASCII fragments only (ui-hungarian rule). The positive fragments double as the control for the
|
||||||
|
// negative ones: they prove the body searched actually carries the button's copy.
|
||||||
|
func TestR518_BackupButtonStatesTheShortLocalOnlyStop(t *testing.T) {
|
||||||
s := i18nTestServer(t)
|
s := i18nTestServer(t)
|
||||||
var c i18nCase
|
var c i18nCase
|
||||||
for _, x := range i18nCases() {
|
for _, x := range i18nCases() {
|
||||||
@@ -21,23 +29,21 @@ func TestR518_BackupButtonStatesTheMeasuredDowntime(t *testing.T) {
|
|||||||
}
|
}
|
||||||
for _, lang := range []string{"hu", "en"} {
|
for _, lang := range []string{"hu", "en"} {
|
||||||
body := renderI18nCase(t, s, lang, c)
|
body := renderI18nCase(t, s, lang, c)
|
||||||
// v0.296.0: BOTH measurements — 2026-09-14 (12 apps, ≈8 min) and 2026-10-05 on demo-hp (9 apps, 5 min 47 s,
|
want := []string{"1,5 perc", "A gomb a helyi m", "jszakai ment"}
|
||||||
// audits/hub-safety-2026-10-05/partE/r518-measure.txt) — and that it is minutes, not seconds.
|
gone := []string{"6 perc", "8 perc", "ugyanekkor k"}
|
||||||
measured := []string{"kb. 6 perc", "kb. 8 perc", "nem másodperceket"}
|
|
||||||
vague := ""
|
|
||||||
if lang == "en" {
|
if lang == "en" {
|
||||||
measured, vague = []string{"about 6 minutes", "about 8 minutes", "not seconds"}, "usually for a few minutes"
|
want = []string{"1.5 minutes", "This button makes the local copy", "next nightly backup"}
|
||||||
|
gone = []string{"6 minutes", "8 minutes", "in the same run"}
|
||||||
}
|
}
|
||||||
for _, m := range measured {
|
for _, m := range want {
|
||||||
if n := strings.Count(body, m); n < 2 {
|
if n := strings.Count(body, m); n < 2 {
|
||||||
t.Errorf("%s: %q appears %d times, want it on the page AND in the confirm", lang, m, n)
|
t.Errorf("%s: %q appears %d times, want it on the page AND in the confirm", lang, m, n)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if lang == "en" && strings.Contains(body, vague) {
|
for _, m := range gone {
|
||||||
t.Errorf("en: the old vague promise %q is still on the page", vague)
|
if strings.Contains(body, m) {
|
||||||
}
|
t.Errorf("%s: the old copy %q is still on the page — a press no longer stops the apps for minutes or makes the off-site copy", lang, m)
|
||||||
if lang == "hu" && strings.Contains(body, "ltalában néhány perc, nagyobb") {
|
}
|
||||||
t.Errorf("hu: the old vague promise is still on the page")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -268,7 +268,7 @@
|
|||||||
|
|
||||||
function triggerGuestBackup() {
|
function triggerGuestBackup() {
|
||||||
var btn = document.getElementById('wg-backup-btn');
|
var btn = document.getElementById('wg-backup-btn');
|
||||||
felhomConfirm(btn, 'Elindítod a teljes rendszermentést most? A mentés alatt minden alkalmazás leáll, amíg a teljes rendszer mentése tart. Ez perceket jelent, nem másodperceket: egy 9 alkalmazásos gépen kb. 6 perc, egy 12 alkalmazásos gépen kb. 8 perc volt — több adatnál, és ha a távoli másolat is ugyanekkor készül, tovább.', function () {
|
felhomConfirm(btn, 'Elindítod a teljes rendszermentést most? Mentés közben minden alkalmazás rövid időre leáll: kb. 1–1,5 percre, több alkalmazásnál tovább. Utána újra futnak, amíg a másolás befejeződik. A gomb a helyi másolatot készíti el; a távoli másolat a következő éjszakai mentéssel készül.', function () {
|
||||||
var out = document.getElementById('wg-backup-result');
|
var out = document.getElementById('wg-backup-result');
|
||||||
btn.disabled = true;
|
btn.disabled = true;
|
||||||
out.innerHTML = '<span class="form-hint">Mentés indítása…</span>';
|
out.innerHTML = '<span class="form-hint">Mentés indítása…</span>';
|
||||||
|
|||||||
@@ -197,7 +197,7 @@
|
|||||||
|
|
||||||
function triggerGuestBackup() {
|
function triggerGuestBackup() {
|
||||||
var btn = document.getElementById('wg-backup-btn');
|
var btn = document.getElementById('wg-backup-btn');
|
||||||
felhomConfirm(btn, 'Elindítod a teljes rendszermentést most? A mentés alatt minden alkalmazás leáll, amíg a teljes rendszer mentése tart. Ez perceket jelent, nem másodperceket: egy 9 alkalmazásos gépen kb. 6 perc, egy 12 alkalmazásos gépen kb. 8 perc volt — több adatnál, és ha a távoli másolat is ugyanekkor készül, tovább.', function () {
|
felhomConfirm(btn, 'Elindítod a teljes rendszermentést most? Mentés közben minden alkalmazás rövid időre leáll: kb. 1–1,5 percre, több alkalmazásnál tovább. Utána újra futnak, amíg a másolás befejeződik. A gomb a helyi másolatot készíti el; a távoli másolat a következő éjszakai mentéssel készül.', function () {
|
||||||
var out = document.getElementById('wg-backup-result');
|
var out = document.getElementById('wg-backup-result');
|
||||||
btn.disabled = true;
|
btn.disabled = true;
|
||||||
out.innerHTML = '<span class="form-hint">Mentés indítása…</span>';
|
out.innerHTML = '<span class="form-hint">Mentés indítása…</span>';
|
||||||
|
|||||||
@@ -341,7 +341,7 @@
|
|||||||
|
|
||||||
<div class="schedule-actions" style="margin-top:1rem">
|
<div class="schedule-actions" style="margin-top:1rem">
|
||||||
<button class="btn btn-sm btn-primary" id="wg-backup-btn" onclick="triggerGuestBackup()" disabled>Mentés most</button>
|
<button class="btn btn-sm btn-primary" id="wg-backup-btn" onclick="triggerGuestBackup()" disabled>Mentés most</button>
|
||||||
<span class="form-hint" style="margin-left:.5rem"><svg class="ico ico-sm"><use href="#i-triangle-alert"/></svg> A mentés alatt minden alkalmazás leáll, amíg a teljes rendszer mentése tart. Ez perceket jelent, nem másodperceket: egy 9 alkalmazásos gépen kb. 6 perc, egy 12 alkalmazásos gépen kb. 8 perc volt — több adatnál, és ha a távoli másolat is ugyanekkor készül, tovább.</span>
|
<span class="form-hint" style="margin-left:.5rem"><svg class="ico ico-sm"><use href="#i-triangle-alert"/></svg> Mentés közben minden alkalmazás rövid időre leáll: kb. 1–1,5 percre, több alkalmazásnál tovább. Utána újra futnak, amíg a másolás befejeződik. A gomb a helyi másolatot készíti el; a távoli másolat a következő éjszakai mentéssel készül.</span>
|
||||||
<div id="wg-backup-result" style="margin-top:.6rem"></div>
|
<div id="wg-backup-result" style="margin-top:.6rem"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -404,7 +404,7 @@
|
|||||||
|
|
||||||
function triggerGuestBackup() {
|
function triggerGuestBackup() {
|
||||||
var btn = document.getElementById('wg-backup-btn');
|
var btn = document.getElementById('wg-backup-btn');
|
||||||
felhomConfirm(btn, 'Elindítod a teljes rendszermentést most? A mentés alatt minden alkalmazás leáll, amíg a teljes rendszer mentése tart. Ez perceket jelent, nem másodperceket: egy 9 alkalmazásos gépen kb. 6 perc, egy 12 alkalmazásos gépen kb. 8 perc volt — több adatnál, és ha a távoli másolat is ugyanekkor készül, tovább.', function () {
|
felhomConfirm(btn, 'Elindítod a teljes rendszermentést most? Mentés közben minden alkalmazás rövid időre leáll: kb. 1–1,5 percre, több alkalmazásnál tovább. Utána újra futnak, amíg a másolás befejeződik. A gomb a helyi másolatot készíti el; a távoli másolat a következő éjszakai mentéssel készül.', function () {
|
||||||
var out = document.getElementById('wg-backup-result');
|
var out = document.getElementById('wg-backup-result');
|
||||||
btn.disabled = true;
|
btn.disabled = true;
|
||||||
out.innerHTML = '<span class="form-hint">Mentés indítása…</span>';
|
out.innerHTML = '<span class="form-hint">Mentés indítása…</span>';
|
||||||
|
|||||||
@@ -259,7 +259,7 @@
|
|||||||
|
|
||||||
function triggerGuestBackup() {
|
function triggerGuestBackup() {
|
||||||
var btn = document.getElementById('wg-backup-btn');
|
var btn = document.getElementById('wg-backup-btn');
|
||||||
felhomConfirm(btn, 'Elindítod a teljes rendszermentést most? A mentés alatt minden alkalmazás leáll, amíg a teljes rendszer mentése tart. Ez perceket jelent, nem másodperceket: egy 9 alkalmazásos gépen kb. 6 perc, egy 12 alkalmazásos gépen kb. 8 perc volt — több adatnál, és ha a távoli másolat is ugyanekkor készül, tovább.', function () {
|
felhomConfirm(btn, 'Elindítod a teljes rendszermentést most? Mentés közben minden alkalmazás rövid időre leáll: kb. 1–1,5 percre, több alkalmazásnál tovább. Utána újra futnak, amíg a másolás befejeződik. A gomb a helyi másolatot készíti el; a távoli másolat a következő éjszakai mentéssel készül.', function () {
|
||||||
var out = document.getElementById('wg-backup-result');
|
var out = document.getElementById('wg-backup-result');
|
||||||
btn.disabled = true;
|
btn.disabled = true;
|
||||||
out.innerHTML = '<span class="form-hint">Mentés indítása…</span>';
|
out.innerHTML = '<span class="form-hint">Mentés indítása…</span>';
|
||||||
|
|||||||
@@ -289,7 +289,7 @@
|
|||||||
|
|
||||||
function triggerGuestBackup() {
|
function triggerGuestBackup() {
|
||||||
var btn = document.getElementById('wg-backup-btn');
|
var btn = document.getElementById('wg-backup-btn');
|
||||||
felhomConfirm(btn, 'Elindítod a teljes rendszermentést most? A mentés alatt minden alkalmazás leáll, amíg a teljes rendszer mentése tart. Ez perceket jelent, nem másodperceket: egy 9 alkalmazásos gépen kb. 6 perc, egy 12 alkalmazásos gépen kb. 8 perc volt — több adatnál, és ha a távoli másolat is ugyanekkor készül, tovább.', function () {
|
felhomConfirm(btn, 'Elindítod a teljes rendszermentést most? Mentés közben minden alkalmazás rövid időre leáll: kb. 1–1,5 percre, több alkalmazásnál tovább. Utána újra futnak, amíg a másolás befejeződik. A gomb a helyi másolatot készíti el; a távoli másolat a következő éjszakai mentéssel készül.', function () {
|
||||||
var out = document.getElementById('wg-backup-result');
|
var out = document.getElementById('wg-backup-result');
|
||||||
btn.disabled = true;
|
btn.disabled = true;
|
||||||
out.innerHTML = '<span class="form-hint">Mentés indítása…</span>';
|
out.innerHTML = '<span class="form-hint">Mentés indítása…</span>';
|
||||||
|
|||||||
@@ -251,7 +251,7 @@
|
|||||||
|
|
||||||
<div class="schedule-actions" style="margin-top:1rem">
|
<div class="schedule-actions" style="margin-top:1rem">
|
||||||
<button class="btn btn-sm btn-primary" id="wg-backup-btn" onclick="triggerGuestBackup()" >Mentés most</button>
|
<button class="btn btn-sm btn-primary" id="wg-backup-btn" onclick="triggerGuestBackup()" >Mentés most</button>
|
||||||
<span class="form-hint" style="margin-left:.5rem"><svg class="ico ico-sm"><use href="#i-triangle-alert"/></svg> A mentés alatt minden alkalmazás leáll, amíg a teljes rendszer mentése tart. Ez perceket jelent, nem másodperceket: egy 9 alkalmazásos gépen kb. 6 perc, egy 12 alkalmazásos gépen kb. 8 perc volt — több adatnál, és ha a távoli másolat is ugyanekkor készül, tovább.</span>
|
<span class="form-hint" style="margin-left:.5rem"><svg class="ico ico-sm"><use href="#i-triangle-alert"/></svg> Mentés közben minden alkalmazás rövid időre leáll: kb. 1–1,5 percre, több alkalmazásnál tovább. Utána újra futnak, amíg a másolás befejeződik. A gomb a helyi másolatot készíti el; a távoli másolat a következő éjszakai mentéssel készül.</span>
|
||||||
<div id="wg-backup-result" style="margin-top:.6rem"></div>
|
<div id="wg-backup-result" style="margin-top:.6rem"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -312,7 +312,7 @@
|
|||||||
|
|
||||||
function triggerGuestBackup() {
|
function triggerGuestBackup() {
|
||||||
var btn = document.getElementById('wg-backup-btn');
|
var btn = document.getElementById('wg-backup-btn');
|
||||||
felhomConfirm(btn, 'Elindítod a teljes rendszermentést most? A mentés alatt minden alkalmazás leáll, amíg a teljes rendszer mentése tart. Ez perceket jelent, nem másodperceket: egy 9 alkalmazásos gépen kb. 6 perc, egy 12 alkalmazásos gépen kb. 8 perc volt — több adatnál, és ha a távoli másolat is ugyanekkor készül, tovább.', function () {
|
felhomConfirm(btn, 'Elindítod a teljes rendszermentést most? Mentés közben minden alkalmazás rövid időre leáll: kb. 1–1,5 percre, több alkalmazásnál tovább. Utána újra futnak, amíg a másolás befejeződik. A gomb a helyi másolatot készíti el; a távoli másolat a következő éjszakai mentéssel készül.', function () {
|
||||||
var out = document.getElementById('wg-backup-result');
|
var out = document.getElementById('wg-backup-result');
|
||||||
btn.disabled = true;
|
btn.disabled = true;
|
||||||
out.innerHTML = '<span class="form-hint">Mentés indítása…</span>';
|
out.innerHTML = '<span class="form-hint">Mentés indítása…</span>';
|
||||||
|
|||||||
Reference in New Issue
Block a user