|
@@ -95,10 +95,22 @@
|
|
|
.error code {
|
|
|
font-family: monospace;
|
|
|
}
|
|
|
+
|
|
|
.time {
|
|
|
+ width: 448px;
|
|
|
+ margin: 30px 0 0 10px;
|
|
|
+ float: left;
|
|
|
text-align: center;
|
|
|
+ opacity: 0;
|
|
|
+
|
|
|
+ -webkit-transition: opacity 0.4s;
|
|
|
+ -moz-transition: opacity 0.4s;
|
|
|
+ -o-transition: opacity 0.4s;
|
|
|
+ transition: opacity 0.4s;
|
|
|
}
|
|
|
- .elapsed, .clock {
|
|
|
+
|
|
|
+ .elapsed,
|
|
|
+ .clock {
|
|
|
color: #333;
|
|
|
font-size: 2em;
|
|
|
text-align: center;
|
|
@@ -107,12 +119,15 @@
|
|
|
background-color: #eee;
|
|
|
border-radius: 10px;
|
|
|
}
|
|
|
- .elapsed h2, .clock h2 {
|
|
|
+
|
|
|
+ .elapsed h2,
|
|
|
+ .clock h2 {
|
|
|
font-size: 0.8em;
|
|
|
line-height: 100%;
|
|
|
margin: 0;
|
|
|
color: #aaa;
|
|
|
}
|
|
|
+
|
|
|
.elapsed .mute {
|
|
|
color: #ddd;
|
|
|
}
|
|
@@ -130,61 +145,85 @@
|
|
|
<script>document.write( '<iframe width="640" height="512" id="next-slide" src="'+ window.opener.location.href +'"></iframe>' );</script>
|
|
|
<span>UPCOMING:</span>
|
|
|
</div>
|
|
|
- <div class='time'>
|
|
|
- <div class='clock'>
|
|
|
+
|
|
|
+ <div class="time">
|
|
|
+ <div class="clock">
|
|
|
<h2>Time</h2>
|
|
|
- <span id='clock'>0:00:00 AM</span>
|
|
|
+ <span id="clock">0:00:00 AM</span>
|
|
|
</div>
|
|
|
- <div class='elapsed'>
|
|
|
+ <div class="elapsed">
|
|
|
<h2>Elapsed</h2>
|
|
|
- <span id='hours'>00</span><span id='minutes'>:00</span><span id='seconds'>:00</span>
|
|
|
+ <span id="hours">00</span><span id="minutes">:00</span><span id="seconds">:00</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
<div id="notes"></div>
|
|
|
|
|
|
<script src="../../plugin/markdown/showdown.js"></script>
|
|
|
<script>
|
|
|
- function zeroPadInteger(num) {
|
|
|
- var str = "00" + parseInt(num);
|
|
|
- return str.substring(str.length - 2);
|
|
|
- }
|
|
|
+
|
|
|
window.addEventListener( 'load', function() {
|
|
|
|
|
|
if( window.opener && window.opener.location && window.opener.location.href ) {
|
|
|
|
|
|
- (function( window, undefined ) {
|
|
|
- var notes = document.getElementById( 'notes' ),
|
|
|
- currentSlide = document.getElementById( 'current-slide' ),
|
|
|
- nextSlide = document.getElementById( 'next-slide' );
|
|
|
-
|
|
|
- window.addEventListener( 'message', function( event ) {
|
|
|
- var data = JSON.parse( event.data );
|
|
|
- // No need for updating the notes in case of fragment changes
|
|
|
- if ( data.notes !== undefined) {
|
|
|
- if( data.markdown ) {
|
|
|
- notes.innerHTML = (new Showdown.converter()).makeHtml( data.notes );
|
|
|
- }
|
|
|
- else {
|
|
|
- notes.innerHTML = data.notes;
|
|
|
- }
|
|
|
- }
|
|
|
+ var notes = document.getElementById( 'notes' ),
|
|
|
+ currentSlide = document.getElementById( 'current-slide' ),
|
|
|
+ nextSlide = document.getElementById( 'next-slide' );
|
|
|
|
|
|
- // Showing and hiding fragments
|
|
|
- if( data.fragment === 'next' ) {
|
|
|
- currentSlide.contentWindow.Reveal.nextFragment();
|
|
|
- }
|
|
|
- else if( data.fragment === 'prev' ) {
|
|
|
- currentSlide.contentWindow.Reveal.prevFragment();
|
|
|
+ window.addEventListener( 'message', function( event ) {
|
|
|
+ var data = JSON.parse( event.data );
|
|
|
+ // No need for updating the notes in case of fragment changes
|
|
|
+ if ( data.notes !== undefined) {
|
|
|
+ if( data.markdown ) {
|
|
|
+ notes.innerHTML = (new Showdown.converter()).makeHtml( data.notes );
|
|
|
}
|
|
|
else {
|
|
|
- // Update the note slides
|
|
|
- currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv );
|
|
|
- nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv );
|
|
|
+ notes.innerHTML = data.notes;
|
|
|
}
|
|
|
-
|
|
|
- }, false );
|
|
|
-
|
|
|
- })( window );
|
|
|
+ }
|
|
|
+
|
|
|
+ // Showing and hiding fragments
|
|
|
+ if( data.fragment === 'next' ) {
|
|
|
+ currentSlide.contentWindow.Reveal.nextFragment();
|
|
|
+ }
|
|
|
+ else if( data.fragment === 'prev' ) {
|
|
|
+ currentSlide.contentWindow.Reveal.prevFragment();
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ // Update the note slides
|
|
|
+ currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv );
|
|
|
+ nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv );
|
|
|
+ }
|
|
|
+
|
|
|
+ }, false );
|
|
|
+
|
|
|
+ var start = new Date(),
|
|
|
+ timeEl = document.querySelector( '.time' ),
|
|
|
+ clockEl = document.getElementById( 'clock' ),
|
|
|
+ hoursEl = document.getElementById( 'hours' ),
|
|
|
+ minutesEl = document.getElementById( 'minutes' ),
|
|
|
+ secondsEl = document.getElementById( 'seconds' );
|
|
|
+
|
|
|
+ setInterval( function() {
|
|
|
+
|
|
|
+ timeEl.style.opacity = 1;
|
|
|
+
|
|
|
+ var diff, hours, minutes, seconds,
|
|
|
+ now = new Date();
|
|
|
+
|
|
|
+ diff = now.getTime() - start.getTime();
|
|
|
+ hours = parseInt( diff / ( 1000 * 60 * 60 ) );
|
|
|
+ minutes = parseInt( ( diff / ( 1000 * 60 ) ) % 60 );
|
|
|
+ seconds = parseInt( ( diff / 1000 ) % 60 );
|
|
|
+
|
|
|
+ clockEl.innerHTML = now.toLocaleTimeString();
|
|
|
+ hoursEl.innerHTML = zeroPadInteger( hours );
|
|
|
+ hoursEl.className = hours > 0 ? "" : "mute";
|
|
|
+ minutesEl.innerHTML = ":" + zeroPadInteger( minutes );
|
|
|
+ minutesEl.className = minutes > 0 ? "" : "mute";
|
|
|
+ secondsEl.innerHTML = ":" + zeroPadInteger( seconds );
|
|
|
+
|
|
|
+ }, 1000 );
|
|
|
|
|
|
}
|
|
|
else {
|
|
@@ -193,31 +232,14 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
- var start = new Date(),
|
|
|
- clockEl = document.getElementById('clock'),
|
|
|
- hoursEl = document.getElementById('hours'),
|
|
|
- minutesEl = document.getElementById('minutes'),
|
|
|
- secondsEl = document.getElementById('seconds');
|
|
|
-
|
|
|
- setInterval(function() {
|
|
|
- var diff, hours, minutes, seconds,
|
|
|
- now = new Date();
|
|
|
- diff = now.getTime() - start.getTime();
|
|
|
- hours = parseInt(diff / (1000 * 60 * 60));
|
|
|
- minutes = parseInt((diff / (1000 * 60)) % 60);
|
|
|
- seconds = parseInt((diff / 1000) % 60);
|
|
|
-
|
|
|
- clockEl.innerHTML = now.toLocaleTimeString();
|
|
|
- hoursEl.innerHTML = zeroPadInteger(hours);
|
|
|
- hoursEl.className = hours > 0 ? "" : "mute";
|
|
|
- minutesEl.innerHTML = ":" + zeroPadInteger(minutes);
|
|
|
- minutesEl.className = minutes > 0 ? "" : "mute";
|
|
|
- secondsEl.innerHTML = ":" + zeroPadInteger(seconds);
|
|
|
- }, 1000);
|
|
|
-
|
|
|
|
|
|
}, false );
|
|
|
|
|
|
+ function zeroPadInteger( num ) {
|
|
|
+ var str = "00" + parseInt( num );
|
|
|
+ return str.substring( str.length - 2 );
|
|
|
+ }
|
|
|
+
|
|
|
</script>
|
|
|
</body>
|
|
|
</html>
|