W13 new-drive pages pre-fill the next free hdd_N and answer a bad name visibly; W14 drive operator detail behind Részletek; W29 plain decommission names no move; unreleased
gates / gates (push) Successful in 1m37s

This commit is contained in:
2026-10-21 22:51:08 +02:00
parent 8c1e290f63
commit 28b05d6d68
16 changed files with 1349 additions and 32 deletions
@@ -55,7 +55,9 @@
{{else if .Decommissioned}}
<div class="storage-path-details">
<div class="storage-disconnected-info">
<span class="form-hint">{{T "storage.adatok_atkoltoztetve_ide"}}</span>
{{- /* W29 (rehearsal 2026-10-20): a plain decommission moves nothing; the move sentence rendered
with empty blanks („Adatok átköltöztetve ide: . ()"). It names a move only when there was one. */}}
{{if .MigratedTo}}<span class="form-hint">{{T "storage.adatok_atkoltoztetve_ide"}}</span>{{else}}<span class="form-hint">{{T "storage.leszerelve_nem_koltoztettunk"}}</span>{{end}}
{{if .DecommissionedAt}}<span class="form-hint">{{T "storage.idopont"}}</span>{{end}}
</div>
</div>
@@ -342,11 +344,14 @@ window.__registeredPaths=[{{range .StoragePaths}}{{if .Path}}"{{.Path}}",{{end}}
var badges = roleTag(d.role)+appBackingTag(d)+classTag(d)+dataTag(d);
if(withActions) badges += regTag(d, registered);
var purpose = purposeDesc(d);
// W14 (rehearsal 2026-10-20): the type, device, path and durable id („local-lvm lvmthin · pve/data",
// „10.77.0.1:felhom-offsite#…") are operator detail; they wait behind „Részletek".
return '<div class="drive-card role-'+esc(d.role||'system')+'">'
+'<div class="drive-card-top"><div class="drive-id"><span class="drive-name">'+esc(d.name)+'</span><span class="drive-sub">'+sub+'</span></div>'
+'<div class="drive-card-top"><div class="drive-id"><span class="drive-name">'+esc(d.name)+'</span></div>'
+'<div class="drive-badges">'+badges+'</div></div>'
+(purpose?'<div class="drive-purpose">'+esc(purpose)+'</div>':'')
+(d.durable_id?'<div class="drive-sub mono">'+esc(d.durable_id)+'</div>':'')
+'<details class="drive-details"><summary>{{T "storage.reszletek"}}</summary><div class="drive-sub">'+sub+'</div>'
+(d.durable_id?'<div class="drive-sub mono">'+esc(d.durable_id)+'</div>':'')+'</details>'
+capBar(d)
+(withActions?actions(d,registered):'')
+'</div>';
@@ -359,8 +364,8 @@ window.__registeredPaths=[{{range .StoragePaths}}{{if .Path}}"{{.Path}}",{{end}}
var extra='<div class="metarows">'
+'<span class="metarow">'+roleTag(d.role)+'</span>'
+(d.class?'<span class="metarow">'+classTag(d)+'</span>':'')
+(d.durable_id?'<span class="metarow mono" title="{{T "storage.tartos_azonosito"}}">'+esc(d.durable_id)+'</span>':'')
+'</div>'
+(d.durable_id?'<details class="drive-details"><summary>{{T "storage.reszletek"}}</summary><span class="drive-sub mono" title="{{T "storage.tartos_azonosito"}}">'+esc(d.durable_id)+'</span></details>':'')
+actions(d,registered,hasSafeDisconnect);
slot.innerHTML=extra;
return true;