Change : UI/UX design
This commit is contained in:
@@ -1,33 +1,9 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
|
||||
{# ── Extra styles scoped to this page ── #}
|
||||
{# ── Extra styles scoped to this page (modals only) ── #}
|
||||
<style>
|
||||
/* ── BACKUP ITEMS ──────────────────────────────────────────────── */
|
||||
.backup-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 10px 14px;
|
||||
border-radius: 10px;
|
||||
background: var(--surface2);
|
||||
border: 1px solid var(--border);
|
||||
gap: 10px;
|
||||
flex-wrap: wrap;
|
||||
transition: border-color 0.15s, background 0.15s;
|
||||
}
|
||||
.backup-item:hover { border-color: var(--border2); background: var(--bg4); }
|
||||
|
||||
.backup-name {
|
||||
font-family: var(--mono);
|
||||
font-size: 12px;
|
||||
color: var(--text2);
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.backup-actions { display: flex; gap: 5px; align-items: center; flex-shrink: 0; }
|
||||
|
||||
/* ── ENHANCED MODAL ─────────────────────────────────────────── */
|
||||
/* page-specific modal styles — backup layout lives in style.css */
|
||||
.modal-overlay {
|
||||
position: fixed; inset: 0; z-index: 1000;
|
||||
background: rgba(0,0,0,0.72);
|
||||
@@ -298,18 +274,20 @@
|
||||
<button class="btn btn-ghost btn-sm" onclick="refreshBackupsList()"><i class="fas fa-sync-alt"></i> Refresh</button>
|
||||
</div>
|
||||
|
||||
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;">
|
||||
<div class="backup-columns">
|
||||
|
||||
{# LOCAL #}
|
||||
<div>
|
||||
<div class="section-header">
|
||||
<div class="section-title">🖥️ MAIN SERVER</div>
|
||||
<div class="backup-column">
|
||||
<div class="backup-column-header">
|
||||
<div class="section-title">🖥️ Main Server</div>
|
||||
<span class="card-meta">/root/backups/</span>
|
||||
</div>
|
||||
<div class="backup-list" id="local-backup-list">
|
||||
{% for b in backups %}
|
||||
<div class="backup-item">
|
||||
<span class="backup-name">{{ b }}</span>
|
||||
<div class="backup-item-main">
|
||||
<span class="backup-name">{{ b }}</span>
|
||||
</div>
|
||||
<div class="backup-actions">
|
||||
<button class="btn btn-ghost btn-sm" style="color:var(--text3);" onclick="showBackupDetails('local','{{ b }}',this)" title="Quick details"><i class="fas fa-circle-info"></i></button>
|
||||
<button class="btn btn-ghost btn-sm btn-audit" onclick="auditBackup('local','{{ b }}',this)"><i class="fas fa-shield-check"></i> Audit</button>
|
||||
@@ -323,15 +301,17 @@
|
||||
</div>
|
||||
|
||||
{# VM #}
|
||||
<div>
|
||||
<div class="section-header">
|
||||
<div class="section-title">💾 VM SERVER</div>
|
||||
<div class="backup-column">
|
||||
<div class="backup-column-header">
|
||||
<div class="section-title">💾 VM Server</div>
|
||||
<span class="card-meta">/backups/main-server/</span>
|
||||
</div>
|
||||
<div class="backup-list" id="vm-backup-list">
|
||||
{% for b in vm_backups %}
|
||||
<div class="backup-item">
|
||||
<span class="backup-name">{{ b }}</span>
|
||||
<div class="backup-item-main">
|
||||
<span class="backup-name">{{ b }}</span>
|
||||
</div>
|
||||
<div class="backup-actions">
|
||||
<button class="btn btn-ghost btn-sm" style="color:var(--text3);" onclick="showBackupDetails('vm','{{ b }}',this)" title="Quick details"><i class="fas fa-circle-info"></i></button>
|
||||
<button class="btn btn-ghost btn-sm btn-audit" onclick="auditBackup('vm','{{ b }}',this)"><i class="fas fa-shield-check"></i> Audit</button>
|
||||
@@ -344,9 +324,9 @@
|
||||
</div>
|
||||
|
||||
{# CLOUD R2 #}
|
||||
<div>
|
||||
<div class="section-header">
|
||||
<div class="section-title">☁️ CLOUD (R2)</div>
|
||||
<div class="backup-column">
|
||||
<div class="backup-column-header">
|
||||
<div class="section-title">☁️ Cloud (R2)</div>
|
||||
<span class="card-meta">navitrends-backups</span>
|
||||
</div>
|
||||
<div class="backup-list" id="cloud-backup-list">
|
||||
@@ -363,7 +343,7 @@
|
||||
<div class="card-title"><i class="fas fa-clock-rotate-left"></i> Backup History</div>
|
||||
<button class="btn btn-ghost btn-sm" onclick="loadBackupLog()"><i class="fas fa-sync-alt"></i> Refresh</button>
|
||||
</div>
|
||||
<div id="backup-history-list"><div class="empty-state"><i class="fas fa-spinner fa-spin"></i> Loading…</div></div>
|
||||
<div id="backup-history-list" class="cloud-backup-list"><div class="empty-state"><i class="fas fa-spinner fa-spin"></i> Loading…</div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -734,11 +714,9 @@ async function loadCloudBackupsColumn() {
|
||||
const archives = data.backups.filter(b => b.name.endsWith('.tar.gz'));
|
||||
list.innerHTML = archives.map(b => `
|
||||
<div class="backup-item">
|
||||
<div style="display:flex;flex-direction:column;gap:2px;min-width:0;">
|
||||
<span class="backup-name" style="font-size:11px;">
|
||||
<i class="fas fa-cloud" style="color:var(--accent2);font-size:10px;margin-right:4px;"></i>${b.name}
|
||||
</span>
|
||||
<span style="font-size:10px;color:var(--text3);font-family:var(--mono);">${b.size_human} · ${b.last_modified_str}</span>
|
||||
<div class="backup-item-main">
|
||||
<span class="backup-name"><i class="fas fa-cloud" style="color:var(--accent2);"></i>${b.name}</span>
|
||||
<span class="backup-meta">${b.size_human} · ${b.last_modified_str}</span>
|
||||
</div>
|
||||
<div class="backup-actions">
|
||||
<button class="btn btn-ghost btn-sm btn-audit" onclick="auditCloudBackup('${b.key}', this)" title="Audit R2 integrity">
|
||||
|
||||
Reference in New Issue
Block a user