Handle browser-blocked status checks
All checks were successful
Build & Push Docker Image to Gitea Registry / build-and-push (push) Successful in 12s
All checks were successful
Build & Push Docker Image to Gitea Registry / build-and-push (push) Successful in 12s
This commit is contained in:
17
app.js
17
app.js
@@ -154,13 +154,19 @@ async function probeService(card) {
|
||||
});
|
||||
card.classList.add('is-online');
|
||||
card.classList.remove('is-offline');
|
||||
card.classList.remove('is-unknown');
|
||||
card.querySelector('.status-dot').setAttribute('aria-label', 'Online');
|
||||
return true;
|
||||
} catch {
|
||||
card.classList.add('is-offline');
|
||||
} catch (error) {
|
||||
const isTimeout = error.name === 'AbortError';
|
||||
card.classList.toggle('is-offline', isTimeout);
|
||||
card.classList.toggle('is-unknown', !isTimeout);
|
||||
card.classList.remove('is-online');
|
||||
card.querySelector('.status-dot').setAttribute('aria-label', 'Nicht erreichbar');
|
||||
return false;
|
||||
card.querySelector('.status-dot').setAttribute(
|
||||
'aria-label',
|
||||
isTimeout ? 'Nicht erreichbar' : 'Im Browser nicht pruefbar'
|
||||
);
|
||||
return isTimeout ? false : null;
|
||||
} finally {
|
||||
window.clearTimeout(timeout);
|
||||
}
|
||||
@@ -169,11 +175,12 @@ async function probeService(card) {
|
||||
async function refreshStatus() {
|
||||
const results = await Promise.allSettled(cards.map(probeService));
|
||||
const online = results.filter((result) => result.status === 'fulfilled' && result.value).length;
|
||||
const unknown = results.filter((result) => result.status === 'fulfilled' && result.value === null).length;
|
||||
onlineCount.textContent = String(online);
|
||||
lastChecked.textContent = `Status geprueft: ${new Date().toLocaleTimeString('de-DE', {
|
||||
hour: '2-digit',
|
||||
minute: '2-digit'
|
||||
})}`;
|
||||
})}${unknown ? `, ${unknown} im Browser nicht pruefbar` : ''}`;
|
||||
}
|
||||
|
||||
function scheduleStatusRefresh() {
|
||||
|
||||
Reference in New Issue
Block a user