vers. 2.6.0

This commit is contained in:
2026-07-14 04:33:26 +02:00
parent 42eebc9484
commit 189a9114ff
10 changed files with 964 additions and 169 deletions
+64
View File
@@ -1043,11 +1043,75 @@ document.addEventListener('DOMContentLoaded', function () {
if (homeNav) homeNav.style.display = 'block';
};
/**
* Gestione dello stato Offline
*/
function initOfflineDetection() {
let offlineOverlay = document.getElementById('offlineOverlay');
if (!offlineOverlay) {
offlineOverlay = document.createElement('div');
offlineOverlay.id = 'offlineOverlay';
offlineOverlay.className = 'offline-overlay';
offlineOverlay.innerHTML = `
<div class="offline-content">
<span class="material-icons offline-icon">wifi_off</span>
<h2 class="offline-title">Nessuna Connessione</h2>
<p class="offline-desc">Sembra che tu sia offline. Controlla la tua connessione internet per continuare ad ascoltare RPIGroup Play.</p>
<button class="offline-btn" id="offlineRetryBtn">
<span class="material-icons">refresh</span> Riprova
</button>
</div>
`;
document.body.appendChild(offlineOverlay);
const retryBtn = document.getElementById('offlineRetryBtn');
if (retryBtn) {
retryBtn.addEventListener('click', function() {
retryBtn.disabled = true;
retryBtn.innerHTML = '<span class="material-icons spinner-offline" style="animation: spin 1s infinite linear; vertical-align: middle;">sync</span> Verifica in corso...';
fetch(BASE_PATH + '/robots.txt', { cache: 'no-store', mode: 'no-cors' })
.then(() => {
offlineOverlay.classList.remove('active');
window.location.reload();
})
.catch(() => {
setTimeout(() => {
retryBtn.disabled = false;
retryBtn.innerHTML = '<span class="material-icons">refresh</span> Riprova';
}, 1000);
});
});
}
}
function showOfflineOverlay() {
offlineOverlay.classList.add('active');
}
function hideOfflineOverlay() {
offlineOverlay.classList.remove('active');
}
window.addEventListener('offline', showOfflineOverlay);
window.addEventListener('online', () => {
hideOfflineOverlay();
console.log('Dispositivo tornato online. Ripristino...');
});
if (!navigator.onLine) {
showOfflineOverlay();
}
}
/**
* Inizializzazione principale
*/
function init() {
console.log('Inizializzazione app...');
// Rilevamento stato offline
initOfflineDetection();
setupOpenAppButton();