Notes: Weakly enforce a minimum allocated pacing time per slide
When using the totalTime-based pacing calculation, a presenter may inadvertently set totalTime and per-slide data-timing attributes in such a way that the pacing time for some slides is impossibly low or even negative. Add a check to ensure that the pacing on a slide never falls below a configurable minimum, defaulting to 0. Display an alert if the pacing for any slide(s) falls below the threshold.
This commit is contained in:
		| @@ -346,6 +346,13 @@ Reveal.initialize({ | ||||
| 	// instead of using the defaultTiming value | ||||
| 	totalTime: 0, | ||||
|  | ||||
| 	// Specify the minimum amount of time you want to allot to | ||||
| 	// each slide, if using the totalTime calculation method.  If | ||||
| 	// the automated time allocation causes slide pacing to fall | ||||
| 	// below this threshold, then you will see an alert in the | ||||
| 	// speaker notes window | ||||
| 	minimumTimePerSlide: 0; | ||||
|  | ||||
| 	// Enable slide navigation via mouse wheel | ||||
| 	mouseWheel: false, | ||||
|  | ||||
|   | ||||
| @@ -540,6 +540,7 @@ | ||||
| 					callRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) { | ||||
| 						callRevealApi( 'getConfig', [], function ( config ) { | ||||
| 							var totalTime = config.totalTime; | ||||
| 							var minTimePerSlide = config.minimumTimePerSlide || 0; | ||||
| 							var defaultTiming = config.defaultTiming; | ||||
| 							if ((defaultTiming == null) && (totalTime == null)) { | ||||
| 								callback(null); | ||||
| @@ -574,6 +575,11 @@ | ||||
| 								// And now we replace every zero-value timing with that average | ||||
| 								timings = timings.map( function(x) { return (x==0 ? timePerSlide : x) } ); | ||||
| 							} | ||||
| 							var slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length | ||||
| 							if ( slidesUnderMinimum ) { | ||||
| 								message = "The pacing time for " + slidesUnderMinimum + " slide(s) is under the configured minimum of " + minTimePerSlide + " seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides)."; | ||||
| 								alert(message); | ||||
| 							} | ||||
| 							callback( timings ); | ||||
| 						} ); | ||||
| 					} ); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user