You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2014/10/24 00:27:51 UTC

svn commit: r1633972 [11/17] - in /incubator/calcite: ./ general/ general/src/ general/src/main/ general/src/main/webapp/ general/src/main/webapp/WEB-INF/ general/src/site/ general/src/site/resources/ general/src/site/resources/images/ general/src/site...

Added: incubator/calcite/site/0.9-incubating/slides/extensions/goto/deck.goto.html
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/goto/deck.goto.html?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/goto/deck.goto.html (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/goto/deck.goto.html Thu Oct 23 22:27:44 2014
@@ -0,0 +1,7 @@
+<!-- Place the following snippet at the bottom of the deck container. -->
+<form action="." method="get" class="goto-form">
+	<label for="goto-slide">Go to slide:</label>
+	<input type="text" name="slidenum" id="goto-slide" list="goto-datalist">
+	<datalist id="goto-datalist"></datalist>
+	<input type="submit" value="Go">
+</form>
\ No newline at end of file

Added: incubator/calcite/site/0.9-incubating/slides/extensions/goto/deck.goto.js
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/goto/deck.goto.js?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/goto/deck.goto.js (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/goto/deck.goto.js Thu Oct 23 22:27:44 2014
@@ -0,0 +1,170 @@
+/*!
+Deck JS - deck.goto
+Copyright (c) 2011 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+This module adds the necessary methods and key bindings to show and hide a form
+for jumping to any slide number/id in the deck (and processes that form
+accordingly). The form-showing state is indicated by the presence of a class on
+the deck container.
+*/
+(function($, deck, undefined) {
+	var $d = $(document);
+	
+	/*
+	Extends defaults/options.
+	
+	options.classes.goto
+		This class is added to the deck container when showing the Go To Slide
+		form.
+		
+	options.selectors.gotoDatalist
+		The element that matches this selector is the datalist element that will
+		be populated with options for each of the slide ids.  In browsers that
+		support the datalist element, this provides a drop list of slide ids to
+		aid the user in selecting a slide.
+		
+	options.selectors.gotoForm
+		The element that matches this selector is the form that is submitted
+		when a user hits enter after typing a slide number/id in the gotoInput
+		element.
+	
+	options.selectors.gotoInput
+		The element that matches this selector is the text input field for
+		entering a slide number/id in the Go To Slide form.
+		
+	options.keys.goto
+		The numeric keycode used to show the Go To Slide form.
+		
+	options.countNested
+		If false, only top level slides will be counted when entering a
+		slide number.
+	*/
+	$.extend(true, $[deck].defaults, {
+		classes: {
+			goto: 'deck-goto'
+		},
+		
+		selectors: {
+			gotoDatalist: '#goto-datalist',
+			gotoForm: '.goto-form',
+			gotoInput: '#goto-slide'
+		},
+		
+		keys: {
+			goto: 71 // g
+		},
+		
+		countNested: true
+	});
+
+	/*
+	jQuery.deck('showGoTo')
+	
+	Shows the Go To Slide form by adding the class specified by the goto class
+	option to the deck container.
+	*/
+	$[deck]('extend', 'showGoTo', function() {
+		$[deck]('getContainer').addClass($[deck]('getOptions').classes.goto);
+		$($[deck]('getOptions').selectors.gotoInput).focus();
+	});
+
+	/*
+	jQuery.deck('hideGoTo')
+	
+	Hides the Go To Slide form by removing the class specified by the goto class
+	option from the deck container.
+	*/
+	$[deck]('extend', 'hideGoTo', function() {
+		$($[deck]('getOptions').selectors.gotoInput).blur();
+		$[deck]('getContainer').removeClass($[deck]('getOptions').classes.goto);
+	});
+
+	/*
+	jQuery.deck('toggleGoTo')
+	
+	Toggles between showing and hiding the Go To Slide form.
+	*/
+	$[deck]('extend', 'toggleGoTo', function() {
+		$[deck]($[deck]('getContainer').hasClass($[deck]('getOptions').classes.goto) ? 'hideGoTo' : 'showGoTo');
+	});
+	
+	$d.bind('deck.init', function() {
+		var opts = $[deck]('getOptions'),
+		$datalist = $(opts.selectors.gotoDatalist),
+		slideTest = $.map([
+			opts.classes.before,
+			opts.classes.previous,
+			opts.classes.current,
+			opts.classes.next,
+			opts.classes.after
+		], function(el, i) {
+			return '.' + el;
+		}).join(', '),
+		rootCounter = 1;
+		
+		// Bind key events
+		$d.unbind('keydown.deckgoto').bind('keydown.deckgoto', function(e) {
+			var key = $[deck]('getOptions').keys.goto;
+			
+			if (e.which === key || $.inArray(e.which, key) > -1) {
+				e.preventDefault();
+				$[deck]('toggleGoTo');
+			}
+		});
+		
+		/* Populate datalist and work out countNested*/
+		$.each($[deck]('getSlides'), function(i, $slide) {
+			var id = $slide.attr('id'),
+			$parentSlides = $slide.parentsUntil(opts.selectors.container, slideTest);
+			
+			if (id) {
+				$datalist.append('<option value="' + id + '">');
+			}
+			
+			if ($parentSlides.length) {
+				$slide.removeData('rootIndex');
+			}
+			else if (!opts.countNested) {
+				$slide.data('rootIndex', rootCounter);
+				++rootCounter;
+			}
+		});
+		
+		// Process form submittal, go to the slide entered
+		$(opts.selectors.gotoForm)
+		.unbind('submit.deckgoto')
+		.bind('submit.deckgoto', function(e) {
+			var $field = $($[deck]('getOptions').selectors.gotoInput),
+			ndx = parseInt($field.val(), 10);
+			
+			if (!$[deck]('getOptions').countNested) {
+			  if (ndx >= rootCounter) return false;
+				$.each($[deck]('getSlides'), function(i, $slide) {
+					if ($slide.data('rootIndex') === ndx) {
+						ndx = i + 1;
+						return false;
+					}
+				});
+			}
+			
+			$[deck]('go', isNaN(ndx) ? $field.val() : ndx - 1);
+			$[deck]('hideGoTo');
+			$field.val('');
+			
+			e.preventDefault();
+		});
+		
+		// Dont let keys in the input trigger deck actions
+		$(opts.selectors.gotoInput)
+		.unbind('keydown.deckgoto')
+		.bind('keydown.deckgoto', function(e) {
+			e.stopPropagation();
+		});
+	});
+})(jQuery, 'deck');
+

Added: incubator/calcite/site/0.9-incubating/slides/extensions/goto/deck.goto.scss
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/goto/deck.goto.scss?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/goto/deck.goto.scss (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/goto/deck.goto.scss Thu Oct 23 22:27:44 2014
@@ -0,0 +1,46 @@
+.deck-container {	
+	.goto-form {
+		position:absolute;
+		z-index:3;
+		bottom:10px;
+		left:50%;
+		height:1.75em;
+		margin:0 0 0 -9.125em;
+		line-height:1.75em;
+		padding:0.625em;
+		display:none;
+		background:#ccc;
+		overflow:hidden;
+	
+		.borderradius & {
+			-webkit-border-radius:10px;
+			-moz-border-radius:10px;
+			border-radius:10px;
+		}
+	
+		label {
+			font-weight:bold;
+		}
+	
+		label, input {
+			display:inline-block;
+			font-family:inherit;
+		}
+	}
+}
+
+.deck-goto .goto-form {
+	display:block;
+}
+
+#goto-slide {
+	width:8.375em;
+	margin:0 0.625em;
+	height:1.4375em;
+}
+
+@media print {
+	.goto-form, #goto-slide {
+		display:none !important;
+	}
+}
\ No newline at end of file

Added: incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.css
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.css?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.css (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.css Thu Oct 23 22:27:44 2014
@@ -0,0 +1,13 @@
+.deck-container .deck-permalink {
+  display: none;
+  position: absolute;
+  z-index: 4;
+  bottom: 30px;
+  right: 0;
+  width: 48px;
+  text-align: center;
+}
+
+.no-history .deck-container:hover .deck-permalink {
+  display: block;
+}

Added: incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.html
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.html?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.html (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.html Thu Oct 23 22:27:44 2014
@@ -0,0 +1,2 @@
+<!-- Place the following snippet at the bottom of the deck container. -->
+<a href="." title="Permalink to this slide" class="deck-permalink">#</a>
\ No newline at end of file

Added: incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.js
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.js?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.js (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.js Thu Oct 23 22:27:44 2014
@@ -0,0 +1,142 @@
+/*!
+Deck JS - deck.hash
+Copyright (c) 2011 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+This module adds deep linking to individual slides, enables internal links
+to slides within decks, and updates the address bar with the hash as the user
+moves through the deck. A permalink anchor is also updated. Standard themes
+hide this link in browsers that support the History API, and show it for
+those that do not. Slides that do not have an id are assigned one according to
+the hashPrefix option. In addition to the on-slide container state class
+kept by core, this module adds an on-slide state class that uses the id of each
+slide.
+*/
+(function ($, deck, window, undefined) {
+	var $d = $(document),
+	$window = $(window),
+	
+	/* Collection of internal fragment links in the deck */
+	$internals,
+	
+	/*
+	Internal only function.  Given a string, extracts the id from the hash,
+	matches it to the appropriate slide, and navigates there.
+	*/
+	goByHash = function(str) {
+		var id = str.substr(str.indexOf("#") + 1),
+		slides = $[deck]('getSlides');
+		
+		$.each(slides, function(i, $el) {
+			if ($el.attr('id') === id) {
+				$[deck]('go', i);
+				return false;
+			}
+		});
+		
+		// If we don't set these to 0 the container scrolls due to hashchange
+		$[deck]('getContainer').scrollLeft(0).scrollTop(0);
+	};
+	
+	/*
+	Extends defaults/options.
+	
+	options.selectors.hashLink
+		The element matching this selector has its href attribute updated to
+		the hash of the current slide as the user navigates through the deck.
+		
+	options.hashPrefix
+		Every slide that does not have an id is assigned one at initialization.
+		Assigned ids take the form of hashPrefix + slideIndex, e.g., slide-0,
+		slide-12, etc.
+
+	options.preventFragmentScroll
+		When deep linking to a hash of a nested slide, this scrolls the deck
+		container to the top, undoing the natural browser behavior of scrolling
+		to the document fragment on load.
+	*/
+	$.extend(true, $[deck].defaults, {
+		selectors: {
+			hashLink: '.deck-permalink'
+		},
+		
+		hashPrefix: 'slide-',
+		preventFragmentScroll: true
+	});
+	
+	
+	$d.bind('deck.init', function() {
+	   var opts = $[deck]('getOptions');
+		$internals = $(),
+		slides = $[deck]('getSlides');
+		
+		$.each(slides, function(i, $el) {
+			var hash;
+			
+			/* Hand out ids to the unfortunate slides born without them */
+			if (!$el.attr('id') || $el.data('deckAssignedId') === $el.attr('id')) {
+				$el.attr('id', opts.hashPrefix + i);
+				$el.data('deckAssignedId', opts.hashPrefix + i);
+			}
+			
+			hash ='#' + $el.attr('id');
+			
+			/* Deep link to slides on init */
+			if (hash === window.location.hash) {
+				$[deck]('go', i);
+			}
+			
+			/* Add internal links to this slide */
+			$internals = $internals.add('a[href="' + hash + '"]');
+		});
+		
+		if (!Modernizr.hashchange) {
+			/* Set up internal links using click for the poor browsers
+			without a hashchange event. */
+			$internals.unbind('click.deckhash').bind('click.deckhash', function(e) {
+				goByHash($(this).attr('href'));
+			});
+		}
+		
+		/* Set up first id container state class */
+		if (slides.length) {
+			$[deck]('getContainer').addClass(opts.classes.onPrefix + $[deck]('getSlide').attr('id'));
+		};
+	})
+	/* Update permalink, address bar, and state class on a slide change */
+	.bind('deck.change', function(e, from, to) {
+		var hash = '#' + $[deck]('getSlide', to).attr('id'),
+		hashPath = window.location.href.replace(/#.*/, '') + hash,
+		opts = $[deck]('getOptions'),
+		osp = opts.classes.onPrefix,
+		$c = $[deck]('getContainer');
+		
+		$c.removeClass(osp + $[deck]('getSlide', from).attr('id'));
+		$c.addClass(osp + $[deck]('getSlide', to).attr('id'));
+		
+		$(opts.selectors.hashLink).attr('href', hashPath);
+		if (Modernizr.history) {
+			window.history.replaceState({}, "", hashPath);
+		}
+	});
+	
+	/* Deals with internal links in modern browsers */
+	$window.bind('hashchange.deckhash', function(e) {
+		if (e.originalEvent && e.originalEvent.newURL) {
+			goByHash(e.originalEvent.newURL);
+		}
+		else {
+			goByHash(window.location.hash);
+		}
+	})
+	/* Prevent scrolling on deep links */
+	.bind('load', function() {
+		if ($[deck]('getOptions').preventFragmentScroll) {
+			$[deck]('getContainer').scrollLeft(0).scrollTop(0);
+		}
+	});
+})(jQuery, 'deck', this);
\ No newline at end of file

Added: incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.scss
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.scss?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.scss (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/hash/deck.hash.scss Thu Oct 23 22:27:44 2014
@@ -0,0 +1,15 @@
+.deck-container {
+	.deck-permalink {
+		display:none;
+		position:absolute;
+		z-index:4;
+		bottom:30px;
+		right:0;
+		width:48px;
+		text-align:center;
+	}
+}
+
+.no-history .deck-container:hover .deck-permalink {
+	display:block;
+}
\ No newline at end of file

Added: incubator/calcite/site/0.9-incubating/slides/extensions/menu/deck.menu.css
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/menu/deck.menu.css?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/menu/deck.menu.css (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/menu/deck.menu.css Thu Oct 23 22:27:44 2014
@@ -0,0 +1,47 @@
+.deck-menu .slide {
+  background: #eee;
+  position: relative;
+  left: 0;
+  top: 0;
+  visibility: visible;
+  cursor: pointer;
+}
+.no-csstransforms .deck-menu > .slide {
+  float: left;
+  width: 22%;
+  height: 22%;
+  min-height: 0;
+  margin: 1%;
+  font-size: 0.22em;
+  overflow: hidden;
+  padding: 0 0.5%;
+}
+.csstransforms .deck-menu > .slide {
+  -webkit-transform: scale(0.22) !important;
+  -moz-transform: scale(0.22) !important;
+  -o-transform: scale(0.22) !important;
+  -ms-transform: scale(0.22) !important;
+  transform: scale(0.22) !important;
+  -webkit-transform-origin: 0 0;
+  -moz-transform-origin: 0 0;
+  -o-transform-origin: 0 0;
+  -ms-transform-origin: 0 0;
+  transform-origin: 0 0;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  padding: 0 48px;
+  margin: 12px;
+}
+.deck-menu iframe, .deck-menu img, .deck-menu video {
+  max-width: 100%;
+}
+.deck-menu .deck-current, .no-touch .deck-menu .slide:hover {
+  background: #ddf;
+}
+.deck-menu.deck-container:hover .deck-prev-link, .deck-menu.deck-container:hover .deck-next-link {
+  display: none;
+}

Added: incubator/calcite/site/0.9-incubating/slides/extensions/menu/deck.menu.js
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/menu/deck.menu.js?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/menu/deck.menu.js (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/menu/deck.menu.js Thu Oct 23 22:27:44 2014
@@ -0,0 +1,187 @@
+/*!
+Deck JS - deck.menu
+Copyright (c) 2011 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+This module adds the methods and key binding to show and hide a menu of all
+slides in the deck. The deck menu state is indicated by the presence of a class
+on the deck container.
+*/
+(function($, deck, undefined) {
+	var $d = $(document),
+	rootSlides; // Array of top level slides
+	
+	/*
+	Extends defaults/options.
+	
+	options.classes.menu
+		This class is added to the deck container when showing the slide menu.
+	
+	options.keys.menu
+		The numeric keycode used to toggle between showing and hiding the slide
+		menu.
+		
+	options.touch.doubletapWindow
+		Two consecutive touch events within this number of milliseconds will
+		be considered a double tap, and will toggle the menu on touch devices.
+	*/
+	$.extend(true, $[deck].defaults, {
+		classes: {
+			menu: 'deck-menu'
+		},
+		
+		keys: {
+			menu: 77 // m
+		},
+		
+		touch: {
+			doubletapWindow: 400
+		}
+	});
+
+	/*
+	jQuery.deck('showMenu')
+	
+	Shows the slide menu by adding the class specified by the menu class option
+	to the deck container.
+	*/
+	$[deck]('extend', 'showMenu', function() {
+		var $c = $[deck]('getContainer'),
+		opts = $[deck]('getOptions');
+		
+		if ($c.hasClass(opts.classes.menu)) return;
+		
+		// Hide through loading class to short-circuit transitions (perf)
+		$c.addClass([opts.classes.loading, opts.classes.menu].join(' '));
+		
+		/* Forced to do this in JS until CSS learns second-grade math. Save old
+		style value for restoration when menu is hidden. */
+		if (Modernizr.csstransforms) {
+			$.each(rootSlides, function(i, $slide) {
+				$slide.data('oldStyle', $slide.attr('style'));
+				$slide.css({
+					'position': 'absolute',
+					'left': ((i % 4) * 25) + '%',
+					'top': (Math.floor(i / 4) * 25) + '%'
+				});
+			});
+		}
+		
+		// Need to ensure the loading class renders first, then remove
+		window.setTimeout(function() {
+			$c.removeClass(opts.classes.loading)
+				.scrollTop($[deck]('getSlide').offset().top);
+		}, 0);
+	});
+
+	/*
+	jQuery.deck('hideMenu')
+	
+	Hides the slide menu by removing the class specified by the menu class
+	option from the deck container.
+	*/
+	$[deck]('extend', 'hideMenu', function() {
+		var $c = $[deck]('getContainer'),
+		opts = $[deck]('getOptions');
+		
+		if (!$c.hasClass(opts.classes.menu)) return;
+		
+		$c.removeClass(opts.classes.menu);
+		$c.addClass(opts.classes.loading);
+		
+		/* Restore old style value */
+		if (Modernizr.csstransforms) {
+			$.each(rootSlides, function(i, $slide) {
+				var oldStyle = $slide.data('oldStyle');
+
+				$slide.attr('style', oldStyle ? oldStyle : '');
+			});
+		}
+		
+		window.setTimeout(function() {
+			$c.removeClass(opts.classes.loading).scrollTop(0);
+		}, 0);
+	});
+
+	/*
+	jQuery.deck('toggleMenu')
+	
+	Toggles between showing and hiding the slide menu.
+	*/
+	$[deck]('extend', 'toggleMenu', function() {
+		$[deck]('getContainer').hasClass($[deck]('getOptions').classes.menu) ?
+		$[deck]('hideMenu') : $[deck]('showMenu');
+	});
+
+	$d.bind('deck.init', function() {
+		var opts = $[deck]('getOptions'),
+		touchEndTime = 0,
+		currentSlide,
+		slideTest = $.map([
+			opts.classes.before,
+			opts.classes.previous,
+			opts.classes.current,
+			opts.classes.next,
+			opts.classes.after
+		], function(el, i) {
+			return '.' + el;
+		}).join(', ');
+		
+		// Build top level slides array
+		rootSlides = [];
+		$.each($[deck]('getSlides'), function(i, $el) {
+			if (!$el.parentsUntil(opts.selectors.container, slideTest).length) {
+				rootSlides.push($el);
+			}
+		});
+		
+		// Bind key events
+		$d.unbind('keydown.deckmenu').bind('keydown.deckmenu', function(e) {
+			if (e.which === opts.keys.menu || $.inArray(e.which, opts.keys.menu) > -1) {
+				$[deck]('toggleMenu');
+				e.preventDefault();
+			}
+		});
+		
+		// Double tap to toggle slide menu for touch devices
+		$[deck]('getContainer').unbind('touchstart.deckmenu').bind('touchstart.deckmenu', function(e) {
+			currentSlide = $[deck]('getSlide');
+		})
+		.unbind('touchend.deckmenu').bind('touchend.deckmenu', function(e) {
+			var now = Date.now();
+			
+			// Ignore this touch event if it caused a nav change (swipe)
+			if (currentSlide !== $[deck]('getSlide')) return;
+			
+			if (now - touchEndTime < opts.touch.doubletapWindow) {
+				$[deck]('toggleMenu');
+				e.preventDefault();
+			}
+			touchEndTime = now;
+		});
+		
+		// Selecting slides from the menu
+		$.each($[deck]('getSlides'), function(i, $s) {
+			$s.unbind('click.deckmenu').bind('click.deckmenu', function(e) {
+				if (!$[deck]('getContainer').hasClass(opts.classes.menu)) return;
+
+				$[deck]('go', i);
+				$[deck]('hideMenu');
+				e.stopPropagation();
+				e.preventDefault();
+			});
+		});
+	})
+	.bind('deck.change', function(e, from, to) {
+		var container = $[deck]('getContainer');
+		
+		if (container.hasClass($[deck]('getOptions').classes.menu)) {
+			container.scrollTop($[deck]('getSlide', to).offset().top);
+		}
+	});
+})(jQuery, 'deck');
+

Added: incubator/calcite/site/0.9-incubating/slides/extensions/menu/deck.menu.scss
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/menu/deck.menu.scss?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/menu/deck.menu.scss (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/menu/deck.menu.scss Thu Oct 23 22:27:44 2014
@@ -0,0 +1,58 @@
+.deck-menu {
+	.slide {
+		background:#eee;
+		position:relative;
+		left:0;
+		top:0;
+		visibility:visible;
+		cursor:pointer;
+	}
+	
+	> .slide {
+		.no-csstransforms & {
+			float:left;
+			width:22%;
+			height:22%;
+			min-height:0;
+			margin:1%;
+			font-size:0.22em;
+			overflow:hidden;
+			padding:0 0.5%;
+		}
+		
+		.csstransforms & {
+			-webkit-transform:scale(.22) !important;
+			-moz-transform:scale(.22) !important;
+			-o-transform:scale(.22) !important;
+			-ms-transform:scale(.22) !important;
+			transform:scale(.22) !important;
+			-webkit-transform-origin:0 0;
+			-moz-transform-origin:0 0;
+			-o-transform-origin:0 0;
+			-ms-transform-origin:0 0;
+			transform-origin:0 0;
+			-webkit-box-sizing: border-box;
+			-moz-box-sizing: border-box;
+			box-sizing: border-box;
+			width:100%;
+			height:100%;
+			overflow:hidden;
+			padding:0 48px;
+			margin:12px;
+		}
+	}
+	
+	iframe, img, video {
+		max-width:100%;
+	}
+	
+	.deck-current, .no-touch & .slide:hover {
+		background:#ddf;
+	}
+	
+	&.deck-container:hover {
+		.deck-prev-link, .deck-next-link {
+			display:none;
+		}
+	}
+}
\ No newline at end of file

Added: incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.css
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.css?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.css (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.css Thu Oct 23 22:27:44 2014
@@ -0,0 +1,43 @@
+.deck-container .deck-prev-link, .deck-container .deck-next-link {
+  display: none;
+  position: absolute;
+  z-index: 3;
+  top: 50%;
+  width: 32px;
+  height: 32px;
+  margin-top: -16px;
+  font-size: 20px;
+  font-weight: bold;
+  line-height: 32px;
+  vertical-align: middle;
+  text-align: center;
+  text-decoration: none;
+  color: #fff;
+  background: #888;
+}
+.borderradius .deck-container .deck-prev-link, .borderradius .deck-container .deck-next-link {
+  -webkit-border-radius: 16px;
+  -moz-border-radius: 16px;
+  border-radius: 16px;
+}
+.deck-container .deck-prev-link:hover, .deck-container .deck-prev-link:focus, .deck-container .deck-prev-link:active, .deck-container .deck-prev-link:visited, .deck-container .deck-next-link:hover, .deck-container .deck-next-link:focus, .deck-container .deck-next-link:active, .deck-container .deck-next-link:visited {
+  color: #fff;
+}
+.deck-container .deck-prev-link {
+  left: 8px;
+}
+.deck-container .deck-next-link {
+  right: 8px;
+}
+.deck-container:hover .deck-prev-link, .deck-container:hover .deck-next-link {
+  display: block;
+}
+.deck-container:hover .deck-prev-link.deck-nav-disabled, .touch .deck-container:hover .deck-prev-link, .deck-container:hover .deck-next-link.deck-nav-disabled, .touch .deck-container:hover .deck-next-link {
+  display: none;
+}
+
+@media print {
+  .deck-prev-link, .deck-next-link {
+    display: none !important;
+  }
+}

Added: incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.html
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.html?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.html (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.html Thu Oct 23 22:27:44 2014
@@ -0,0 +1,3 @@
+<!-- Place the following snippet at the bottom of the deck container. -->
+<a href="#" class="deck-prev-link" title="Previous">&#8592;</a>
+<a href="#" class="deck-next-link" title="Next">&#8594;</a>
\ No newline at end of file

Added: incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.js
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.js?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.js (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.js Thu Oct 23 22:27:44 2014
@@ -0,0 +1,92 @@
+/*!
+Deck JS - deck.navigation
+Copyright (c) 2011 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+This module adds clickable previous and next links to the deck.
+*/
+(function($, deck, undefined) {
+	var $d = $(document),
+	
+	/* Updates link hrefs, and disabled states if last/first slide */
+	updateButtons = function(e, from, to) {
+		var opts = $[deck]('getOptions'),
+		last = $[deck]('getSlides').length - 1,
+		prevSlide = $[deck]('getSlide', to - 1),
+		nextSlide = $[deck]('getSlide', to + 1),
+		hrefBase = window.location.href.replace(/#.*/, ''),
+		prevId = prevSlide ? prevSlide.attr('id') : undefined,
+		nextId = nextSlide ? nextSlide.attr('id') : undefined;
+		
+		$(opts.selectors.previousLink)
+			.toggleClass(opts.classes.navDisabled, !to)
+			.attr('href', hrefBase + '#' + (prevId ? prevId : ''));
+		$(opts.selectors.nextLink)
+			.toggleClass(opts.classes.navDisabled, to === last)
+			.attr('href', hrefBase + '#' + (nextId ? nextId : ''));
+	};
+	
+	/*
+	Extends defaults/options.
+	
+	options.classes.navDisabled
+		This class is added to a navigation link when that action is disabled.
+		It is added to the previous link when on the first slide, and to the
+		next link when on the last slide.
+		
+	options.selectors.nextLink
+		The elements that match this selector will move the deck to the next
+		slide when clicked.
+		
+	options.selectors.previousLink
+		The elements that match this selector will move to deck to the previous
+		slide when clicked.
+	*/
+	$.extend(true, $[deck].defaults, {
+		classes: {
+			navDisabled: 'deck-nav-disabled'
+		},
+		
+		selectors: {
+			nextLink: '.deck-next-link',
+			previousLink: '.deck-prev-link'
+		}
+	});
+
+	$d.bind('deck.init', function() {
+		var opts = $[deck]('getOptions'),
+		slides = $[deck]('getSlides'),
+		$current = $[deck]('getSlide'),
+		ndx;
+		
+		// Setup prev/next link events
+		$(opts.selectors.previousLink)
+		.unbind('click.decknavigation')
+		.bind('click.decknavigation', function(e) {
+			$[deck]('prev');
+			e.preventDefault();
+		});
+		
+		$(opts.selectors.nextLink)
+		.unbind('click.decknavigation')
+		.bind('click.decknavigation', function(e) {
+			$[deck]('next');
+			e.preventDefault();
+		});
+		
+		// Find where we started in the deck and set initial states
+		$.each(slides, function(i, $slide) {
+			if ($slide === $current) {
+				ndx = i;
+				return false;
+			}
+		});
+		updateButtons(null, ndx, ndx);
+	})
+	.bind('deck.change', updateButtons);
+})(jQuery, 'deck');
+

Added: incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.scss
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.scss?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.scss (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/navigation/deck.navigation.scss Thu Oct 23 22:27:44 2014
@@ -0,0 +1,56 @@
+@mixin border-radius($r) {
+	-webkit-border-radius:$r;
+	-moz-border-radius:$r;
+	border-radius:$r;
+}
+
+.deck-container {
+	.deck-prev-link, .deck-next-link {
+		display:none;
+		position:absolute;
+		z-index:3;
+		top:50%;
+		width:32px;
+		height:32px;
+		margin-top:-16px;
+		font-size:20px;
+		font-weight:bold;
+		line-height:32px;
+		vertical-align:middle;
+		text-align:center;
+		text-decoration:none;
+		color:#fff;
+		background:#888;
+
+		.borderradius & {
+			@include border-radius(16px);
+		}
+
+		&:hover, &:focus, &:active, &:visited {
+			color:#fff;
+		}
+	}
+
+	.deck-prev-link {
+		left:8px;
+	}
+
+	.deck-next-link {
+		right:8px;
+	}
+	
+	&:hover .deck-prev-link, &:hover .deck-next-link {
+		display:block;
+
+		&.deck-nav-disabled, .touch & {
+			display:none;
+		}
+	}
+}
+
+
+@media print {
+	.deck-prev-link, .deck-next-link {
+		display:none !important;
+	}
+}

Added: incubator/calcite/site/0.9-incubating/slides/extensions/scale/deck.scale.css
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/scale/deck.scale.css?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/scale/deck.scale.css (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/scale/deck.scale.css Thu Oct 23 22:27:44 2014
@@ -0,0 +1,28 @@
+/* Remove this line if you are embedding deck.js in a page and
+using the scale extension. */
+.csstransforms {
+  overflow: hidden;
+}
+
+.csstransforms .deck-container.deck-scale:not(.deck-menu) > .slide {
+  -webkit-box-sizing: padding-box;
+  -moz-box-sizing: padding-box;
+  box-sizing: padding-box;
+  width: 100%;
+  padding-bottom: 20px;
+}
+.csstransforms .deck-container.deck-scale:not(.deck-menu) > .slide > .deck-slide-scaler {
+  -webkit-transform-origin: 50% 0;
+  -moz-transform-origin: 50% 0;
+  -o-transform-origin: 50% 0;
+  -ms-transform-origin: 50% 0;
+  transform-origin: 50% 0;
+}
+
+.csstransforms .deck-container.deck-menu .deck-slide-scaler {
+  -webkit-transform: none !important;
+  -moz-transform: none !important;
+  -o-transform: none !important;
+  -ms-transform: none !important;
+  transform: none !important;
+}

Added: incubator/calcite/site/0.9-incubating/slides/extensions/scale/deck.scale.js
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/scale/deck.scale.js?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/scale/deck.scale.js (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/scale/deck.scale.js Thu Oct 23 22:27:44 2014
@@ -0,0 +1,170 @@
+/*!
+Deck JS - deck.scale
+Copyright (c) 2011-2012 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+This module adds automatic scaling to the deck.  Slides are scaled down
+using CSS transforms to fit within the deck container. If the container is
+big enough to hold the slides without scaling, no scaling occurs. The user
+can disable and enable scaling with a keyboard shortcut.
+
+Note: CSS transforms may make Flash videos render incorrectly.  Presenters
+that need to use video may want to disable scaling to play them.  HTML5 video
+works fine.
+*/
+(function($, deck, window, undefined) {
+	var $d = $(document),
+	$w = $(window),
+	baseHeight, // Value to scale against
+	timer, // Timeout id for debouncing
+	rootSlides,
+
+	/*
+	Internal function to do all the dirty work of scaling the slides.
+	*/
+	scaleDeck = function() {
+		var opts = $[deck]('getOptions'),
+		obh = opts.baseHeight,
+		$container = $[deck]('getContainer'),
+		baseHeight = obh ? obh : $container.height();
+
+		// Scale each slide down if necessary (but don't scale up)
+		$.each(rootSlides, function(i, $slide) {
+			var slideHeight = $slide.innerHeight(),
+			$scaler = $slide.find('.' + opts.classes.scaleSlideWrapper),
+			scale = $container.hasClass(opts.classes.scale) ?
+				baseHeight / slideHeight :
+				1;
+			
+			$.each('Webkit Moz O ms Khtml'.split(' '), function(i, prefix) {
+				if (scale === 1) {
+					$scaler.css(prefix + 'Transform', '');
+				}
+				else {
+					$scaler.css(prefix + 'Transform', 'scale(' + scale + ')');
+				}
+			});
+		});
+	}
+
+	/*
+	Extends defaults/options.
+
+	options.classes.scale
+		This class is added to the deck container when scaling is enabled.
+		It is enabled by default when the module is included.
+	
+	options.classes.scaleSlideWrapper
+		Scaling is done using a wrapper around the contents of each slide. This
+		class is applied to that wrapper.
+
+	options.keys.scale
+		The numeric keycode used to toggle enabling and disabling scaling.
+
+	options.baseHeight
+		When baseHeight is falsy, as it is by default, the deck is scaled in
+		proportion to the height of the deck container. You may instead specify
+		a height as a number of px, and slides will be scaled against this
+		height regardless of the container size.
+
+	options.scaleDebounce
+		Scaling on the browser resize event is debounced. This number is the
+		threshold in milliseconds. You can learn more about debouncing here:
+		http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
+
+	*/
+	$.extend(true, $[deck].defaults, {
+		classes: {
+			scale: 'deck-scale',
+			scaleSlideWrapper: 'deck-slide-scaler'
+		},
+
+		keys: {
+			scale: 83 // s
+		},
+
+		baseHeight: null,
+		scaleDebounce: 200
+	});
+
+	/*
+	jQuery.deck('disableScale')
+
+	Disables scaling and removes the scale class from the deck container.
+	*/
+	$[deck]('extend', 'disableScale', function() {
+		$[deck]('getContainer').removeClass($[deck]('getOptions').classes.scale);
+		scaleDeck();
+	});
+
+	/*
+	jQuery.deck('enableScale')
+
+	Enables scaling and adds the scale class to the deck container.
+	*/
+	$[deck]('extend', 'enableScale', function() {
+		$[deck]('getContainer').addClass($[deck]('getOptions').classes.scale);
+		scaleDeck();
+	});
+
+	/*
+	jQuery.deck('toggleScale')
+
+	Toggles between enabling and disabling scaling.
+	*/
+	$[deck]('extend', 'toggleScale', function() {
+		var $c = $[deck]('getContainer');
+		$[deck]($c.hasClass($[deck]('getOptions').classes.scale) ?
+			'disableScale' : 'enableScale');
+	});
+
+	$d.bind('deck.init', function() {
+		var opts = $[deck]('getOptions'),
+		slideTest = $.map([
+			opts.classes.before,
+			opts.classes.previous,
+			opts.classes.current,
+			opts.classes.next,
+			opts.classes.after
+		], function(el, i) {
+			return '.' + el;
+		}).join(', ');
+		
+		// Build top level slides array
+		rootSlides = [];
+		$.each($[deck]('getSlides'), function(i, $el) {
+			if (!$el.parentsUntil(opts.selectors.container, slideTest).length) {
+				rootSlides.push($el);
+			}
+		});
+		
+		// Use a wrapper on each slide to handle content scaling
+		$.each(rootSlides, function(i, $slide) {
+			$slide.children().wrapAll('<div class="' + opts.classes.scaleSlideWrapper + '"/>');
+		});
+
+		// Debounce the resize scaling
+		$w.unbind('resize.deckscale').bind('resize.deckscale', function() {
+			window.clearTimeout(timer);
+			timer = window.setTimeout(scaleDeck, opts.scaleDebounce);
+		})
+		// Scale once on load, in case images or something change layout
+		.unbind('load.deckscale').bind('load.deckscale', scaleDeck);
+
+		// Bind key events
+		$d.unbind('keydown.deckscale').bind('keydown.deckscale', function(e) {
+			if (e.which === opts.keys.scale || $.inArray(e.which, opts.keys.scale) > -1) {
+				$[deck]('toggleScale');
+				e.preventDefault();
+			}
+		});
+
+		// Enable scale on init
+		$[deck]('enableScale');
+	});
+})(jQuery, 'deck', this);
+

Added: incubator/calcite/site/0.9-incubating/slides/extensions/scale/deck.scale.scss
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/scale/deck.scale.scss?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/scale/deck.scale.scss (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/scale/deck.scale.scss Thu Oct 23 22:27:44 2014
@@ -0,0 +1,31 @@
+/* Remove this line if you are embedding deck.js in a page and
+using the scale extension. */
+.csstransforms {
+	overflow:hidden;
+}
+
+.csstransforms .deck-container.deck-scale:not(.deck-menu) {
+	> .slide {
+		-webkit-box-sizing: padding-box;
+		-moz-box-sizing: padding-box;
+		box-sizing: padding-box;
+		width:100%;
+		padding-bottom:20px;
+		
+		> .deck-slide-scaler {
+			-webkit-transform-origin: 50% 0;
+			-moz-transform-origin: 50% 0;
+			-o-transform-origin: 50% 0;
+			-ms-transform-origin: 50% 0;
+			transform-origin: 50% 0;
+		}
+	}
+}
+
+.csstransforms .deck-container.deck-menu .deck-slide-scaler {
+	-webkit-transform:none !important;
+	-moz-transform:none !important;
+	-o-transform:none !important;
+	-ms-transform:none !important;
+	transform:none !important;
+}
\ No newline at end of file

Added: incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.css
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.css?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.css (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.css Thu Oct 23 22:27:44 2014
@@ -0,0 +1,18 @@
+.deck-container .deck-status {
+  position: absolute;
+  bottom: 10px;
+  right: 5px;
+  color: #888;
+  z-index: 3;
+  margin: 0;
+}
+
+body.deck-container .deck-status {
+  position: fixed;
+}
+
+@media print {
+  .deck-status {
+    display: none;
+  }
+}

Added: incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.html
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.html?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.html (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.html Thu Oct 23 22:27:44 2014
@@ -0,0 +1,6 @@
+<!-- Place the following snippet at the bottom of the deck container. -->
+<p class="deck-status">
+	<span class="deck-status-current"></span>
+	/
+	<span class="deck-status-total"></span>
+</p>
\ No newline at end of file

Added: incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.js
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.js?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.js (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.js Thu Oct 23 22:27:44 2014
@@ -0,0 +1,95 @@
+/*!
+Deck JS - deck.status
+Copyright (c) 2011 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+This module adds a (current)/(total) style status indicator to the deck.
+*/
+(function($, deck, undefined) {
+	var $d = $(document),
+	
+	updateCurrent = function(e, from, to) {
+		var opts = $[deck]('getOptions');
+		
+		$(opts.selectors.statusCurrent).text(opts.countNested ?
+			to + 1 :
+			$[deck]('getSlide', to).data('rootSlide')
+		);
+	};
+	
+	/*
+	Extends defaults/options.
+	
+	options.selectors.statusCurrent
+		The element matching this selector displays the current slide number.
+		
+	options.selectors.statusTotal
+		The element matching this selector displays the total number of slides.
+		
+	options.countNested
+		If false, only top level slides will be counted in the current and
+		total numbers.
+	*/
+	$.extend(true, $[deck].defaults, {
+		selectors: {
+			statusCurrent: '.deck-status-current',
+			statusTotal: '.deck-status-total'
+		},
+		
+		countNested: true
+	});
+	
+	$d.bind('deck.init', function() {
+		var opts = $[deck]('getOptions'),
+		slides = $[deck]('getSlides'),
+		$current = $[deck]('getSlide'),
+		ndx;
+		
+		// Set total slides once
+		if (opts.countNested) {
+			$(opts.selectors.statusTotal).text(slides.length);
+		}
+		else {
+			/* Determine root slides by checking each slide's ancestor tree for
+			any of the slide classes. */
+			var rootIndex = 1,
+			slideTest = $.map([
+				opts.classes.before,
+				opts.classes.previous,
+				opts.classes.current,
+				opts.classes.next,
+				opts.classes.after
+			], function(el, i) {
+				return '.' + el;
+			}).join(', ');
+			
+			/* Store the 'real' root slide number for use during slide changes. */
+			$.each(slides, function(i, $el) {
+				var $parentSlides = $el.parentsUntil(opts.selectors.container, slideTest);
+
+				$el.data('rootSlide', $parentSlides.length ?
+					$parentSlides.last().data('rootSlide') :
+					rootIndex++
+				);
+			});
+			
+			$(opts.selectors.statusTotal).text(rootIndex - 1);
+		}
+		
+		// Find where we started in the deck and set initial state
+		$.each(slides, function(i, $el) {
+			if ($el === $current) {
+				ndx = i;
+				return false;
+			}
+		});
+		updateCurrent(null, ndx, ndx);
+	})
+	/* Update current slide number with each change event */
+	.bind('deck.change', updateCurrent);
+})(jQuery, 'deck');
+

Added: incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.scss
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.scss?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.scss (added)
+++ incubator/calcite/site/0.9-incubating/slides/extensions/status/deck.status.scss Thu Oct 23 22:27:44 2014
@@ -0,0 +1,22 @@
+.deck-container {
+	.deck-status {
+		position:absolute;
+		bottom:10px;
+		right:5px;
+		color:#888;
+		z-index:3;
+		margin:0;
+	}
+}
+
+body.deck-container {
+	.deck-status {
+		position:fixed;
+	}
+}
+
+@media print {
+	.deck-status {
+		display:none;
+	}
+}

Added: incubator/calcite/site/0.9-incubating/slides/falcon-overview.html
URL: http://svn.apache.org/viewvc/incubator/calcite/site/0.9-incubating/slides/falcon-overview.html?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/0.9-incubating/slides/falcon-overview.html (added)
+++ incubator/calcite/site/0.9-incubating/slides/falcon-overview.html Thu Oct 23 22:27:44 2014
@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=1024, user-scalable=no">
+
+    <title>Apache Calcite - A Dynamic Data Management Framework</title>
+
+    <!-- Required stylesheet -->
+    <link rel="stylesheet" href="core/deck.core.css">
+
+    <!-- Extension CSS files go here. Remove or add as needed. -->
+    <link rel="stylesheet" href="extensions/goto/deck.goto.css">
+    <link rel="stylesheet" href="extensions/menu/deck.menu.css">
+    <link rel="stylesheet" href="extensions/navigation/deck.navigation.css">
+    <link rel="stylesheet" href="extensions/status/deck.status.css">
+    <link rel="stylesheet" href="extensions/hash/deck.hash.css">
+    <link rel="stylesheet" href="extensions/scale/deck.scale.css">
+
+    <!-- Style theme. More available in /themes/style/ or create your own. -->
+    <link rel="stylesheet" href="themes/style/web-2.0.css">
+
+    <!-- Transition theme. More available in /themes/transition/ or create your own. -->
+    <link rel="stylesheet" href="themes/transition/horizontal-slide.css">
+
+    <!-- Required Modernizr file -->
+    <script src="modernizr.custom.js"></script>
+</head>
+<body class="deck-container">
+
+<!-- Begin slides. Just make elements with a class of slide. -->
+
+<section class="slide" id="intro">
+    <h2>Apache Calcite</h2>
+    <h3>A Dynamic Data Management Framework</h3>
+</section>
+
+<section class="slide" id="what">
+    <h2>What is Data Management Framework ?</h2>
+    <ul>
+        <li class="slide">
+            <h3>Data Management Framework</h3>
+            <p>Import, Export</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="critical">
+    <h2>Why Data Management Framework needed ?</h2>
+    <ul>
+        <li class="slide">
+            <h3>Productivity Gains</h3>
+            <p>Data Loading optimized for space, time and bandwidth</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="challenges">
+    <h2>Challenging Making A Universal Data Management Framework ?</h2>
+    <ul>
+        <li class="slide">
+            <h3>Data Management is hard and messy</h3>
+            <p>New opportunities – from Traditional ETL</p>
+            <p>Steady growth in data volumes – 3 V</p>
+            <p>SLA requirements</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="solution">
+    <h2>Calcite - The Solution!</h2>
+    <ul>
+        <li class="slide">
+            <h3>Abstraction – Data Set</h3>
+            <p>Decouples a data location and type</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="how">
+    <h2>How does Calcite work?</h2>
+    <ul>
+        <li class="slide">
+            <h3>Connect</h3>
+            <p>SQL query</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="hla">
+    <h2>High Level Architecture</h2>
+    <img src="../images/Architecture.png" alt="High Level Architecture" />
+</section>
+
+<section class="slide" id="case-study-repl">
+    <h2>Case Study: </h2>
+    <ul>
+        <li class="slide">
+            <h3>User creates</h3>
+            <p>User sees</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="case-study-process">
+    <h2>Case Study: </h2>
+    <ul>
+        <li class="slide">Coming Soon....</li>
+    </ul>
+</section>
+
+<section class="slide" id="highlights">
+    <h2>Calcite Highlights</h2>
+    <ul>
+        <li class="slide">Coming Soon....</li>
+        <li class="slide">
+            <h3>Current Status</h3>
+            <p>v0.9.1 released</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="thank-you">
+    <h2>Thank you!</h2>
+    <ul>
+        <li>
+            <h3>For more information on Falcon</h3>
+            <p>Visit <a href="http://calcite.incubator.apache.org">Apache Calcite</a></p>
+        </li>
+    </ul>
+</section>
+
+<!-- End slides. -->
+
+
+<!-- Begin extension snippets. Add or remove as needed. -->
+
+<!-- deck.navigation snippet -->
+<a href="#" class="deck-prev-link" title="Previous">&#8592;</a>
+<a href="#" class="deck-next-link" title="Next">&#8594;</a>
+
+<!-- deck.status snippet -->
+<p class="deck-status">
+    <span class="deck-status-current"></span>
+    /
+    <span class="deck-status-total"></span>
+</p>
+
+<!-- deck.goto snippet -->
+<form action="." method="get" class="goto-form">
+    <label for="goto-slide">Go to slide:</label>
+    <input type="text" name="slidenum" id="goto-slide" list="goto-datalist">
+    <datalist id="goto-datalist"></datalist>
+    <input type="submit" value="Go">
+</form>
+
+<!-- deck.hash snippet -->
+<a href="." title="Permalink to this slide" class="deck-permalink">#</a>
+
+<!-- End extension snippets. -->
+
+
+<!-- Required JS files. -->
+<script src="jquery-1.7.2.min.js"></script>
+<script src="core/deck.core.js"></script>
+
+<!-- Extension JS files. Add or remove as needed. -->
+<script src="core/deck.core.js"></script>
+<script src="extensions/hash/deck.hash.js"></script>
+<script src="extensions/menu/deck.menu.js"></script>
+<script src="extensions/goto/deck.goto.js"></script>
+<script src="extensions/status/deck.status.js"></script>
+<script src="extensions/navigation/deck.navigation.js"></script>
+<script src="extensions/scale/deck.scale.js"></script>
+
+<!-- Initialize the deck. You can put this in an external file if desired. -->
+<script>
+    $(function() {
+        $.deck('.slide');
+    });
+</script>
+</body>
+</html>