diff --git a/src/pobsync_backend/templates/pobsync_backend/base.html b/src/pobsync_backend/templates/pobsync_backend/base.html index 403ced1..73606f4 100644 --- a/src/pobsync_backend/templates/pobsync_backend/base.html +++ b/src/pobsync_backend/templates/pobsync_backend/base.html @@ -144,6 +144,54 @@ font-size: 12px; gap: 10px; } + .host-list { + display: grid; + gap: 12px; + } + .host-card { + border: 1px solid var(--border); + border-radius: 8px; + padding: 14px; + } + .host-card-header { + align-items: start; + display: flex; + gap: 12px; + justify-content: space-between; + margin-bottom: 12px; + } + .host-card-title { + display: grid; + gap: 3px; + min-width: 0; + } + .host-card-title a { + font-size: 17px; + font-weight: 650; + overflow-wrap: anywhere; + } + .host-card-status { + flex: 0 0 auto; + } + .host-card-grid { + display: grid; + gap: 12px; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + } + .host-card-item { + display: grid; + gap: 3px; + min-width: 0; + } + .host-card-item .label { + color: var(--muted); + font-size: 12px; + font-weight: 650; + text-transform: uppercase; + } + .host-card-item .value { + overflow-wrap: anywhere; + } .messages { display: grid; gap: 8px; margin-bottom: 18px; } .message { background: var(--panel); diff --git a/src/pobsync_backend/templates/pobsync_backend/dashboard.html b/src/pobsync_backend/templates/pobsync_backend/dashboard.html index 5daff1c..1a51cbd 100644 --- a/src/pobsync_backend/templates/pobsync_backend/dashboard.html +++ b/src/pobsync_backend/templates/pobsync_backend/dashboard.html @@ -52,61 +52,74 @@

Hosts

- - - - - - - - - - - - - - - - - {% for host in hosts %} - - - - - - - - - - - - - {% empty %} - - {% endfor %} - -
HostAddressEnabledSnapshotsLatest SnapshotLatest RunNext RunNew DataRunsRetention
{{ host.host }}{{ host.address }}{{ host.enabled|yesno:"yes,no" }}{{ host.snapshot_count }} +
+ {% for host in hosts %} +
+
+
+ {{ host.host }} + {{ host.address }} +
+
+ {{ host.enabled|yesno:"enabled,disabled" }} +
+
+
+
+
Latest Snapshot
+
{% if host.latest_snapshot %} {{ host.latest_snapshot.dirname }}
{{ host.latest_snapshot.kind }} {{ host.latest_snapshot.status }}
{% else %} none {% endif %} -
+ + +
+
Latest Run
+
{% if host.stats_summary.latest_run.id %} Run {{ host.stats_summary.latest_run.id }}
{{ host.stats_summary.latest_run.run_type }} {{ host.stats_summary.latest_run.duration_seconds|default:"" }}{% if host.stats_summary.latest_run.duration_seconds is not None %}s{% endif %}
{% else %} none {% endif %} -
+ + +
+
Next Run
+
{% if host.next_run_at %} {{ host.next_run_at|date:"Y-m-d H:i T" }}
{{ scheduler_timezone }}
{% else %} none {% endif %} -
{{ host.stats_summary.latest_run.rsync.literal_data_bytes|filesizeformat }}{{ host.run_count }}d{{ host.retention_daily }} w{{ host.retention_weekly }} m{{ host.retention_monthly }} y{{ host.retention_yearly }}
No hosts configured yet.
+ + +
+
Snapshots
+
{{ host.snapshot_count }}
+
+
+
Runs
+
{{ host.run_count }}
+
+
+
New Data
+
{{ host.stats_summary.latest_run.rsync.literal_data_bytes|filesizeformat }}
+
+
+
Retention
+
d{{ host.retention_daily }} w{{ host.retention_weekly }} m{{ host.retention_monthly }} y{{ host.retention_yearly }}
+
+ + + {% empty %} +

No hosts configured yet.

+ {% endfor %} +