Browse Source

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

Hakim El Hattab 6 years ago
parent
commit
5771ae39f0
2 changed files with 31 additions and 0 deletions
  1. 26 0
      plugin/notes/notes.html
  2. 5 0
      plugin/notes/notes.js

+ 26 - 0
plugin/notes/notes.html

@@ -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

+ 5 - 0
plugin/notes/notes.js

@@ -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;