aboutsummaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2013-07-26 09:48:21 -0400
committerHakim El Hattab <hakim.elhattab@gmail.com>2013-07-26 09:48:21 -0400
commit03385d7245f8c0428b5f8d8578022fb3a60fdd12 (patch)
treeb4fc77ce729d8228b47da5bdb775d980e68d80d7 /plugin
parent8bf19ab61f8eb0e527348110f3923a33ea937eaa (diff)
downloadperl-software-in-gnu-guix-03385d7245f8c0428b5f8d8578022fb3a60fdd12.tar
perl-software-in-gnu-guix-03385d7245f8c0428b5f8d8578022fb3a60fdd12.tar.gz
simplify client side notes plugin
Diffstat (limited to 'plugin')
-rw-r--r--plugin/notes/notes.html16
-rw-r--r--plugin/notes/notes.js72
2 files changed, 29 insertions, 59 deletions
diff --git a/plugin/notes/notes.html b/plugin/notes/notes.html
index 8af43fb..9151663 100644
--- a/plugin/notes/notes.html
+++ b/plugin/notes/notes.html
@@ -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 );
diff --git a/plugin/notes/notes.js b/plugin/notes/notes.js
index 63de05a..9a82c3c 100644
--- a/plugin/notes/notes.js
+++ b/plugin/notes/notes.js
@@ -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;
- }
-
- 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'
- };
+ 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 : 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 );
}