Merge branch 'main' of https://gitea.staxriver.com/staxriver/padelclub_backend
commit
731c3fc1fb
@ -0,0 +1,67 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html> |
||||||
|
<head> |
||||||
|
<title>Club Auto Broadcast</title> |
||||||
|
<style> |
||||||
|
* { |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
|
||||||
|
html, body { |
||||||
|
height: 100%; |
||||||
|
overflow: hidden; |
||||||
|
background-color: #000; |
||||||
|
} |
||||||
|
|
||||||
|
iframe { |
||||||
|
width: 100vw; |
||||||
|
height: 100vh; |
||||||
|
border: none; |
||||||
|
display: block; |
||||||
|
background-color: #000; |
||||||
|
} |
||||||
|
</style> |
||||||
|
</head> |
||||||
|
|
||||||
|
<body> |
||||||
|
<iframe id="tournamentFrame" src="about:blank"></iframe> |
||||||
|
|
||||||
|
<script> |
||||||
|
const tournamentIds = {{ tournament_ids|safe }}; |
||||||
|
let currentIndex = 0; |
||||||
|
const frame = document.getElementById('tournamentFrame'); |
||||||
|
|
||||||
|
function loadNextTournament() { |
||||||
|
if (tournamentIds.length === 0) { |
||||||
|
document.body.innerHTML = '<div style="display: flex; align-items: center; justify-content: center; height: 100vh; font-size: 24px; color: white;">Aucun tournoi disponible pour {{ club_name }}</div>'; |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
const tournamentId = tournamentIds[currentIndex]; |
||||||
|
const url = `/tournament/${tournamentId}/broadcast/auto/`; |
||||||
|
|
||||||
|
console.log(`Loading tournament ${currentIndex + 1}/${tournamentIds.length}: ${tournamentId.substring(0, 8)}`); |
||||||
|
|
||||||
|
frame.src = url; |
||||||
|
currentIndex = (currentIndex + 1) % tournamentIds.length; |
||||||
|
} |
||||||
|
|
||||||
|
// Listen for cycle completion messages from tournament iframe |
||||||
|
window.addEventListener('message', function(event) { |
||||||
|
if (event.data.type === 'tournamentCycleComplete') { |
||||||
|
console.log(`Tournament completed (${event.data.reason})`); |
||||||
|
setTimeout(loadNextTournament, 1000); // Switch after 1 second |
||||||
|
} else if (event.data.type === 'tournamentError') { |
||||||
|
console.error(`Tournament ${event.data.tournamentId.substring(0, 8)} failed: ${event.data.error}`); |
||||||
|
console.log('Switching to next tournament due to error...'); |
||||||
|
setTimeout(loadNextTournament, 2000); // Switch after 2 seconds on error |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
// Load first tournament immediately |
||||||
|
loadNextTournament(); |
||||||
|
</script> |
||||||
|
</body> |
||||||
|
</html> |
||||||
@ -0,0 +1,67 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html> |
||||||
|
<head> |
||||||
|
<title>Event Auto Broadcast</title> |
||||||
|
<style> |
||||||
|
* { |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
|
||||||
|
html, body { |
||||||
|
height: 100%; |
||||||
|
overflow: hidden; |
||||||
|
background-color: #000; |
||||||
|
} |
||||||
|
|
||||||
|
iframe { |
||||||
|
width: 100vw; |
||||||
|
height: 100vh; |
||||||
|
border: none; |
||||||
|
display: block; |
||||||
|
background-color: #000; |
||||||
|
} |
||||||
|
</style> |
||||||
|
</head> |
||||||
|
|
||||||
|
<body> |
||||||
|
<iframe id="tournamentFrame" src="about:blank"></iframe> |
||||||
|
|
||||||
|
<script> |
||||||
|
const tournamentIds = {{ tournament_ids|safe }}; |
||||||
|
let currentIndex = 0; |
||||||
|
const frame = document.getElementById('tournamentFrame'); |
||||||
|
|
||||||
|
function loadNextTournament() { |
||||||
|
if (tournamentIds.length === 0) { |
||||||
|
document.body.innerHTML = '<div style="display: flex; align-items: center; justify-content: center; height: 100vh; font-size: 24px; color: white;">Aucun tournoi disponible</div>'; |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
const tournamentId = tournamentIds[currentIndex]; |
||||||
|
const url = `/tournament/${tournamentId}/broadcast/auto/`; |
||||||
|
|
||||||
|
console.log(`Loading tournament ${currentIndex + 1}/${tournamentIds.length}: ${tournamentId.substring(0, 8)}`); |
||||||
|
|
||||||
|
frame.src = url; |
||||||
|
currentIndex = (currentIndex + 1) % tournamentIds.length; |
||||||
|
} |
||||||
|
|
||||||
|
// Listen for cycle completion messages from tournament iframe |
||||||
|
window.addEventListener('message', function(event) { |
||||||
|
if (event.data.type === 'tournamentCycleComplete') { |
||||||
|
console.log(`Tournament completed (${event.data.reason})`); |
||||||
|
setTimeout(loadNextTournament, 1000); // Switch after 1 second |
||||||
|
} else if (event.data.type === 'tournamentError') { |
||||||
|
console.error(`Tournament ${event.data.tournamentId.substring(0, 8)} failed: ${event.data.error}`); |
||||||
|
console.log('Switching to next tournament due to error...'); |
||||||
|
setTimeout(loadNextTournament, 2000); // Switch after 2 seconds on error |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
// Load first tournament immediately |
||||||
|
loadNextTournament(); |
||||||
|
</script> |
||||||
|
</body> |
||||||
|
</html> |
||||||
Loading…
Reference in new issue