Merge pull request #102 from fhemberger/master

Add presenter notes support
This commit is contained in:
Vadim Makeev 2013-01-01 12:49:44 -08:00
commit c9daa4415e
1 changed files with 35 additions and 5 deletions

View File

@ -18,7 +18,7 @@ window.shower = (function(window, document, undefined) {
*/
shower._getData = function(element, name) {
return element.dataset ? element.dataset[name] : element.getAttribute('data-' + name);
}
};
for (i = 0; i < l; i++) {
// Slide ID's are optional. In case of missing ID we set it to the
@ -132,10 +132,14 @@ window.shower = (function(window, document, undefined) {
*/
shower.enterSlideMode = function() {
// check if it's already in slide mode...
if ( body.classList.contains('full') ) { return; }
if (body.classList.contains('full')) { return; }
body.classList.remove('list');
body.classList.add('full');
if (window.console && window.console.clear) { console.clear(); }
shower.showPresenterNotes(shower.getCurrentSlideNumber());
return shower._applyTransform(shower._getTransform());
};
@ -145,8 +149,8 @@ window.shower = (function(window, document, undefined) {
*/
shower.enterListMode = function() {
// check if it's already in list mode...
if ( body.classList.contains('list') ) { return; }
if (body.classList.contains('list')) { return; }
body.classList.remove('full');
body.classList.add('list');
return shower._applyTransform('none');
@ -306,6 +310,31 @@ window.shower = (function(window, document, undefined) {
return true;
};
/**
* Show presenter notes in console.
* @param {number} slideNumber slide number (sic!). Attention: starts from zero.
*/
shower.showPresenterNotes = function(slideNumber) {
if (window.console) {
slideNumber = shower._normalizeSlideNumber(slideNumber);
var slideId = slideList[slideNumber].id;
var nextSlideId = slideList[slideNumber + 1] ? slideList[slideNumber + 1].id : null;
var notes = document.getElementById(slideId).querySelector('.presenter-notes');
if (notes) {
console.info(notes.innerHTML.replace(/\n\s+/g,'\n'));
}
if (nextSlideId) {
var next = document.getElementById(nextSlideId).querySelector('h2');
if (next) {
next = next.innerHTML.replace(/^\s+|<[^>]+>/g,'');
console.info('NEXT: ' + next);
}
}
}
};
/**
* Get slide hash.
* @param {number} slideNumber slide number (sic!). Attention: starts from zero.
@ -336,6 +365,7 @@ window.shower = (function(window, document, undefined) {
if ( ! shower.isListMode()) {
shower.updateProgress(slideNumber);
shower.updateCurrentAndPassedSlides(slideNumber);
shower.showPresenterNotes(slideNumber);
}
return slideNumber;