2012-06-08 03:21:14 +00:00
|
|
|
(function() {
|
2012-07-01 20:43:43 +00:00
|
|
|
// don't emit events from inside the previews themselves
|
2012-07-04 18:42:27 +00:00
|
|
|
if ( window.location.search.match( /receiver/gi ) ) { return; }
|
2012-06-08 03:21:14 +00:00
|
|
|
|
2012-07-01 20:43:43 +00:00
|
|
|
var socket = io.connect(window.location.origin);
|
|
|
|
var socketId = Math.random().toString().slice(2);
|
2012-07-04 18:18:09 +00:00
|
|
|
|
2012-09-10 02:17:32 +00:00
|
|
|
console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId);
|
2012-10-18 21:56:51 +00:00
|
|
|
window.open(window.location.origin + '/notes/' + socketId, 'notes-' + socketId);
|
2012-06-17 22:43:29 +00:00
|
|
|
|
2012-10-18 22:04:40 +00:00
|
|
|
// Fires when a fragment is shown
|
|
|
|
Reveal.addEventListener( 'fragmentshown', function( event ) {
|
|
|
|
var fragmentData = {
|
2012-10-18 22:12:53 +00:00
|
|
|
fragment : 'next',
|
2012-10-18 22:04:40 +00:00
|
|
|
socketId : socketId
|
|
|
|
};
|
|
|
|
socket.emit('fragmentchanged', fragmentData);
|
|
|
|
} );
|
|
|
|
|
|
|
|
// Fires when a fragment is hidden
|
|
|
|
Reveal.addEventListener( 'fragmenthidden', function( event ) {
|
|
|
|
var fragmentData = {
|
2012-10-18 22:12:53 +00:00
|
|
|
fragment : 'previous',
|
2012-10-18 22:04:40 +00:00
|
|
|
socketId : socketId
|
|
|
|
};
|
|
|
|
socket.emit('fragmentchanged', fragmentData);
|
|
|
|
} );
|
|
|
|
|
|
|
|
// Fires when slide is changed
|
2012-07-01 20:43:43 +00:00
|
|
|
Reveal.addEventListener( 'slidechanged', function( event ) {
|
|
|
|
var nextindexh;
|
|
|
|
var nextindexv;
|
|
|
|
var slideElement = event.currentSlide;
|
2012-06-08 03:21:14 +00:00
|
|
|
|
2012-07-01 20:43:43 +00:00
|
|
|
if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
|
|
|
|
nextindexh = event.indexh;
|
|
|
|
nextindexv = event.indexv + 1;
|
|
|
|
} else {
|
|
|
|
nextindexh = event.indexh + 1;
|
|
|
|
nextindexv = 0;
|
|
|
|
}
|
2012-06-08 03:21:14 +00:00
|
|
|
|
2012-07-01 20:43:43 +00:00
|
|
|
var notes = slideElement.querySelector('aside.notes');
|
|
|
|
var slideData = {
|
|
|
|
notes : notes ? notes.innerHTML : '',
|
|
|
|
indexh : event.indexh,
|
|
|
|
indexv : event.indexv,
|
|
|
|
nextindexh : nextindexh,
|
|
|
|
nextindexv : nextindexv,
|
2012-09-09 02:05:19 +00:00
|
|
|
socketId : socketId,
|
2012-09-21 13:08:24 +00:00
|
|
|
markdown : notes ? typeof notes.getAttribute('data-markdown') === 'string' : false
|
2012-09-09 02:05:19 +00:00
|
|
|
|
2012-07-01 20:43:43 +00:00
|
|
|
};
|
2012-06-08 03:21:14 +00:00
|
|
|
|
2012-07-01 20:43:43 +00:00
|
|
|
socket.emit('slidechanged', slideData);
|
|
|
|
} );
|
2012-06-17 22:43:54 +00:00
|
|
|
}());
|