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 ); | ||||
| 						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; | ||||
|  | ||||
| 			if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) { | ||||
| 					nextindexh = indexh; | ||||
| 					nextindexv = indexv + 1; | ||||
| 				nextindexh = slideIndices.h; | ||||
| 				nextindexv = slideIndices.v + 1; | ||||
| 			} else { | ||||
| 					nextindexh = indexh + 1; | ||||
| 				nextindexh = slideIndices.h + 1; | ||||
| 				nextindexv = 0; | ||||
| 			} | ||||
|  | ||||
| 			messageData = { | ||||
| 				notes : notes ? notes.innerHTML : '', | ||||
| 					indexh : indexh, | ||||
| 					indexv : indexv, | ||||
| 				indexh : slideIndices.h, | ||||
| 				indexv : slideIndices.v, | ||||
| 				indexf : slideIndices.f, | ||||
| 				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' | ||||
| 				}; | ||||
| 			} | ||||
|  | ||||
| 			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