summaryrefslogtreecommitdiffhomepage
path: root/plugin/notes-server/client.js
diff options
context:
space:
mode:
authorDavid Banham2013-03-08 10:29:54 +1100
committerDavid Banham2013-03-08 10:29:54 +1100
commit61c229a4f969a0720085c2710f8a7cfd8a12b4a6 (patch)
tree637eeedce43c63a6aa004d566944ad791b984e7d /plugin/notes-server/client.js
parent26d5febd7f24223900aa50d24d35e610c7c8a334 (diff)
parent7081f901da553206f746c40c4a0c1b5773697cf2 (diff)
Merge branch 'master' of https://github.com/hakimel/reveal.js
Conflicts: README.md index.html js/reveal.js package.json plugin/speakernotes/client.js
Diffstat (limited to 'plugin/notes-server/client.js')
-rw-r--r--plugin/notes-server/client.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/plugin/notes-server/client.js b/plugin/notes-server/client.js
new file mode 100644
index 0000000..156cb9a
--- /dev/null
+++ b/plugin/notes-server/client.js
@@ -0,0 +1,57 @@
+(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);
+ } );
+}());