refator_comm1

This commit is contained in:
Mateusz Gruszczyński
2025-10-18 20:58:51 +02:00
parent 050d7d34df
commit 2682a0ff4f
11 changed files with 896 additions and 1035 deletions

View File

@@ -15,8 +15,9 @@
<div class="d-flex flex-wrap justify-content-between align-items-center mb-3 gap-2">
<h1 class="h4 m-0">PVE HA Panel</h1>
<div class="d-flex flex-wrap align-items-center gap-2">
<input class="form-control form-control-sm" id="node" value="{{ node }}" style="width: 180px">
<button class="btn btn-outline-secondary btn-sm" id="btnToggleAll">Collapse/Expand all</button>
<input class="form-control form-control-sm" id="node" value="{{ node }}" style="width: 180px" aria-label="Node">
<button class="btn btn-outline-secondary btn-sm" id="btnToggleAll" aria-expanded="false">Collapse/Expand
all</button>
<div class="vr d-none d-md-block"></div>
@@ -43,14 +44,14 @@
<!-- Global loading -->
<div id="global-loading" class="d-flex align-items-center gap-2 mb-3">
<div class="spinner-border spinner-border-sm" role="status"></div>
<div class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></div>
<span class="small text-muted">Loading data…</span>
</div>
<!-- HEALTH -->
<div class="card mb-3 border-0 shadow health-card">
<div class="card-body d-flex flex-wrap align-items-center gap-3">
<div class="health-dot" id="healthDot"></div>
<div class="health-dot" id="healthDot" aria-hidden="true"></div>
<div>
<div class="fw-bold" id="healthTitle">Loading…</div>
<div class="text-muted small" id="healthSub"></div>
@@ -137,6 +138,7 @@
<table class="table table-sm table-striped align-middle table-nowrap" id="ha-res">
<thead>
<tr>
<th class="w-1"></th>
<th>SID</th>
<th>State</th>
<th>Node</th>
@@ -146,36 +148,7 @@
</thead>
<tbody></tbody>
</table>
<div class="small text-muted">Click a row to expand VM/CT details.</div>
</div>
</div>
</div>
<!-- HA status -->
<div class="accordion-item">
<h2 class="accordion-header" id="h-hastatus">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
data-bs-target="#c-hastatus">
HA — status
</button>
</h2>
<div id="c-hastatus" class="accordion-collapse collapse" data-bs-parent="#acc">
<div class="accordion-body table-responsive">
<table class="table table-sm table-striped align-middle table-nowrap" id="ha-status">
<thead>
<tr>
<th>Node</th>
<th>Status</th>
<th>CRM</th>
<th>LRM</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="4" class="text-muted">Loading…</td>
</tr>
</tbody>
</table>
<div class="small text-muted">Kliknij wiersz, aby rozwinąć szczegóły VM/CT.</div>
</div>
</div>
</div>
@@ -212,6 +185,7 @@
<table class="table table-sm table-striped align-middle table-nowrap" id="nonha">
<thead>
<tr>
<th class="w-1"></th>
<th>SID</th>
<th>Type</th>
<th>Name</th>
@@ -221,11 +195,11 @@
</thead>
<tbody>
<tr>
<td colspan="5" class="text-muted">Loading…</td>
<td colspan="6" class="text-muted">Loading…</td>
</tr>
</tbody>
</table>
<div class="small text-muted">Click a row to expand VM/CT details.</div>
<div class="small text-muted">Kliknij wiersz, aby rozwinąć szczegóły VM/CT.</div>
</div>
</div>
</div>
@@ -253,7 +227,8 @@
</tr>
</tbody>
</table>
<div class="small text-muted">Akcje: Unlock (qm), Start/Stop/Shutdown, Offline migrate.</div>
<div class="small text-muted">Akcje: Unlock (qm), Start/Stop/Shutdown, Offline migrate. Postęp widoczny na
żywo per wiersz.</div>
</div>
</div>
</div>
@@ -265,6 +240,7 @@
<table class="table table-sm table-striped align-middle table-nowrap" id="nodes">
<thead>
<tr>
<th class="w-1"></th>
<th>Node</th>
<th>Status</th>
<th>CPU</th>
@@ -280,11 +256,10 @@
</tr>
</tbody>
</table>
<div class="small text-muted">Click a row to expand node details.</div>
<div class="small text-muted">Kliknij wiersz, aby rozwinąć szczegóły noda.</div>
</div>
</div>
</div>
</div>
<div class="text-muted small mt-3" id="footer"></div>
@@ -301,7 +276,6 @@
</div>
</div>
</footer>
</div>
<!-- Toasts -->
@@ -310,7 +284,8 @@
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="{{ url_for('static', filename='main.js') }}"></script>
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
</body>
</html>