show error when notes run on non-http, fix load order to make sure upcoming slide...
authorhakimel <hakim.elhattab@gmail.com>
Wed, 23 Jan 2013 16:04:04 +0000 (11:04 -0500)
committerhakimel <hakim.elhattab@gmail.com>
Wed, 23 Jan 2013 16:04:10 +0000 (11:04 -0500)
plugin/notes/notes.html

index ed2a41511812547ba36866cf8774142f54374355..abfc20c82198147218f5c44f14e911ce05c90e18 100644 (file)
                                font-size: 14px;
                                color: rgba( 255, 255, 255, 0.9 );
                        }
+
+                       .error {
+                               font-weight: bold;
+                               color: red;
+                               font-size: 1.5em;
+                               text-align: center;
+                               margin-top: 10%;
+                       }
+
+                       .error code {
+                               font-family: monospace;
+                       }
                </style>
        </head>
 
        <body>
 
                <div id="wrap-current-slide" class="slides">
-                       <iframe width="1280" height="1024" id="current-slide"></iframe>
+                       <script>document.write( '<iframe width="1280" height="1024" id="current-slide" src="'+ window.opener.location.href +'"></iframe>' );</script>
                </div>
 
                <div id="wrap-next-slide" class="slides">
-                       <iframe width="640" height="512" id="next-slide"></iframe>
+                       <script>document.write( '<iframe width="640" height="512" id="next-slide" src="'+ window.opener.location.href +'"></iframe>' );</script>
                        <span>UPCOMING:</span>
                </div>
                <div id="notes"></div>
                <script>
                        window.addEventListener( 'load', function() {
 
-                               // ASEEMK: fix for calling talk may not be at index.html.
-                               var iframes = document.querySelectorAll( '.slides iframe' );
-                               [].slice.call(iframes).forEach(function (iframe) {
-                                       iframe.src = window.opener ? window.opener.location.href : '/';
-                               });
-
-                               (function( window, undefined ) {
-                                       var notes = document.getElementById( 'notes' ),
-                                               currentSlide = document.getElementById( 'current-slide' ),
-                                               nextSlide = document.getElementById( 'next-slide' );
-
-                                       window.addEventListener( 'message', function( event ) {
-                                               var data = JSON.parse( event.data );
-                                               // No need for updating the notes in case of fragment changes
-                                               if ( data.notes !== undefined) {
-                                                       if( data.markdown ) {
-                                                               notes.innerHTML = (new Showdown.converter()).makeHtml( data.notes );
+                               if( window.opener && window.opener.location && window.opener.location.href ) {
+
+                                       (function( window, undefined ) {
+                                               var notes = document.getElementById( 'notes' ),
+                                                       currentSlide = document.getElementById( 'current-slide' ),
+                                                       nextSlide = document.getElementById( 'next-slide' );
+
+                                               window.addEventListener( 'message', function( event ) {
+                                                       var data = JSON.parse( event.data );
+                                                       // No need for updating the notes in case of fragment changes
+                                                       if ( data.notes !== undefined) {
+                                                               if( data.markdown ) {
+                                                                       notes.innerHTML = (new Showdown.converter()).makeHtml( data.notes );
+                                                               }
+                                                               else {
+                                                                       notes.innerHTML = data.notes;
+                                                               }
+                                                       }
+
+                                                       // Showing and hiding fragments
+                                                       if( data.fragment === 'next' ) {
+                                                               currentSlide.contentWindow.Reveal.nextFragment();
+                                                       }
+                                                       else if( data.fragment === 'prev' ) {
+                                                               currentSlide.contentWindow.Reveal.prevFragment();
                                                        }
                                                        else {
-                                                               notes.innerHTML = data.notes;
+                                                               // Update the note slides
+                                                               currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv );
+                                                               nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv );
                                                        }
-                                               }
-
-                                               // Showing and hiding fragments
-                                               if( data.fragment === 'next' ) {
-                                                       currentSlide.contentWindow.Reveal.nextFragment();
-                                               }
-                                               else if( data.fragment === 'prev' ) {
-                                                       currentSlide.contentWindow.Reveal.prevFragment();
-                                               }
-                                               else {
-                                                       // Update the note slides
-                                                       currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv );
-                                                       nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv );
-                                               }
-
-                                       }, false );
-
-                               })( window );
+
+                                               }, false );
+
+                                       })( window );
+
+                               }
+                               else {
+
+                                       document.body.innerHTML =  '<p class="error">Unable to access <code>window.opener.location</code>.<br>Make sure the presentation is running on a web server.</p>';
+
+                               }
 
                        }, false );