client.js
57 lines
| 1.6 KiB
| application/javascript
|
JavascriptLexer
damianavila
|
r8815 | (function() { | ||
// don't emit events from inside the previews themselves | ||||
if ( window.location.search.match( /receiver/gi ) ) { return; } | ||||
var socket = io.connect(window.location.origin); | ||||
var socketId = Math.random().toString().slice(2); | ||||
console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId); | ||||
window.open(window.location.origin + '/notes/' + socketId, 'notes-' + socketId); | ||||
// Fires when a fragment is shown | ||||
Reveal.addEventListener( 'fragmentshown', function( event ) { | ||||
var fragmentData = { | ||||
fragment : 'next', | ||||
socketId : socketId | ||||
}; | ||||
socket.emit('fragmentchanged', fragmentData); | ||||
} ); | ||||
// Fires when a fragment is hidden | ||||
Reveal.addEventListener( 'fragmenthidden', function( event ) { | ||||
var fragmentData = { | ||||
fragment : 'previous', | ||||
socketId : socketId | ||||
}; | ||||
socket.emit('fragmentchanged', fragmentData); | ||||
} ); | ||||
// Fires when slide is changed | ||||
Reveal.addEventListener( 'slidechanged', function( event ) { | ||||
var nextindexh; | ||||
var nextindexv; | ||||
var slideElement = event.currentSlide; | ||||
if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') { | ||||
nextindexh = event.indexh; | ||||
nextindexv = event.indexv + 1; | ||||
} else { | ||||
nextindexh = event.indexh + 1; | ||||
nextindexv = 0; | ||||
} | ||||
var notes = slideElement.querySelector('aside.notes'); | ||||
var slideData = { | ||||
notes : notes ? notes.innerHTML : '', | ||||
indexh : event.indexh, | ||||
indexv : event.indexv, | ||||
nextindexh : nextindexh, | ||||
nextindexv : nextindexv, | ||||
socketId : socketId, | ||||
markdown : notes ? typeof notes.getAttribute('data-markdown') === 'string' : false | ||||
}; | ||||
socket.emit('slidechanged', slideData); | ||||
} ); | ||||
}()); | ||||