v0.57.0: stable host-storage list + per-app Tier-2 config panel
Part A of the UI-fixes/storage-spike spec.
A1: enrichHostStorageTargets sorts /api/host-metrics storage_targets
server-side and attaches friendly Hungarian labels + purpose, fixing the
#host-storage-bars reorder-on-poll bug. Display labels only — PVE storage
ids are never renamed.
A2: new GET/POST /stacks/{name}/backup Tier-2 config panel; the "2. mentés"
Beállítás button is repointed there from the dead-end deploy page. Customer
can pin a target drive or disable Tier 2; preference is preserved across the
runner's status writes. Always visible (single-SSD + non-HDD apps included).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
{{define "tier2_config"}}
|
||||
{{template "layout_start" .}}
|
||||
|
||||
<div class="page-header">
|
||||
<h2>2. mentés beállítása — {{.DisplayName}}</h2>
|
||||
<a href="/backups" class="btn btn-outline btn-sm">← Vissza a mentésekhez</a>
|
||||
</div>
|
||||
|
||||
{{if .Flash}}<div class="monitoring-banner monitoring-banner-green">{{.Flash}}</div>{{end}}
|
||||
{{if .FlashError}}<div class="monitoring-banner monitoring-banner-red">{{.FlashError}}</div>{{end}}
|
||||
|
||||
<div class="monitor-card">
|
||||
{{with .Tier2}}
|
||||
<p style="color:var(--text-muted);font-size:.9rem;margin-top:0">
|
||||
A 2. mentés egy <strong>másik fizikai meghajtóra</strong> készít másolatot az alkalmazás
|
||||
helyreállítási csomagjáról és adatairól. Ez az egyetlen off-drive védelem a böngészhető
|
||||
felhasználói fájlokhoz (a teljes rendszermentés/PBS nem éri el ezeket).
|
||||
</p>
|
||||
|
||||
{{if not .IsHDDApp}}
|
||||
<div class="monitoring-banner monitoring-banner-yellow" style="margin-top:1rem">
|
||||
Ennek az alkalmazásnak az adatai a belső rendszerlemezen vannak, amelyek
|
||||
<strong>már szerepelnek a teljes rendszermentésben (PBS)</strong>. A 2. (off-drive) másolat
|
||||
kiegészítő, és elsősorban a külső adatmeghajtón tárolt alkalmazásokhoz készül — ehhez az
|
||||
alkalmazáshoz nincs külön teendő.
|
||||
</div>
|
||||
{{else}}
|
||||
<h3 style="margin-top:1.5rem">Jelenlegi állapot</h3>
|
||||
<div class="sysinfo-grid">
|
||||
<div class="sysinfo-row">
|
||||
<span class="sysinfo-label">2. mentés</span>
|
||||
<span class="sysinfo-value">{{if .Disabled}}Kikapcsolva{{else}}Bekapcsolva{{end}}</span>
|
||||
</div>
|
||||
{{if .NoTarget}}
|
||||
<div class="sysinfo-row">
|
||||
<span class="sysinfo-label">Cél</span>
|
||||
<span class="sysinfo-value text-error">Nincs elérhető off-drive cél</span>
|
||||
</div>
|
||||
<div class="sysinfo-row">
|
||||
<span class="sysinfo-label">Megjegyzés</span>
|
||||
<span class="sysinfo-value" style="color:var(--text-muted)">{{.NoTargetReason}}</span>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="sysinfo-row">
|
||||
<span class="sysinfo-label">Cél meghajtó</span>
|
||||
<span class="sysinfo-value">{{.EffectiveLabel}}{{if .EffectiveIsSSD}} — csak DB/konfiguráció{{end}}</span>
|
||||
</div>
|
||||
<div class="sysinfo-row">
|
||||
<span class="sysinfo-label">Kiválasztás módja</span>
|
||||
<span class="sysinfo-value" style="color:var(--text-muted)">{{if .Preferred}}kézi választás{{else}}automatikus{{end}} — {{.EffectiveDesc}}</span>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
{{if .EffectiveIsSSD}}
|
||||
<div class="monitoring-banner monitoring-banner-yellow" style="margin-top:1rem">
|
||||
Jelenleg csak a belső SSD érhető el 2. célként, ezért csak az adatbázis és a konfiguráció
|
||||
másolódik. A belső rendszerlemez kicsi, ezért a nagy fájlok off-drive mentéséhez egy
|
||||
<strong>2. adatmeghajtó</strong> szükséges (hogy a rendszerlemez ne teljen meg).
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<form method="POST" action="/stacks/{{$.StackName}}/backup" style="margin-top:1.5rem">
|
||||
{{$.CSRFField}}
|
||||
<div class="form-group">
|
||||
<label style="display:flex;align-items:center;gap:.5rem">
|
||||
<input type="checkbox" name="enabled" value="on" {{if not .Disabled}}checked{{end}}>
|
||||
2. mentés bekapcsolva
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="target">Cél meghajtó</label>
|
||||
<select id="target" name="target" class="form-control">
|
||||
<option value="">Automatikus{{if not .NoTarget}} (jelenleg: {{.EffectiveLabel}}){{end}}</option>
|
||||
{{range .Alternatives}}
|
||||
<option value="{{.Path}}" {{if eq .Path $.Tier2.Preferred}}selected{{end}}>{{.Label}}</option>
|
||||
{{end}}
|
||||
</select>
|
||||
{{if not .Alternatives}}
|
||||
<div style="font-size:.8rem;color:var(--text-muted);margin-top:.4rem">
|
||||
Nincs másik adatmeghajtó — automatikus cél a belső SSD (csak DB/konfiguráció). Egy 2.
|
||||
adatmeghajtó hozzáadásával a teljes adat is off-drive menthető.
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Mentés</button>
|
||||
</form>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
{{template "layout_end" .}}
|
||||
{{end}}
|
||||
Reference in New Issue
Block a user