simplify client side notes plugin
This commit is contained in:
		@@ -173,6 +173,7 @@
 | 
			
		||||
 | 
			
		||||
					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 ) {
 | 
			
		||||
@@ -183,18 +184,9 @@
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
 | 
			
		||||
						// 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 );
 | 
			
		||||
						}
 | 
			
		||||
						// Update the note slides
 | 
			
		||||
						currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv, data.indexf );
 | 
			
		||||
						nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv );
 | 
			
		||||
 | 
			
		||||
					}, false );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,72 +10,50 @@ var RevealNotes = (function() {
 | 
			
		||||
		var notesPopup = window.open( jsFileLocation + 'notes.html', 'reveal.js - Notes', 'width=1120,height=850' );
 | 
			
		||||
 | 
			
		||||
		// Fires when slide is changed
 | 
			
		||||
		Reveal.addEventListener( 'slidechanged', function( event ) {
 | 
			
		||||
			post('slidechanged');
 | 
			
		||||
		} );
 | 
			
		||||
		Reveal.addEventListener( 'slidechanged', post );
 | 
			
		||||
 | 
			
		||||
		// Fires when a fragment is shown
 | 
			
		||||
		Reveal.addEventListener( 'fragmentshown', function( event ) {
 | 
			
		||||
			post('fragmentshown');
 | 
			
		||||
		} );
 | 
			
		||||
		Reveal.addEventListener( 'fragmentshown', post );
 | 
			
		||||
 | 
			
		||||
		// Fires when a fragment is hidden
 | 
			
		||||
		Reveal.addEventListener( 'fragmenthidden', function( event ) {
 | 
			
		||||
			post('fragmenthidden');
 | 
			
		||||
		} );
 | 
			
		||||
		Reveal.addEventListener( 'fragmenthidden', post );
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * Posts the current slide data to the notes window
 | 
			
		||||
		 *
 | 
			
		||||
		 * @param {String} eventType Expecting 'slidechanged', 'fragmentshown' 
 | 
			
		||||
		 * or 'fragmenthidden' set in the events above to define the needed 
 | 
			
		||||
		 * slideDate.
 | 
			
		||||
		 */
 | 
			
		||||
		function post( eventType ) {
 | 
			
		||||
		function post() {
 | 
			
		||||
			var slideElement = Reveal.getCurrentSlide(),
 | 
			
		||||
				slideIndices = Reveal.getIndices(),
 | 
			
		||||
				messageData;
 | 
			
		||||
 | 
			
		||||
			if( eventType === 'slidechanged' ) {
 | 
			
		||||
				var notes = slideElement.querySelector( 'aside.notes' ),
 | 
			
		||||
					indexh = Reveal.getIndices().h,
 | 
			
		||||
					indexv = Reveal.getIndices().v,
 | 
			
		||||
					nextindexh,
 | 
			
		||||
					nextindexv;
 | 
			
		||||
			var notes = slideElement.querySelector( 'aside.notes' ),
 | 
			
		||||
				nextindexh,
 | 
			
		||||
				nextindexv;
 | 
			
		||||
 | 
			
		||||
				if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
 | 
			
		||||
					nextindexh = indexh;
 | 
			
		||||
					nextindexv = indexv + 1;
 | 
			
		||||
				} else {
 | 
			
		||||
					nextindexh = indexh + 1;
 | 
			
		||||
					nextindexv = 0;
 | 
			
		||||
				}
 | 
			
		||||
			if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
 | 
			
		||||
				nextindexh = slideIndices.h;
 | 
			
		||||
				nextindexv = slideIndices.v + 1;
 | 
			
		||||
			} else {
 | 
			
		||||
				nextindexh = slideIndices.h + 1;
 | 
			
		||||
				nextindexv = 0;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
				messageData = {
 | 
			
		||||
					notes : notes ? notes.innerHTML : '',
 | 
			
		||||
					indexh : indexh,
 | 
			
		||||
					indexv : indexv,
 | 
			
		||||
					nextindexh : nextindexh,
 | 
			
		||||
					nextindexv : nextindexv,
 | 
			
		||||
					markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			else if( eventType === 'fragmentshown' ) {
 | 
			
		||||
				messageData = {
 | 
			
		||||
					fragment : 'next'
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			else if( eventType === 'fragmenthidden' ) {
 | 
			
		||||
				messageData = {
 | 
			
		||||
					fragment : 'prev'
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			messageData = {
 | 
			
		||||
				notes : notes ? notes.innerHTML : '',
 | 
			
		||||
				indexh : slideIndices.h,
 | 
			
		||||
				indexv : slideIndices.v,
 | 
			
		||||
				indexf : slideIndices.f,
 | 
			
		||||
				nextindexh : nextindexh,
 | 
			
		||||
				nextindexv : nextindexv,
 | 
			
		||||
				markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			notesPopup.postMessage( JSON.stringify( messageData ), '*' );
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Navigate to the current slide when the notes are loaded
 | 
			
		||||
		notesPopup.addEventListener( 'load', function( event ) {
 | 
			
		||||
			post('slidechanged');
 | 
			
		||||
			post();
 | 
			
		||||
		}, false );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user