Merge branch 'refs/heads/fix-fragments-in-speakernotes' into fragments-in-notes-server

Conflicts:
	js/reveal.min.js

Need to generate a new minified version afterwards.
edit
Michael Kühnel 2012-10-24 17:48:50 +02:00
commit 5af915adaf
6 changed files with 50 additions and 88 deletions

View File

@ -132,6 +132,8 @@ Reveal.up();
Reveal.down(); Reveal.down();
Reveal.prev(); Reveal.prev();
Reveal.next(); Reveal.next();
Reveal.prevFragment();
Reveal.nextFragment();
Reveal.toggleOverview(); Reveal.toggleOverview();
// Retrieves the previous and current slide elements // Retrieves the previous and current slide elements

View File

@ -1316,6 +1316,8 @@ var Reveal = (function(){
down: navigateDown, down: navigateDown,
prev: navigatePrev, prev: navigatePrev,
next: navigateNext, next: navigateNext,
prevFragment: previousFragment,
nextFragment: nextFragment,
// Deprecated aliases // Deprecated aliases
navigateTo: slide, navigateTo: slide,

81
js/reveal.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -6,8 +6,27 @@
var socketId = Math.random().toString().slice(2); var socketId = Math.random().toString().slice(2);
console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId); console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId);
window.open(window.location.origin + '/notes/' + socketId, '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 ) { Reveal.addEventListener( 'slidechanged', function( event ) {
var nextindexh; var nextindexh;
var nextindexv; var nextindexv;
@ -35,4 +54,4 @@
socket.emit('slidechanged', slideData); socket.emit('slidechanged', slideData);
} ); } );
}()); }());

View File

@ -18,6 +18,9 @@ io.sockets.on('connection', function(socket) {
socket.on('slidechanged', function(slideData) { socket.on('slidechanged', function(slideData) {
socket.broadcast.emit('slidedata', slideData); socket.broadcast.emit('slidedata', slideData);
}); });
socket.on('fragmentchanged', function(fragmentData) {
socket.broadcast.emit('fragmentdata', fragmentData);
});
}); });
app.configure(function() { app.configure(function() {
@ -52,4 +55,4 @@ var slidesLocation = "http://localhost" + ( opts.port ? ( ':' + opts.port ) : ''
console.log( brown + "reveal.js - Speaker Notes" + reset ); console.log( brown + "reveal.js - Speaker Notes" + reset );
console.log( "1. Open the slides at " + green + slidesLocation + reset ); console.log( "1. Open the slides at " + green + slidesLocation + reset );
console.log( "2. Click on the link your JS console to go to the notes page" ); console.log( "2. Click on the link your JS console to go to the notes page" );
console.log( "3. Advance through your slides and your notes will advance automatically" ); console.log( "3. Advance through your slides and your notes will advance automatically" );

View File

@ -112,17 +112,28 @@
// ignore data from sockets that aren't ours // ignore data from sockets that aren't ours
if (data.socketId !== socketId) { return; } if (data.socketId !== socketId) { return; }
if (data.markdown) { if (data.markdown) {
notes.innerHTML = (new Showdown.converter()).makeHtml(data.notes); notes.innerHTML = (new Showdown.converter()).makeHtml(data.notes);
} }
else { else {
notes.innerHTML = data.notes; notes.innerHTML = data.notes;
} }
currentSlide.contentWindow.Reveal.slide(data.indexh, data.indexv); currentSlide.contentWindow.Reveal.slide(data.indexh, data.indexv);
nextSlide.contentWindow.Reveal.slide(data.nextindexh, data.nextindexv); nextSlide.contentWindow.Reveal.slide(data.nextindexh, data.nextindexv);
}); });
socket.on('fragmentdata', function(data) {
// ignore data from sockets that aren't ours
if (data.socketId !== socketId) { return; }
if (data.fragment === 'next') {
currentSlide.contentWindow.Reveal.nextFragment();
}
else if (data.fragment === 'previous') {
currentSlide.contentWindow.Reveal.prevFragment();
}
});
</script> </script>
</body> </body>
</html> </html>