aboutsummaryrefslogtreecommitdiff
path: root/plugin/notes-server
diff options
context:
space:
mode:
authorMichael Kühnel <mail@michael-kuehnel.de>2012-10-24 17:48:50 +0200
committerMichael Kühnel <mail@michael-kuehnel.de>2012-10-24 17:48:50 +0200
commit5af915adaf0f03ea936323e827e86fab6b0bb4e9 (patch)
tree0e72e9c726ed96105ccc3ef7364ee782bf412306 /plugin/notes-server
parentaefe981040ea8c5c7875d9da1ac860def44a19e8 (diff)
parent379f5d38ff8c66c10c22a0a18227b481e945dc02 (diff)
downloadfosdem-2018-presentation-5af915adaf0f03ea936323e827e86fab6b0bb4e9.tar
fosdem-2018-presentation-5af915adaf0f03ea936323e827e86fab6b0bb4e9.tar.gz
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.
Diffstat (limited to 'plugin/notes-server')
-rw-r--r--plugin/notes-server/client.js23
-rw-r--r--plugin/notes-server/index.js5
-rw-r--r--plugin/notes-server/notes.html25
3 files changed, 43 insertions, 10 deletions
diff --git a/plugin/notes-server/client.js b/plugin/notes-server/client.js
index d805601..156cb9a 100644
--- a/plugin/notes-server/client.js
+++ b/plugin/notes-server/client.js
@@ -6,8 +6,27 @@
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)
+ 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;
@@ -35,4 +54,4 @@
socket.emit('slidechanged', slideData);
} );
-}()); \ No newline at end of file
+}());
diff --git a/plugin/notes-server/index.js b/plugin/notes-server/index.js
index 1fe5bab..8643f5d 100644
--- a/plugin/notes-server/index.js
+++ b/plugin/notes-server/index.js
@@ -18,6 +18,9 @@ io.sockets.on('connection', function(socket) {
socket.on('slidechanged', function(slideData) {
socket.broadcast.emit('slidedata', slideData);
});
+ socket.on('fragmentchanged', function(fragmentData) {
+ socket.broadcast.emit('fragmentdata', fragmentData);
+ });
});
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( "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( "3. Advance through your slides and your notes will advance automatically" ); \ No newline at end of file
+console.log( "3. Advance through your slides and your notes will advance automatically" );
diff --git a/plugin/notes-server/notes.html b/plugin/notes-server/notes.html
index 548bc12..d71d7f8 100644
--- a/plugin/notes-server/notes.html
+++ b/plugin/notes-server/notes.html
@@ -112,17 +112,28 @@
// ignore data from sockets that aren't ours
if (data.socketId !== socketId) { return; }
- if (data.markdown) {
- notes.innerHTML = (new Showdown.converter()).makeHtml(data.notes);
- }
- else {
- notes.innerHTML = data.notes;
- }
+ if (data.markdown) {
+ notes.innerHTML = (new Showdown.converter()).makeHtml(data.notes);
+ }
+ else {
+ notes.innerHTML = data.notes;
+ }
currentSlide.contentWindow.Reveal.slide(data.indexh, data.indexv);
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>
</body>
-</html> \ No newline at end of file
+</html>