aboutsummaryrefslogtreecommitdiff
path: root/plugin/notes-server/client.js
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2012-10-20 20:40:52 -0400
committerHakim El Hattab <hakim.elhattab@gmail.com>2012-10-20 20:40:52 -0400
commitc6f8a44edf258567bc8324e45adb66036feb00ee (patch)
tree9db01a89817a526ffedf0adb19b533aa821ce51f /plugin/notes-server/client.js
parent5188951a0f1ed38b2945c5078369508c491c4a8c (diff)
parent070a1e3ee5bbe44b6f3cdadedb031f3eee433ac6 (diff)
downloadperl-software-in-gnu-guix-c6f8a44edf258567bc8324e45adb66036feb00ee.tar
perl-software-in-gnu-guix-c6f8a44edf258567bc8324e45adb66036feb00ee.tar.gz
new postMessage-based notes plugin, moved node-based notes to notes-server (#190)
Diffstat (limited to 'plugin/notes-server/client.js')
-rw-r--r--plugin/notes-server/client.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/plugin/notes-server/client.js b/plugin/notes-server/client.js
new file mode 100644
index 0000000..d805601
--- /dev/null
+++ b/plugin/notes-server/client.js
@@ -0,0 +1,38 @@
+(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)
+
+ 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);
+ } );
+}()); \ No newline at end of file