v0.248.0: i18n slice 1 release A — apps and settings in English, Hungarian byte-identical (R-556)
gates / gates (push) Successful in 20s
gates / gates (push) Successful in 20s
Ten pages converted against fixtures captured from unconverted templates (6be55a0); marker
coverage test; English page mask narrowed; English retrieval-promise stems; common keys;
title keys and infraMeta from the bundle; old wording tests read the Hungarian expansion.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -2,20 +2,20 @@
|
||||
{{template "layout_start" .}}
|
||||
|
||||
<div class="page-header">
|
||||
<h2>Beállítások — Rendszer</h2>
|
||||
<h2>{{T "settings_system.beallitasok_rendszer"}}</h2>
|
||||
</div>
|
||||
|
||||
<!-- Section A: System Configuration (read-only) -->
|
||||
<div class="settings-card">
|
||||
<h3>Rendszer konfiguráció</h3>
|
||||
<p class="settings-card-desc">Az üzemeltető által beállított értékek. Módosításhoz kérd az üzemeltetőt.</p>
|
||||
<h3>{{T "settings_system.rendszer_konfiguracio"}}</h3>
|
||||
<p class="settings-card-desc">{{T "settings_system.az_uzemelteto_altal_beallitott_ertekek"}}</p>
|
||||
<div class="settings-grid">
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Ügyfél azonosító</span>
|
||||
<span class="settings-label">{{T "common.ugyfel_azonosito"}}</span>
|
||||
<span class="settings-value mono">{{.CustomerID}}</span>
|
||||
</div>
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Ügyfél neve</span>
|
||||
<span class="settings-label">{{T "settings_system.ugyfel_neve"}}</span>
|
||||
<span class="settings-value">{{.CustomerName}}</span>
|
||||
</div>
|
||||
<div class="settings-row">
|
||||
@@ -24,27 +24,27 @@
|
||||
</div>
|
||||
{{if .GitRepoURL}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Alkalmazás sablon forrás</span>
|
||||
<span class="settings-label">{{T "settings_system.alkalmazas_sablon_forras"}}</span>
|
||||
<span class="settings-value mono settings-value-truncate">{{.GitRepoURL}}</span>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Sablon szinkronizálás</span>
|
||||
<span class="settings-label">{{T "settings_system.sablon_szinkronizalas"}}</span>
|
||||
<span class="settings-value mono">{{.GitSyncInterval}}</span>
|
||||
</div>
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Biztonsági mentés</span>
|
||||
<span class="settings-value">{{if .BackupEnabled}}<span class="state-text-run"><svg class="ico ico-sm"><use href="#i-check"/></svg> Aktív</span>{{else}}<span class="state-text-neutral">Inaktív</span>{{end}}</span>
|
||||
<span class="settings-label">{{T "settings_system.biztonsagi_mentes"}}</span>
|
||||
<span class="settings-value">{{if .BackupEnabled}}<span class="state-text-run"><svg class="ico ico-sm"><use href="#i-check"/></svg> {{T "settings_system.aktiv"}}</span>{{else}}<span class="state-text-neutral">{{T "settings_system.inaktiv"}}</span>{{end}}</span>
|
||||
</div>
|
||||
{{if .BackupEnabled}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Mentés ütemezés</span>
|
||||
<span class="settings-label">{{T "settings_system.mentes_utemezes"}}</span>
|
||||
<span class="settings-value mono">{{.DBDumpSchedule}} / {{.ResticSchedule}}</span>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Monitoring</span>
|
||||
<span class="settings-value">{{if .MonitoringEnabled}}<span class="state-text-run"><svg class="ico ico-sm"><use href="#i-check"/></svg> Aktív</span>{{else}}<span class="state-text-neutral">Inaktív</span>{{end}}</span>
|
||||
<span class="settings-value">{{if .MonitoringEnabled}}<span class="state-text-run"><svg class="ico ico-sm"><use href="#i-check"/></svg> {{T "settings_system.aktiv"}}</span>{{else}}<span class="state-text-neutral">{{T "settings_system.inaktiv"}}</span>{{end}}</span>
|
||||
</div>
|
||||
{{if .MonitoringEnabled}}
|
||||
<div class="settings-row">
|
||||
@@ -53,78 +53,78 @@
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Hub jelentés</span>
|
||||
<span class="settings-value">{{if .HubEnabled}}<span class="state-text-run"><svg class="ico ico-sm"><use href="#i-check"/></svg> Aktív</span>{{else}}–{{end}}</span>
|
||||
<span class="settings-label">{{T "settings_system.hub_jelentes"}}</span>
|
||||
<span class="settings-value">{{if .HubEnabled}}<span class="state-text-run"><svg class="ico ico-sm"><use href="#i-check"/></svg> {{T "settings_system.aktiv"}}</span>{{else}}–{{end}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Section: Version & Update -->
|
||||
<div class="settings-card">
|
||||
<h3>Verzió és frissítés</h3>
|
||||
<h3>{{T "settings_system.verzio_es_frissites"}}</h3>
|
||||
<div class="settings-grid">
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Jelenlegi verzió</span>
|
||||
<span class="settings-label">{{T "settings_system.jelenlegi_verzio"}}</span>
|
||||
<span class="settings-value mono">{{.Version}}</span>
|
||||
</div>
|
||||
{{if .SelfUpdateEnabled}}
|
||||
{{if .LatestVersion}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Legújabb verzió</span>
|
||||
<span class="settings-label">{{T "settings_system.legujabb_verzio"}}</span>
|
||||
<span class="settings-value mono">
|
||||
{{.LatestVersion}}
|
||||
{{if .UpdateAvailable}}
|
||||
<span class="state-text-run" style="margin-left:0.5em;">● Frissítés elérhető</span>
|
||||
<span class="state-text-run" style="margin-left:0.5em;">{{T "settings_system.frissites_elerheto"}}</span>
|
||||
{{else}}
|
||||
<span style="margin-left:0.5em; color:var(--text-3);">— naprakész</span>
|
||||
<span style="margin-left:0.5em; color:var(--text-3);">{{T "settings_system.naprakesz"}}</span>
|
||||
{{end}}
|
||||
</span>
|
||||
</div>
|
||||
{{end}}
|
||||
{{if .LastCheckTime}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Utolsó ellenőrzés</span>
|
||||
<span class="settings-label">{{T "settings_system.utolso_ellenorzes"}}</span>
|
||||
<span class="settings-value mono">{{.LastCheckTime}}</span>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Registry</span>
|
||||
<span class="settings-value">{{if .RegistryAnonymous}}nyilvános (hitelesítés nélkül){{else}}hitelesített{{end}}</span>
|
||||
<span class="settings-value">{{if .RegistryAnonymous}}{{T "settings_system.nyilvanos_hitelesites_nelkul"}}{{else}}{{T "settings_system.hitelesitett"}}{{end}}</span>
|
||||
</div>
|
||||
{{if .LastCheckError}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Hiba</span>
|
||||
<span class="settings-label">{{T "common.hiba"}}</span>
|
||||
<span class="settings-value state-text-crit">{{.LastCheckError}}</span>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Automatikus frissítés</span>
|
||||
<span class="settings-label">{{T "settings_system.automatikus_frissites"}}</span>
|
||||
<span class="settings-value">
|
||||
{{if .AutoUpdateEnabled}}<span class="state-text-run"><svg class="ico ico-sm"><use href="#i-check"/></svg> Aktív</span> <span class="mono">({{.AutoUpdateTime}})</span>{{else}}–{{end}}
|
||||
{{if .AutoUpdateEnabled}}<span class="state-text-run"><svg class="ico ico-sm"><use href="#i-check"/></svg> {{T "settings_system.aktiv"}}</span> <span class="mono">({{.AutoUpdateTime}})</span>{{else}}–{{end}}
|
||||
</span>
|
||||
</div>
|
||||
{{if .ControllerFloor}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Minimális verzió (üzemeltető)</span>
|
||||
<span class="settings-label">{{T "settings_system.minimalis_verzio_uzemelteto"}}</span>
|
||||
<span class="settings-value mono">
|
||||
{{.ControllerFloor}}
|
||||
<span style="margin-left:0.5em; color:#888;">— a rendszer automatikusan erre a verzióra frissít, ha régebbi</span>
|
||||
<span style="margin-left:0.5em; color:#888;">{{T "settings_system.a_rendszer_automatikusan_erre_a"}}</span>
|
||||
</span>
|
||||
</div>
|
||||
{{end}}
|
||||
{{if .UpdateRunning}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Állapot</span>
|
||||
<span class="settings-value state-text-progress" id="auto-update-status"><svg class="ico ico-sm ico-spin"><use href="#i-rotate-cw"/></svg> Frissítés folyamatban — a vezérlő hamarosan újraindul…</span>
|
||||
<span class="settings-label">{{T "settings_system.allapot"}}</span>
|
||||
<span class="settings-value state-text-progress" id="auto-update-status"><svg class="ico ico-sm ico-spin"><use href="#i-rotate-cw"/></svg> {{T "settings_system.frissites_folyamatban_a_vezerlo_hamarosa"}}</span>
|
||||
</div>
|
||||
{{end}}
|
||||
{{with .LastUpdateState}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Utolsó frissítés</span>
|
||||
<span class="settings-label">{{T "settings_system.utolso_frissites"}}</span>
|
||||
<span class="settings-value">
|
||||
{{if eq .Status "success"}}<span class="state-text-run"><svg class="ico ico-sm"><use href="#i-check"/></svg> Sikeres</span> ({{.PreviousVersion}} → {{.TargetVersion}})
|
||||
{{else if eq .Status "failed"}}<span class="state-text-crit"><svg class="ico ico-sm"><use href="#i-x"/></svg> Sikertelen</span> — {{.Error}}
|
||||
{{else if eq .Status "pending"}}<span class="state-text-progress"><svg class="ico ico-sm ico-spin"><use href="#i-rotate-cw"/></svg> Folyamatban</span>
|
||||
{{if eq .Status "success"}}<span class="state-text-run"><svg class="ico ico-sm"><use href="#i-check"/></svg> {{T "settings_system.sikeres"}}</span> ({{.PreviousVersion}} → {{.TargetVersion}})
|
||||
{{else if eq .Status "failed"}}<span class="state-text-crit"><svg class="ico ico-sm"><use href="#i-x"/></svg> {{T "settings_system.sikertelen"}}</span> — {{.Error}}
|
||||
{{else if eq .Status "pending"}}<span class="state-text-progress"><svg class="ico ico-sm ico-spin"><use href="#i-rotate-cw"/></svg> {{T "settings_system.folyamatban"}}</span>
|
||||
{{end}}
|
||||
</span>
|
||||
</div>
|
||||
@@ -132,9 +132,9 @@
|
||||
<div class="settings-row" style="padding-top: 0.5em;">
|
||||
<span class="settings-label"></span>
|
||||
<span class="settings-value">
|
||||
<button class="btn btn-secondary btn-sm" id="btn-check-update" onclick="checkUpdate()">Frissítés keresése</button>
|
||||
<button class="btn btn-secondary btn-sm" id="btn-check-update" onclick="checkUpdate()">{{T "settings_system.frissites_keresese"}}</button>
|
||||
{{if .UpdateAvailable}}
|
||||
<button class="btn btn-primary btn-sm" id="btn-trigger-update" onclick="triggerUpdate()" style="margin-left:0.5em;">Frissítés telepítése</button>
|
||||
<button class="btn btn-primary btn-sm" id="btn-trigger-update" onclick="triggerUpdate()" style="margin-left:0.5em;">{{T "settings_system.frissites_telepitese"}}</button>
|
||||
{{end}}
|
||||
<span id="update-status-msg" style="margin-left:0.5em; display:none;"></span>
|
||||
</span>
|
||||
@@ -147,50 +147,50 @@
|
||||
stored NOWHERE (S-5: a DHCP lease persisted anywhere eventually misdirects people); a missing
|
||||
value renders „—" because an address-less row beats a wrong address. -->
|
||||
<div class="settings-card">
|
||||
<h3>Hálózat</h3>
|
||||
<h3>{{T "settings_system.halozat"}}</h3>
|
||||
<div class="settings-grid">
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Helyi cím (LAN)</span>
|
||||
<span class="settings-value mono">{{if .NetLANAddress}}{{.NetLANAddress}}{{else}}— <span style="color:var(--text-3);">nem állapítható meg</span>{{end}}</span>
|
||||
<span class="settings-label">{{T "settings_system.helyi_cim_lan"}}</span>
|
||||
<span class="settings-value mono">{{if .NetLANAddress}}{{.NetLANAddress}}{{else}}— <span style="color:var(--text-3);">{{T "settings_system.nem_allapithato_meg"}}</span>{{end}}</span>
|
||||
</div>
|
||||
{{if .NetSMBName}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Hálózati név</span>
|
||||
<span class="settings-label">{{T "settings_system.halozati_nev"}}</span>
|
||||
<span class="settings-value mono">\\{{.NetSMBName}}</span>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Átjáró</span>
|
||||
<span class="settings-value mono">{{if .NetGateway}}{{.NetGateway}}{{else}}— <span style="color:var(--text-3);">nem állapítható meg</span>{{end}}</span>
|
||||
<span class="settings-label">{{T "settings_system.atjaro"}}</span>
|
||||
<span class="settings-value mono">{{if .NetGateway}}{{.NetGateway}}{{else}}— <span style="color:var(--text-3);">{{T "settings_system.nem_allapithato_meg"}}</span>{{end}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="settings-card-desc" style="margin-top:0.5em;">Ezek az értékek a helyi hálózattól függenek és változhatnak. Távoli hibaelhárításnál ezt az oldalt kérjük felolvasni.</p>
|
||||
<p class="settings-card-desc" style="margin-top:0.5em;">{{T "settings_system.ezek_az_ertekek_a_helyi"}}</p>
|
||||
</div>
|
||||
|
||||
<div class="settings-card">
|
||||
<h3>Szerver memória (RAM)</h3>
|
||||
<h3>{{T "settings_system.szerver_memoria_ram"}}</h3>
|
||||
{{if .MemorySupported}}
|
||||
{{if .MemoryReachable}}
|
||||
<div class="settings-grid">
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Jelenlegi memória</span>
|
||||
<span class="settings-label">{{T "settings_system.jelenlegi_memoria"}}</span>
|
||||
<span class="settings-value mono">{{.MemoryAllocatedMB}} MB</span>
|
||||
</div>
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Felhasznált</span>
|
||||
<span class="settings-label">{{T "settings_system.felhasznalt"}}</span>
|
||||
<span class="settings-value mono">{{.MemoryUsageMB}} MB</span>
|
||||
</div>
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Megengedett tartomány</span>
|
||||
<span class="settings-label">{{T "settings_system.megengedett_tartomany"}}</span>
|
||||
<span class="settings-value mono">{{.MemoryMinMB}} MB – {{.MemoryMaxMB}} MB</span>
|
||||
</div>
|
||||
<div class="settings-row" style="padding-top: 0.5em;">
|
||||
<span class="settings-label">Új méret (MB)</span>
|
||||
<span class="settings-label">{{T "settings_system.uj_meret_mb"}}</span>
|
||||
<span class="settings-value">
|
||||
<input type="number" id="mem-input" class="input mono" style="width:8em;"
|
||||
value="{{.MemoryAllocatedMB}}" min="{{.MemoryMinMB}}" max="{{.MemoryMaxMB}}" step="256"
|
||||
data-current="{{.MemoryAllocatedMB}}">
|
||||
<button class="btn btn-primary btn-sm" id="btn-mem-resize" onclick="resizeMemory()" style="margin-left:0.5em;">Átméretezés</button>
|
||||
<button class="btn btn-primary btn-sm" id="btn-mem-resize" onclick="resizeMemory()" style="margin-left:0.5em;">{{T "settings_system.atmeretezes"}}</button>
|
||||
<span id="mem-status-msg" style="margin-left:0.5em; display:none;"></span>
|
||||
</span>
|
||||
</div>
|
||||
@@ -198,14 +198,14 @@
|
||||
{{else}}
|
||||
<div class="settings-grid">
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">Jelenlegi memória</span>
|
||||
<span class="settings-label">{{T "settings_system.jelenlegi_memoria"}}</span>
|
||||
<span class="settings-value mono">{{if .MemoryProcMB}}{{.MemoryProcMB}} MB{{else}}n/a{{end}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="settings-card-desc">A kiszolgáló ügynök jelenleg nem elérhető — próbáld meg később.</p>
|
||||
<p class="settings-card-desc">{{T "settings_system.a_kiszolgalo_ugynok_jelenleg_nem"}}</p>
|
||||
{{end}}
|
||||
{{else}}
|
||||
<p class="settings-card-desc">A memória átméretezéséhez a kiszolgáló rendszerfrissítése szükséges.</p>
|
||||
<p class="settings-card-desc">{{T "settings_system.a_memoria_atmeretezesehez_a_kiszolgalo"}}</p>
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
@@ -218,10 +218,10 @@ function openDialog(opts){
|
||||
var root=document.getElementById('dialog-root');
|
||||
if(!root) return;
|
||||
root.innerHTML='<div class="confirm-overlay" onclick="if(event.target===this)document.getElementById(\'dialog-cancel\').click()"><div class="confirm-box">'
|
||||
+'<h3>'+escText(opts.title||'Megerősítés')+'</h3>'
|
||||
+'<h3>'+escText(opts.title||'{{T "settings_system.megerosites"}}')+'</h3>'
|
||||
+'<p style="white-space:pre-line">'+escText(opts.message||'')+'</p>'
|
||||
+'<div class="form-actions"><button id="dialog-go" class="btn btn-primary">'+escText(opts.confirmLabel||'Megerősítés')+'</button>'
|
||||
+'<button type="button" class="btn btn-outline" id="dialog-cancel">Mégsem</button></div>'
|
||||
+'<div class="form-actions"><button id="dialog-go" class="btn btn-primary">'+escText(opts.confirmLabel||'{{T "settings_system.megerosites"}}')+'</button>'
|
||||
+'<button type="button" class="btn btn-outline" id="dialog-cancel">{{T "common.megsem"}}</button></div>'
|
||||
+'</div></div>';
|
||||
document.getElementById('dialog-go').onclick=function(){ closeDialog(); if(opts.onConfirm) opts.onConfirm(); };
|
||||
document.getElementById('dialog-cancel').onclick=function(){ closeDialog(); if(opts.onCancel) opts.onCancel(); };
|
||||
@@ -231,7 +231,7 @@ function checkUpdate() {
|
||||
var btn = document.getElementById('btn-check-update');
|
||||
var msg = document.getElementById('update-status-msg');
|
||||
btn.disabled = true;
|
||||
btn.textContent = 'Ellenőrzés...';
|
||||
btn.textContent = '{{T "settings_system.ellenorzes"}}';
|
||||
msg.style.display = 'none';
|
||||
fetch('/api/selfupdate/check', {method:'POST', headers: csrfHeaders()})
|
||||
.then(function(r) { return r.json(); })
|
||||
@@ -239,23 +239,23 @@ function checkUpdate() {
|
||||
if (data.ok) {
|
||||
location.reload();
|
||||
} else {
|
||||
msg.textContent = data.error || 'Hiba történt';
|
||||
msg.textContent = data.error || '{{T "common.hiba_tortent"}}';
|
||||
msg.style.display = 'inline';
|
||||
btn.disabled = false;
|
||||
btn.textContent = 'Frissítés keresése';
|
||||
btn.textContent = '{{T "settings_system.frissites_keresese"}}';
|
||||
}
|
||||
})
|
||||
.catch(function() {
|
||||
msg.textContent = 'Kapcsolódási hiba';
|
||||
msg.textContent = '{{T "settings_system.kapcsolodasi_hiba"}}';
|
||||
msg.style.display = 'inline';
|
||||
btn.disabled = false;
|
||||
btn.textContent = 'Frissítés keresése';
|
||||
btn.textContent = '{{T "settings_system.frissites_keresese"}}';
|
||||
});
|
||||
}
|
||||
|
||||
function triggerUpdate() {
|
||||
openDialog({title:'Vezérlő frissítése', confirmLabel:'Frissítés',
|
||||
message:'Biztosan frissíti a controllert?\n\nA folyamat alatt a vezérlőpult rövid időre elérhetetlenné válik.',
|
||||
openDialog({title:'{{T "settings_system.vezerlo_frissitese"}}', confirmLabel:'{{T "settings_system.frissites"}}',
|
||||
message:'{{T "settings_system.biztosan_frissiti_a_controllert_n"}}',
|
||||
onConfirm:doTriggerUpdate});
|
||||
}
|
||||
function doTriggerUpdate() {
|
||||
@@ -263,25 +263,25 @@ function doTriggerUpdate() {
|
||||
var checkBtn = document.getElementById('btn-check-update');
|
||||
var msg = document.getElementById('update-status-msg');
|
||||
btn.disabled = true;
|
||||
btn.textContent = 'Frissítés...';
|
||||
btn.textContent = '{{T "settings_system.frissites_2"}}';
|
||||
if (checkBtn) checkBtn.disabled = true;
|
||||
msg.textContent = 'Frissítés folyamatban...';
|
||||
msg.textContent = '{{T "settings_system.frissites_folyamatban"}}';
|
||||
msg.style.display = 'inline';
|
||||
fetch('/api/selfupdate/update', {method:'POST', headers: csrfHeaders()})
|
||||
.then(function(r) { return r.json(); })
|
||||
.then(function(data) {
|
||||
if (data.ok) {
|
||||
msg.textContent = 'Újraindulás...';
|
||||
msg.textContent = '{{T "settings_system.ujraindulas"}}';
|
||||
pollUntilBack();
|
||||
} else {
|
||||
msg.textContent = data.error || 'Hiba történt';
|
||||
msg.textContent = data.error || '{{T "common.hiba_tortent"}}';
|
||||
btn.disabled = false;
|
||||
btn.textContent = 'Frissítés telepítése';
|
||||
btn.textContent = '{{T "settings_system.frissites_telepitese"}}';
|
||||
if (checkBtn) checkBtn.disabled = false;
|
||||
}
|
||||
})
|
||||
.catch(function() {
|
||||
msg.textContent = 'Kapcsolódási hiba';
|
||||
msg.textContent = '{{T "settings_system.kapcsolodasi_hiba"}}';
|
||||
pollUntilBack();
|
||||
});
|
||||
}
|
||||
@@ -291,12 +291,12 @@ function resizeMemory() {
|
||||
var target = parseInt(input.value, 10);
|
||||
var current = parseInt(input.getAttribute('data-current'), 10);
|
||||
if (isNaN(target) || target <= 0) {
|
||||
showMemMsg('Érvénytelen memória érték', true);
|
||||
showMemMsg('{{T "settings_system.ervenytelen_memoria_ertek"}}', true);
|
||||
return;
|
||||
}
|
||||
if (target < current) {
|
||||
openDialog({title:'Memória csökkentése', confirmLabel:'Csökkentés',
|
||||
message:'A memória csökkentése hatással lehet a futó alkalmazások teljesítményére. Biztosan folytatod?',
|
||||
openDialog({title:'{{T "settings_system.memoria_csokkentese"}}', confirmLabel:'{{T "settings_system.csokkentes"}}',
|
||||
message:'{{T "settings_system.a_memoria_csokkentese_hatassal_lehet"}}',
|
||||
onConfirm:function(){ doResizeMemory(target); }});
|
||||
return;
|
||||
}
|
||||
@@ -305,7 +305,7 @@ function resizeMemory() {
|
||||
function doResizeMemory(target) {
|
||||
var btn = document.getElementById('btn-mem-resize');
|
||||
btn.disabled = true;
|
||||
btn.textContent = 'Átméretezés...';
|
||||
btn.textContent = '{{T "settings_system.atmeretezes_2"}}';
|
||||
fetch('/api/system/memory/resize', {
|
||||
method:'POST', headers: Object.assign({'Content-Type':'application/json'}, csrfHeaders()),
|
||||
body: JSON.stringify({memory_mb: target})
|
||||
@@ -313,18 +313,18 @@ function doResizeMemory(target) {
|
||||
.then(function(r) { return r.json(); })
|
||||
.then(function(data) {
|
||||
if (data.ok) {
|
||||
showMemMsg(data.error || data.message || 'Kész.', false);
|
||||
showMemMsg(data.error || data.message || '{{T "settings_system.kesz"}}', false);
|
||||
setTimeout(function(){ location.reload(); }, 1200);
|
||||
} else {
|
||||
showMemMsg(data.error || 'A művelet nem sikerült', true);
|
||||
showMemMsg(data.error || '{{T "settings_system.a_muvelet_nem_sikerult"}}', true);
|
||||
btn.disabled = false;
|
||||
btn.textContent = 'Átméretezés';
|
||||
btn.textContent = '{{T "settings_system.atmeretezes"}}';
|
||||
}
|
||||
})
|
||||
.catch(function() {
|
||||
showMemMsg('Kapcsolódási hiba', true);
|
||||
showMemMsg('{{T "settings_system.kapcsolodasi_hiba"}}', true);
|
||||
btn.disabled = false;
|
||||
btn.textContent = 'Átméretezés';
|
||||
btn.textContent = '{{T "settings_system.atmeretezes"}}';
|
||||
});
|
||||
}
|
||||
function showMemMsg(text, isErr) {
|
||||
@@ -357,50 +357,49 @@ pollUntilBack();
|
||||
|
||||
<!-- Section: Controller restart (self-serve) — always available (not gated on RetrievalPassword) -->
|
||||
<div class="settings-card">
|
||||
<h3>Vezérlő újraindítása</h3>
|
||||
<h3>{{T "settings_system.vezerlo_ujrainditasa"}}</h3>
|
||||
<p class="settings-card-desc">
|
||||
Ha a vezérlő hibásan működik, itt biztonságosan újraindíthatja — nem kell az egész szervert újraindítani.
|
||||
Az alkalmazásai futnak tovább; csak a vezérlő indul újra (néhány másodperc).
|
||||
{{T "settings_system.ha_a_vezerlo_hibasan_mukodik"}}
|
||||
</p>
|
||||
<div id="restart-status"></div>
|
||||
<button type="button" class="btn btn-outline" id="btn-restart-controller" onclick="restartController()">Vezérlő újraindítása</button>
|
||||
<button type="button" class="btn btn-outline" id="btn-restart-controller" onclick="restartController()">{{T "settings_system.vezerlo_ujrainditasa"}}</button>
|
||||
</div>
|
||||
|
||||
<!-- Section: Full server (guest) restart — a deliberate maintenance affordance, sibling to the controller restart -->
|
||||
<div class="settings-card">
|
||||
<h3>Kiszolgáló újraindítása</h3>
|
||||
<h3>{{T "settings_system.kiszolgalo_ujrainditasa"}}</h3>
|
||||
<p class="settings-card-desc">
|
||||
Az egész kiszolgáló (szerver) újraindítása. Minden alkalmazás rövid időre leáll, és a vezérlőpult kb. 30 másodpercig nem elérhető. Akkor használja, ha a teljes rendszer újraindítására van szükség — egyébként a fenti „Vezérlő újraindítása” elegendő.
|
||||
{{T "settings_system.az_egesz_kiszolgalo_szerver_ujrainditasa"}}
|
||||
</p>
|
||||
<div id="server-restart-status"></div>
|
||||
<button type="button" class="btn btn-outline" id="btn-restart-server" onclick="restartServer()">Kiszolgáló újraindítása</button>
|
||||
<button type="button" class="btn btn-outline" id="btn-restart-server" onclick="restartServer()">{{T "settings_system.kiszolgalo_ujrainditasa"}}</button>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function restartController() {
|
||||
openDialog({title:'Vezérlő újraindítása', confirmLabel:'Újraindítás',
|
||||
message:'Biztosan újraindítja a vezérlőt? A művelet néhány másodpercig tart, és a felület rövid időre elérhetetlen lesz.',
|
||||
openDialog({title:'{{T "settings_system.vezerlo_ujrainditasa"}}', confirmLabel:'{{T "common.ujrainditas"}}',
|
||||
message:'{{T "settings_system.biztosan_ujrainditja_a_vezerlot_a"}}',
|
||||
onConfirm:doRestartController});
|
||||
}
|
||||
function doRestartController() {
|
||||
var btn = document.getElementById('btn-restart-controller');
|
||||
var status = document.getElementById('restart-status');
|
||||
btn.disabled = true;
|
||||
status.innerHTML = '<div class="alert alert-info">Újraindítás folyamatban… újracsatlakozás…</div>';
|
||||
status.innerHTML = '<div class="alert alert-info">{{T "settings_system.ujrainditas_folyamatban_ujracsatlakozas"}}</div>';
|
||||
fetch('/api/selfrestart', { method: 'POST', headers: csrfHeaders() })
|
||||
.then(function(){ pollRestart(0); })
|
||||
.catch(function(){ pollRestart(0); }); // connection may drop as the process exits — poll regardless
|
||||
}
|
||||
function restartServer() {
|
||||
openDialog({title:'Kiszolgáló újraindítása', confirmLabel:'Újraindítás',
|
||||
message:'Biztosan újraindítja a kiszolgálót? Az alkalmazások és a vezérlőpult kb. 30 másodpercre elérhetetlenné válnak.',
|
||||
openDialog({title:'{{T "settings_system.kiszolgalo_ujrainditasa"}}', confirmLabel:'{{T "common.ujrainditas"}}',
|
||||
message:'{{T "settings_system.biztosan_ujrainditja_a_kiszolgalot_az"}}',
|
||||
onConfirm:doRestartServer});
|
||||
}
|
||||
function doRestartServer() {
|
||||
var btn = document.getElementById('btn-restart-server');
|
||||
var status = document.getElementById('server-restart-status');
|
||||
if (btn) btn.disabled = true;
|
||||
if (status) status.innerHTML = '<div class="alert alert-info">Újraindítás folyamatban… a vezérlőpult néhány másodperc múlva újratölt.</div>';
|
||||
if (status) status.innerHTML = '<div class="alert alert-info">{{T "settings_system.ujrainditas_folyamatban_a_vezerlopult_ne"}}</div>';
|
||||
fetch('/api/server/reboot', { method: 'POST', headers: csrfHeaders() })
|
||||
.then(function(){ pollRestart(0); })
|
||||
.catch(function(){ pollRestart(0); }); // the guest reboot drops the connection — poll regardless
|
||||
@@ -408,7 +407,7 @@ function doRestartServer() {
|
||||
function pollRestart(attempt) {
|
||||
if (attempt > 60) { // ~2 min cap — never leave the user on a dead page silently
|
||||
document.getElementById('restart-status').innerHTML =
|
||||
'<div class="alert alert-error">Az újraindítás a vártnál tovább tart. Töltse újra az oldalt kézzel.</div>';
|
||||
'<div class="alert alert-error">{{T "settings_system.az_ujrainditas_a_vartnal_tovabb"}}</div>';
|
||||
return;
|
||||
}
|
||||
setTimeout(function(){
|
||||
|
||||
Reference in New Issue
Block a user