UI: Disable auto-polling, add manual refresh
This commit is contained in:
parent
0856e733de
commit
d96cebbf4b
1 changed files with 24 additions and 4 deletions
|
|
@ -78,6 +78,16 @@
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@keyframes spin {
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.spin-anim {
|
||||||
|
animation: spin 0.5s linear;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|
@ -91,6 +101,9 @@
|
||||||
<span class="badge bg-secondary" id="connection-status">Connecting...</span>
|
<span class="badge bg-secondary" id="connection-status">Connecting...</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
<button class="btn btn-outline-secondary me-2" onclick="refreshAll()">
|
||||||
|
<i class="bi bi-arrow-clockwise"></i> Refresh
|
||||||
|
</button>
|
||||||
<a href="/transcode" class="btn btn-outline-primary">
|
<a href="/transcode" class="btn btn-outline-primary">
|
||||||
<i class="bi bi-film"></i> Transcode Manager
|
<i class="bi bi-film"></i> Transcode Manager
|
||||||
</a>
|
</a>
|
||||||
|
|
@ -341,13 +354,20 @@
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
// Poll for status every 2 seconds
|
// Initial Fetch
|
||||||
setInterval(fetchStatus, 2000);
|
document.addEventListener('DOMContentLoaded', refreshAll);
|
||||||
// Poll for logs every 1 second
|
|
||||||
setInterval(fetchLogs, 1000);
|
|
||||||
|
|
||||||
let lastLogIndex = 0;
|
let lastLogIndex = 0;
|
||||||
|
|
||||||
|
async function refreshAll() {
|
||||||
|
const btn = document.querySelector('button[onclick="refreshAll()"] i');
|
||||||
|
if (btn) btn.classList.add('spin-anim');
|
||||||
|
|
||||||
|
await Promise.all([fetchStatus(), fetchLogs()]);
|
||||||
|
|
||||||
|
if (btn) setTimeout(() => btn.classList.remove('spin-anim'), 500);
|
||||||
|
}
|
||||||
|
|
||||||
async function fetchStatus() {
|
async function fetchStatus() {
|
||||||
try {
|
try {
|
||||||
const res = await fetch('/api/status');
|
const res = await fetch('/api/status');
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue