diff --git a/controller/internal/backup/appdata.go b/controller/internal/backup/appdata.go index 03db7cb..7a141dc 100644 --- a/controller/internal/backup/appdata.go +++ b/controller/internal/backup/appdata.go @@ -96,10 +96,7 @@ func DiscoverAppData(provider StackDataProvider, backupPrefs map[string]bool, di info.BackupEnabled = backupPrefs[stack.Name] - // Only include apps that have some data to show - if info.HasHDDData || len(info.DockerVolumes) > 0 { - result = append(result, info) - } + result = append(result, info) } return result diff --git a/controller/internal/web/templates/backups.html b/controller/internal/web/templates/backups.html index 35bd14a..07f1262 100644 --- a/controller/internal/web/templates/backups.html +++ b/controller/internal/web/templates/backups.html @@ -233,53 +233,33 @@ {{end}} - + {{if .Backup.AppDataInfo}}

Alkalmazás adatok

-

Az alkalmazások felhasználói adatainak biztonsági mentése.

-
-
- {{range .Backup.AppDataInfo}} -
-
+

Az alkalmazások felhasználói adatainak mentési állapota. Beállítás az alkalmazás oldalán.

+
+ {{range .Backup.AppDataInfo}} +
+
+ {{.DisplayName}} +
{{if .HasHDDData}} - - {{else}} -
- - {{.DisplayName}} -
- {{end}} -
{{if .StorageLabel}}{{.StorageLabel}}{{end}} - {{if .HasHDDData}}{{.HDDSizeHuman}}{{end}} -
-
-
- {{range .HDDPaths}} -
{{.HostPath}} {{if .Exists}}({{.SizeHuman}}){{else}}(nem létezik){{end}}
- {{end}} - {{range .DockerVolumes}} -
Docker kötet: {{.Name}} (nem mentett)
- {{end}} - {{if .HasDBDump}} -
Adatbázis mentés naponta (DB dump)
+ {{if .BackupEnabled}} + {{.HDDSizeHuman}} + Aktív + {{else}} + Inaktív + {{end}} + {{else}} + N/A {{end}}
- {{end}}
-
- -
-
- Docker kötetek mentése jelenleg nem támogatott. Az adatbázisokat az automatikus DB dump menti naponta. -
- + {{end}} +
{{end}} diff --git a/controller/internal/web/templates/style.css b/controller/internal/web/templates/style.css index e2538b6..a727426 100644 --- a/controller/internal/web/templates/style.css +++ b/controller/internal/web/templates/style.css @@ -1804,7 +1804,7 @@ a.stat-card:hover { color: var(--text-primary); } -/* --- Backup page: App backup toggles --- */ +/* --- Backup page: App backup status (read-only) --- */ .backup-section-desc { color: var(--text-secondary); font-size: .85rem; @@ -1826,54 +1826,68 @@ a.stat-card:hover { display: flex; justify-content: space-between; align-items: center; - margin-bottom: .25rem; } -.app-backup-toggle { +.app-backup-name-link { + font-weight: 500; + font-size: .9rem; + color: var(--text-primary); + text-decoration: none; +} +.app-backup-name-link:hover { + color: var(--accent-blue); + text-decoration: underline; +} +.app-backup-status-row { display: flex; align-items: center; gap: .5rem; - cursor: pointer; -} -.app-backup-toggle input[type="checkbox"] { - accent-color: var(--accent-blue); -} -.app-backup-name { - font-weight: 500; - font-size: .9rem; -} -.app-backup-disabled-icon { - color: var(--text-muted); - font-size: .9rem; - width: 16px; - text-align: center; } .app-backup-size { font-size: .8rem; color: var(--text-muted); } -.app-backup-details { - padding-left: 1.5rem; -} -.app-backup-path { +.app-backup-status { font-size: .8rem; - color: var(--text-secondary); - padding: .1rem 0; + font-weight: 500; + display: inline-flex; + align-items: center; + gap: .35rem; } -.app-backup-volume { - font-size: .8rem; +.app-backup-status::before { + content: ''; + display: inline-block; + width: 8px; + height: 8px; + border-radius: 50%; + flex-shrink: 0; +} +.app-backup-active { + color: var(--green); +} +.app-backup-active::before { + background: var(--green); + box-shadow: 0 0 4px rgba(35, 134, 54, 0.4); +} +.app-backup-inactive { color: var(--text-muted); - padding: .1rem 0; } -.app-backup-dbinfo { - font-size: .8rem; +.app-backup-inactive::before { + border: 1px solid var(--text-muted); + background: transparent; + width: 6px; + height: 6px; +} +.app-backup-na { color: var(--text-muted); - padding: .1rem 0; } -.app-backup-actions { - margin-top: .75rem; -} -.app-backup-notice { - margin-top: .75rem; +.app-backup-na::before { + content: '—'; + width: auto; + height: auto; + border-radius: 0; + background: none; + border: none; + box-shadow: none; font-size: .8rem; }