Add manual refresh buttons for all servers and individual servers
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
<header>
|
||||
<h1>Infrastructure Map</h1>
|
||||
<span class="subtitle">Auto-refreshes every 60s | Built: {{ build_date }}</span>
|
||||
<button class="refresh-btn" onclick="triggerRefresh(this)" title="Force re-collect from all servers">↻ Refresh</button>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
@@ -52,6 +53,7 @@
|
||||
{% if server.url %}
|
||||
<a href="{{ server.url }}" class="server-link" target="_blank" rel="noopener" onclick="event.stopPropagation();" title="{{ server.url }}">↗</a>
|
||||
{% endif %}
|
||||
<button class="refresh-btn-sm" onclick="event.stopPropagation(); refreshServer(this, {{ server.id }})" title="Refresh this server">↻</button>
|
||||
</div>
|
||||
<div class="server-ip">{{ server.primary_ip or 'No IP' }}</div>
|
||||
<div class="server-os">{% if sys.get('platform') %}{{ sys.get('platform')|capitalize }} {{ sys.get('platform_version', '') }} / {% endif %}{{ sys.get('os_pretty', '') }}</div>
|
||||
@@ -411,6 +413,22 @@
|
||||
if (card) toggleDetails(card);
|
||||
}
|
||||
|
||||
function refreshServer(btn, serverId) {
|
||||
btn.disabled = true;
|
||||
btn.textContent = '...';
|
||||
fetch('/api/servers/' + serverId + '/refresh', {method: 'POST'})
|
||||
.then(() => location.reload());
|
||||
}
|
||||
|
||||
function triggerRefresh(btn) {
|
||||
btn.disabled = true;
|
||||
btn.textContent = 'Collecting...';
|
||||
fetch('/api/refresh', {method: 'POST'}).then(() => {
|
||||
// Wait a few seconds for collection to finish, then reload
|
||||
setTimeout(() => location.reload(), 8000);
|
||||
});
|
||||
}
|
||||
|
||||
// If no servers have data yet, refresh quickly; otherwise every 60s
|
||||
const hasData = document.querySelectorAll('.server-card').length > 0;
|
||||
const refreshMs = hasData ? 60000 : 5000;
|
||||
|
||||
Reference in New Issue
Block a user