v0.27.2 — copyable error popups, Tier2 hub reporting, memory bar fixes, new labels
- Replace native alert() with custom showAlert() modal (text selectable) - Manual Tier2 backup now pushes infra backup to Hub - CommittedMemory() excludes stopped/exited apps - Pre-start memory check blocks start if insufficient RAM - Add hungarian_ui metadata field + "Magyar felület" badge - Add "USB" badge on storage cards in settings page Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
{{if .Meta.Resources.MemRequest}}<span class="meta-badge">~{{.Meta.Resources.MemRequest}}</span>{{end}}
|
||||
{{if .Meta.Resources.PiCompatible}}<span class="meta-badge meta-badge-ok">Pi kompatibilis</span>{{end}}
|
||||
{{if .Meta.Resources.NeedsHDD}}<span class="meta-badge">HDD szükséges</span>{{end}}
|
||||
{{if .Meta.Resources.HungarianUI}}<span class="meta-badge meta-badge-ok">Magyar felület</span>{{end}}
|
||||
</div>
|
||||
<a href="/apps/{{.Meta.Slug}}" class="btn btn-sm btn-outline" style="margin-top:0.5rem">
|
||||
Részletes leírás, képernyőképek
|
||||
@@ -402,7 +403,7 @@ function triggerCrossDriveBackup(stackName, btn) {
|
||||
.then(function(r) { return r.json(); })
|
||||
.then(function(d) {
|
||||
if (!d.ok) {
|
||||
alert('Hiba: ' + (d.error || 'Ismeretlen hiba'));
|
||||
showAlert('Hiba: ' + (d.error || 'Ismeretlen hiba'));
|
||||
btn.disabled = false;
|
||||
btn.textContent = 'Mentés most';
|
||||
return;
|
||||
@@ -421,7 +422,7 @@ function triggerCrossDriveBackup(stackName, btn) {
|
||||
btn.textContent = 'Mentés kész';
|
||||
} else {
|
||||
btn.textContent = 'Hiba';
|
||||
alert('Hiba: ' + (s.data.last_error || 'Ismeretlen hiba'));
|
||||
showAlert('Hiba: ' + (s.data.last_error || 'Ismeretlen hiba'));
|
||||
}
|
||||
setTimeout(function() { location.reload(); }, 2000);
|
||||
}
|
||||
@@ -429,7 +430,7 @@ function triggerCrossDriveBackup(stackName, btn) {
|
||||
}, 3000);
|
||||
})
|
||||
.catch(function(e) {
|
||||
alert('Hálózati hiba: ' + e.message);
|
||||
showAlert('Hálózati hiba: ' + e.message);
|
||||
btn.disabled = false;
|
||||
btn.textContent = 'Mentés most';
|
||||
});
|
||||
@@ -485,7 +486,7 @@ function deleteStaleData(stackName, stalePath, btn) {
|
||||
.then(function(r) { return r.json(); })
|
||||
.then(function(data) {
|
||||
if (!data.ok) {
|
||||
alert('Hiba: ' + (data.error || 'Ismeretlen hiba'));
|
||||
showAlert('Hiba: ' + (data.error || 'Ismeretlen hiba'));
|
||||
btn.disabled = false;
|
||||
btn.textContent = 'Korábbi adatok törlése';
|
||||
return;
|
||||
@@ -494,7 +495,7 @@ function deleteStaleData(stackName, stalePath, btn) {
|
||||
if (data.errors && data.errors.length > 0) {
|
||||
msg += '\n\nNéhány hiba történt:\n' + data.errors.join('\n');
|
||||
}
|
||||
alert(msg);
|
||||
showAlert(msg);
|
||||
// Remove the stale data card from DOM
|
||||
var item = btn.closest('.stale-data-item');
|
||||
if (item) item.remove();
|
||||
@@ -505,9 +506,9 @@ function deleteStaleData(stackName, stalePath, btn) {
|
||||
}
|
||||
})
|
||||
.catch(function(e) {
|
||||
alert('Hálózati hiba: ' + e.message);
|
||||
showAlert('Hálózati hiba: ' + e.message);
|
||||
btn.disabled = false;
|
||||
btn.textContent = '🗑️ Korábbi adatok törlése';
|
||||
btn.textContent = 'Korábbi adatok törlése';
|
||||
});
|
||||
}
|
||||
|
||||
@@ -519,7 +520,7 @@ document.getElementById('deploy-form').addEventListener('submit', async function
|
||||
for (const pf of passwordFields) {
|
||||
if (!pf.disabled && pf.value.trim() === '') {
|
||||
const label = pf.closest('.form-group').querySelector('label').textContent.trim();
|
||||
alert('Kötelező mező: ' + label + '\nHasználja a Generálás gombot vagy írjon be egy jelszót.');
|
||||
showAlert('Kötelező mező: ' + label + '\nHasználja a Generálás gombot vagy írjon be egy jelszót.');
|
||||
pf.focus();
|
||||
return;
|
||||
}
|
||||
@@ -530,7 +531,7 @@ document.getElementById('deploy-form').addEventListener('submit', async function
|
||||
if (subdomainField && !subdomainField.disabled) {
|
||||
const sd = subdomainField.value.trim().toLowerCase();
|
||||
if (!sd || !/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/.test(sd)) {
|
||||
alert('Az aldomain csak kisbetűket, számokat és kötőjelet tartalmazhat, és nem kezdődhet/végződhet kötőjellel.');
|
||||
showAlert('Az aldomain csak kisbetűket, számokat és kötőjelet tartalmazhat, és nem kezdődhet/végződhet kötőjellel.');
|
||||
subdomainField.focus();
|
||||
return;
|
||||
}
|
||||
@@ -541,7 +542,7 @@ document.getElementById('deploy-form').addEventListener('submit', async function
|
||||
for (const rf of requiredFields) {
|
||||
if (!rf.disabled && rf.value.trim() === '') {
|
||||
const label = rf.closest('.form-group').querySelector('label').textContent.trim();
|
||||
alert('Kötelező mező: ' + label);
|
||||
showAlert('Kötelező mező: ' + label);
|
||||
rf.focus();
|
||||
return;
|
||||
}
|
||||
@@ -592,7 +593,7 @@ document.getElementById('deploy-form').addEventListener('submit', async function
|
||||
});
|
||||
var data = await resp.json();
|
||||
if (!data.ok) {
|
||||
alert('Hiba: ' + data.error);
|
||||
showAlert('Hiba: ' + data.error);
|
||||
btn.textContent = 'Telepítés indítása';
|
||||
btn.disabled = false;
|
||||
return;
|
||||
@@ -669,7 +670,7 @@ document.getElementById('deploy-form').addEventListener('submit', async function
|
||||
}, 3000);
|
||||
|
||||
} catch (err) {
|
||||
alert('Hálózati hiba: ' + err.message);
|
||||
showAlert('Hálózati hiba: ' + err.message);
|
||||
btn.textContent = 'Telepítés indítása';
|
||||
btn.disabled = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user