speaker view has visible connection status, times out with error after 5s

This commit is contained in:
Hakim El Hattab 2018-04-24 14:23:28 +02:00
parent f1133f0e10
commit 5771ae39f0
2 changed files with 31 additions and 0 deletions

View file

@ -34,6 +34,22 @@
z-index: 2; z-index: 2;
} }
#connection-status {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 20;
padding: 30% 20% 20% 20%;
font-size: 18px;
color: #222;
background: #fff;
text-align: center;
box-sizing: border-box;
line-height: 1.4;
}
.overlay-element { .overlay-element {
height: 34px; height: 34px;
line-height: 34px; line-height: 34px;
@ -288,6 +304,8 @@
<body> <body>
<div id="connection-status">Loading speaker view...</div>
<div id="current-slide"></div> <div id="current-slide"></div>
<div id="upcoming-slide"><span class="overlay-element label">Upcoming</span></div> <div id="upcoming-slide"><span class="overlay-element label">Upcoming</span></div>
<div id="speaker-controls"> <div id="speaker-controls">
@ -340,8 +358,16 @@
setupLayout(); setupLayout();
var connectionStatus = document.querySelector( '#connection-status' );
var connectionTimeout = setTimeout( function() {
connectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';
}, 5000 );
window.addEventListener( 'message', function( event ) { window.addEventListener( 'message', function( event ) {
clearTimeout( connectionTimeout );
connectionStatus.style.display = 'none';
var data = JSON.parse( event.data ); var data = JSON.parse( event.data );
// The overview mode is only useful to the reveal.js instance // The overview mode is only useful to the reveal.js instance

View file

@ -21,6 +21,11 @@ var RevealNotes = (function() {
var notesPopup = window.open( notesFilePath, 'reveal.js - Notes', 'width=1100,height=700' ); var notesPopup = window.open( notesFilePath, 'reveal.js - Notes', 'width=1100,height=700' );
if( !notesPopup ) {
alert( 'Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.' );
return;
}
// Allow popup window access to Reveal API // Allow popup window access to Reveal API
notesPopup.Reveal = this.Reveal; notesPopup.Reveal = this.Reveal;