compass_extension 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/app/helpers/html5_boilerplate_helper.rb +63 -0
- data/lib/compass/h5bp/version.rb +6 -0
- data/lib/compass/h5bp.rb +7 -0
- data/lib/compass_extension.rb +9 -0
- data/stylesheets/_h5bp.scss +12 -0
- data/stylesheets/h5bp/_chromeframe.scss +7 -0
- data/stylesheets/h5bp/_helpers.scss +58 -0
- data/stylesheets/h5bp/_media.scss +23 -0
- data/stylesheets/h5bp/_normalize.scss +213 -0
- data/templates/project/_flashes.html.haml +4 -0
- data/templates/project/_footer.html.haml +2 -0
- data/templates/project/_head.html.haml +29 -0
- data/templates/project/_header.html.haml +1 -0
- data/templates/project/_javascripts.html.haml +37 -0
- data/templates/project/_stylesheets.html.haml +5 -0
- data/templates/project/application.html.haml +22 -0
- data/templates/project/files/404.html +38 -0
- data/templates/project/files/apple-touch-icon-114x114-precomposed.png +0 -0
- data/templates/project/files/apple-touch-icon-57x57-precomposed.png +0 -0
- data/templates/project/files/apple-touch-icon-72x72-precomposed.png +0 -0
- data/templates/project/files/apple-touch-icon-precomposed.png +0 -0
- data/templates/project/files/apple-touch-icon.png +0 -0
- data/templates/project/files/crossdomain.xml +25 -0
- data/templates/project/files/favicon.ico +0 -0
- data/templates/project/files/favicon.png +0 -0
- data/templates/project/files/google.yml +22 -0
- data/templates/project/files/humans.txt +43 -0
- data/templates/project/files/robots.txt +5 -0
- data/templates/project/index.html.haml +83 -0
- data/templates/project/javascripts/jquery-1.7.2.js +9404 -0
- data/templates/project/javascripts/jquery-1.7.2.min.js +4 -0
- data/templates/project/javascripts/jquery-ui-1.8.22.min.js +85 -0
- data/templates/project/javascripts/modernizr-2.5.3.min.js +4 -0
- data/templates/project/javascripts/plugins.js +105 -0
- data/templates/project/javascripts/rails.js +368 -0
- data/templates/project/javascripts/respond.min.js +6 -0
- data/templates/project/javascripts/script.js +26 -0
- data/templates/project/manifest.rb +83 -2
- data/templates/project/partials/SCSS_template.scss +83 -0
- data/templates/project/partials/_base.scss +198 -0
- data/templates/project/partials/_fonts.scss +4 -0
- data/templates/project/partials/_footer.scss +83 -0
- data/templates/project/partials/_header.scss +83 -0
- data/templates/project/partials/_media.scss +38 -0
- data/templates/project/partials/_modules.scss +19 -0
- data/templates/project/partials/_overrides.scss +47 -0
- data/templates/project/partials/_page.scss +126 -0
- data/templates/project/partials/modules/_mod-breadcrumb.scss +83 -0
- data/templates/project/partials/modules/_mod-carousels.scss +83 -0
- data/templates/project/partials/modules/_mod-default.scss +83 -0
- data/templates/project/partials/modules/_mod-form.scss +83 -0
- data/templates/project/partials/modules/_mod-login.scss +83 -0
- data/templates/project/partials/modules/_mod-pagination.scss +83 -0
- data/templates/project/partials/modules/_mod-subnav.scss +83 -0
- data/templates/project/partials/modules/_mod-widget.scss +83 -0
- data/templates/project/style.scss +28 -0
- metadata +56 -3
- data/templates/project/screen.scss +0 -2
@@ -0,0 +1,105 @@
|
|
1
|
+
/**
|
2
|
+
* Content Plugins:
|
3
|
+
*
|
4
|
+
* - console.log
|
5
|
+
*
|
6
|
+
* - Equal Height
|
7
|
+
* - jQuery FlexSlider v2.0
|
8
|
+
*
|
9
|
+
**/
|
10
|
+
|
11
|
+
// usage: log('inside coolFunc', this, arguments);
|
12
|
+
// paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
|
13
|
+
window.log = function f(){ log.history = log.history || []; log.history.push(arguments); if(this.console) { var args = arguments, newarr; args.callee = args.callee.caller; newarr = [].slice.call(args); if (typeof console.log === 'object') log.apply.call(console.log, console, newarr); else console.log.apply(console, newarr);}};
|
14
|
+
|
15
|
+
// make it safe to use console.log always
|
16
|
+
(function(a){function b(){}for(var c="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(","),d;!!(d=c.pop());){a[d]=a[d]||b;}})
|
17
|
+
(function(){try{console.log();return window.console;}catch(a){return (window.console={});}}());
|
18
|
+
|
19
|
+
|
20
|
+
/*--------------------------------------------------------------------
|
21
|
+
* JQuery Plugin: "EqualHeights" & "EqualWidths"
|
22
|
+
* by: Scott Jehl, Todd Parker, Maggie Costello Wachs (http://www.filamentgroup.com)
|
23
|
+
*
|
24
|
+
* Copyright (c) 2007 Filament Group
|
25
|
+
* Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)
|
26
|
+
*
|
27
|
+
* Description: Compares the heights or widths of the top-level children of a provided element
|
28
|
+
and sets their min-height to the tallest height (or width to widest width). Sets in em units
|
29
|
+
by default if pxToEm() method is available.
|
30
|
+
* Dependencies: jQuery library, pxToEm method (article: http://www.filamentgroup.com/lab/retaining_scalable_interfaces_with_pixel_to_em_conversion/)
|
31
|
+
* Usage Example: $(element).equalHeights();
|
32
|
+
Optional: to set min-height in px, pass a true argument: $(element).equalHeights(true);
|
33
|
+
* Version: 2.0, 07.24.2008
|
34
|
+
* Changelog:
|
35
|
+
* 08.02.2007 initial Version 1.0
|
36
|
+
* 07.24.2008 v 2.0 - added support for widths
|
37
|
+
--------------------------------------------------------------------*/
|
38
|
+
|
39
|
+
$.fn.equalHeights = function(px) {
|
40
|
+
$(this).each(function(){
|
41
|
+
var currentTallest = 0;
|
42
|
+
$(this).children().each(function(i){
|
43
|
+
if ($(this).height() > currentTallest) { currentTallest = $(this).height(); }
|
44
|
+
});
|
45
|
+
//if (!px || !Number.prototype.pxToEm) currentTallest = currentTallest.pxToEm(); //use ems unless px is specified
|
46
|
+
// for ie6, set height since min-height isn't supported
|
47
|
+
if ($.browser.msie && $.browser.version == 6.0) { $(this).children().css({'height': currentTallest}); }
|
48
|
+
$(this).children().css({'min-height': currentTallest}).css('background', 'cyan');
|
49
|
+
//console.log( $(this).children() );
|
50
|
+
});
|
51
|
+
return this;
|
52
|
+
};
|
53
|
+
|
54
|
+
// just in case you need it...
|
55
|
+
$.fn.equalWidths = function(px) {
|
56
|
+
$(this).each(function(){
|
57
|
+
var currentWidest = 0;
|
58
|
+
$(this).children().each(function(i){
|
59
|
+
if($(this).width() > currentWidest) { currentWidest = $(this).width(); }
|
60
|
+
});
|
61
|
+
//if(!px || !Number.prototype.pxToEm) currentWidest = currentWidest.pxToEm(); //use ems unless px is specified
|
62
|
+
// for ie6, set width since min-width isn't supported
|
63
|
+
if ($.browser.msie && $.browser.version == 6.0) { $(this).children().css({'width': currentWidest}); }
|
64
|
+
$(this).children().css({'min-width': currentWidest});
|
65
|
+
});
|
66
|
+
return this;
|
67
|
+
};
|
68
|
+
|
69
|
+
/*
|
70
|
+
* jQuery FlexSlider v2.0
|
71
|
+
* Copyright 2012 WooThemes
|
72
|
+
* Contributing Author: Tyler Smith
|
73
|
+
*/
|
74
|
+
;(function(d){d.flexslider=function(h,k){var a=d(h),c=d.extend({},d.flexslider.defaults,k),e=c.namespace,o="ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,s=o?"touchend":"click",l="vertical"===c.direction,m=c.reverse,i=0<c.itemWidth,p="fade"===c.animation,r=""!==c.asNavFor,f={};d.data(h,"flexslider",a);f={init:function(){a.animating=!1;a.currentSlide=c.startAt;a.animatingTo=a.currentSlide;a.atEnd=0===a.currentSlide||a.currentSlide===a.last;a.containerSelector=c.selector.substr(0,
|
75
|
+
c.selector.search(" "));a.slides=d(c.selector,a);a.container=d(a.containerSelector,a);a.count=a.slides.length;a.syncExists=0<d(c.sync).length;"slide"===c.animation&&(c.animation="swing");a.prop=l?"top":"marginLeft";a.args={};a.manualPause=!1;a.transitions=!c.video&&!p&&c.useCSS&&function(){var b=document.createElement("div"),c=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"],d;for(d in c)if(b.style[c[d]]!==void 0){a.pfx=c[d].replace("Perspective","").toLowerCase();
|
76
|
+
a.prop="-"+a.pfx+"-transform";return true}return false}();""!==c.controlsContainer&&(a.controlsContainer=0<d(c.controlsContainer).length&&d(c.controlsContainer));""!==c.manualControls&&(a.manualControls=0<d(c.manualControls).length&&d(c.manualControls));c.randomize&&(a.slides.sort(function(){return Math.round(Math.random())-0.5}),a.container.empty().append(a.slides));a.doMath();r&&f.asNav.setup();a.setup("init");c.controlNav&&f.controlNav.setup();c.directionNav&&f.directionNav.setup();c.keyboard&&
|
77
|
+
(1===d(a.containerSelector).length||c.multipleKeyboard)&&d(document).bind("keyup",function(b){b=b.keyCode;if(!a.animating&&(b===39||b===37)){b=b===39?a.getTarget("next"):b===37?a.getTarget("prev"):false;a.flexAnimate(b,c.pauseOnAction)}});c.mousewheel&&a.bind("mousewheel",function(b,g){b.preventDefault();var d=g<0?a.getTarget("next"):a.getTarget("prev");a.flexAnimate(d,c.pauseOnAction)});c.pausePlay&&f.pausePlay.setup();c.slideshow&&(c.pauseOnHover&&a.hover(function(){a.pause()},function(){a.manualPause||
|
78
|
+
a.play()}),0<c.initDelay?setTimeout(a.play,c.initDelay):a.play());o&&c.touch&&f.touch();(!p||p&&c.smoothHeight)&&d(window).bind("resize focus",f.resize);setTimeout(function(){c.start(a)},200)},asNav:{setup:function(){a.asNav=!0;a.animatingTo=Math.floor(a.currentSlide/a.move);a.currentItem=a.currentSlide;a.slides.removeClass(e+"active-slide").eq(a.currentItem).addClass(e+"active-slide");a.slides.click(function(b){b.preventDefault();var b=d(this),g=b.index();!d(c.asNavFor).data("flexslider").animating&&
|
79
|
+
!b.hasClass("active")&&(a.direction=a.currentItem<g?"next":"prev",a.flexAnimate(g,c.pauseOnAction,!1,!0,!0))})}},controlNav:{setup:function(){a.manualControls?f.controlNav.setupManual():f.controlNav.setupPaging()},setupPaging:function(){var b=1,g;a.controlNavScaffold=d('<ol class="'+e+"control-nav "+e+("thumbnails"===c.controlNav?"control-thumbs":"control-paging")+'"></ol>');if(1<a.pagingCount)for(var q=0;q<a.pagingCount;q++)g="thumbnails"===c.controlNav?'<img src="'+a.slides.eq(q).attr("data-thumb")+
|
80
|
+
'"/>':"<a>"+b+"</a>",a.controlNavScaffold.append("<li>"+g+"</li>"),b++;a.controlsContainer?d(a.controlsContainer).append(a.controlNavScaffold):a.append(a.controlNavScaffold);f.controlNav.set();f.controlNav.active();a.controlNavScaffold.delegate("a, img",s,function(b){b.preventDefault();var b=d(this),g=a.controlNav.index(b);b.hasClass(e+"active")||(a.direction=g>a.currentSlide?"next":"prev",a.flexAnimate(g,c.pauseOnAction))});o&&a.controlNavScaffold.delegate("a","click touchstart",function(a){a.preventDefault()})},
|
81
|
+
setupManual:function(){a.controlNav=a.manualControls;f.controlNav.active();a.controlNav.live(s,function(b){b.preventDefault();var b=d(this),g=a.controlNav.index(b);b.hasClass(e+"active")||(g>a.currentSlide?a.direction="next":a.direction="prev",a.flexAnimate(g,c.pauseOnAction))});o&&a.controlNav.live("click touchstart",function(a){a.preventDefault()})},set:function(){a.controlNav=d("."+e+"control-nav li "+("thumbnails"===c.controlNav?"img":"a"),a.controlsContainer?a.controlsContainer:a)},active:function(){a.controlNav.removeClass(e+
|
82
|
+
"active").eq(a.animatingTo).addClass(e+"active")},update:function(b,c){1<a.pagingCount&&"add"===b?a.controlNavScaffold.append(d("<li><a>"+a.count+"</a></li>")):1===a.pagingCount?a.controlNavScaffold.find("li").remove():a.controlNav.eq(c).closest("li").remove();f.controlNav.set();1<a.pagingCount&&a.pagingCount!==a.controlNav.length?a.update(c,b):f.controlNav.active()}},directionNav:{setup:function(){var b=d('<ul class="'+e+'direction-nav"><li><a class="'+e+'prev" href="#">'+c.prevText+'</a></li><li><a class="'+
|
83
|
+
e+'next" href="#">'+c.nextText+"</a></li></ul>");a.controlsContainer?(d(a.controlsContainer).append(b),a.directionNav=d("."+e+"direction-nav li a",a.controlsContainer)):(a.append(b),a.directionNav=d("."+e+"direction-nav li a",a));f.directionNav.update();a.directionNav.bind(s,function(b){b.preventDefault();b=d(this).hasClass(e+"next")?a.getTarget("next"):a.getTarget("prev");a.flexAnimate(b,c.pauseOnAction)});o&&a.directionNav.bind("click touchstart",function(a){a.preventDefault()})},update:function(){var b=
|
84
|
+
e+"disabled";c.animationLoop||(1===a.pagingCount?a.directionNav.addClass(b):0===a.animatingTo?a.directionNav.removeClass(b).filter("."+e+"prev").addClass(b):a.animatingTo===a.last?a.directionNav.removeClass(b).filter("."+e+"next").addClass(b):a.directionNav.removeClass(b))}},pausePlay:{setup:function(){var b=d('<div class="'+e+'pauseplay"><a></a></div>');a.controlsContainer?(a.controlsContainer.append(b),a.pausePlay=d("."+e+"pauseplay a",a.controlsContainer)):(a.append(b),a.pausePlay=d("."+e+"pauseplay a",
|
85
|
+
a));f.pausePlay.update(c.slideshow?e+"pause":e+"play");a.pausePlay.bind(s,function(b){b.preventDefault();if(d(this).hasClass(e+"pause")){a.pause();a.manualPause=true}else{a.play();a.manualPause=false}});o&&a.pausePlay.bind("click touchstart",function(a){a.preventDefault()})},update:function(b){"play"===b?a.pausePlay.removeClass(e+"pause").addClass(e+"play").text(c.playText):a.pausePlay.removeClass(e+"play").addClass(e+"pause").text(c.pauseText)}},touch:function(){function b(b){j=l?d-b.touches[0].pageY:
|
86
|
+
d-b.touches[0].pageX;o=l?Math.abs(j)<Math.abs(b.touches[0].pageX-e):Math.abs(j)<Math.abs(b.touches[0].pageY-e);if(!o||500<Number(new Date)-k)b.preventDefault(),!p&&a.transitions&&(c.animationLoop||(j/=0===a.currentSlide&&0>j||a.currentSlide===a.last&&0<j?Math.abs(j)/n+2:1),a.setProps(f+j,"setTouch"))}function g(){if(a.animatingTo===a.currentSlide&&!o&&null!==j){var i=m?-j:j,l=0<i?a.getTarget("next"):a.getTarget("prev");a.canAdvance(l)&&(550>Number(new Date)-k&&20<Math.abs(i)||Math.abs(i)>n/2)?a.flexAnimate(l,
|
87
|
+
c.pauseOnAction):a.flexAnimate(a.currentSlide,c.pauseOnAction,!0)}h.removeEventListener("touchmove",b,!1);h.removeEventListener("touchend",g,!1);f=j=e=d=null}var d,e,f,n,j,k,o=!1;h.addEventListener("touchstart",function(j){a.animating?j.preventDefault():1===j.touches.length&&(a.pause(),n=l?a.h:a.w,k=Number(new Date),f=i&&m&&a.animatingTo===a.last?0:i&&m?a.limit-(a.itemW+c.itemMargin)*a.move*a.animatingTo:i&&a.currentSlide===a.last?a.limit:i?(a.itemW+c.itemMargin)*a.move*a.currentSlide:m?(a.last-a.currentSlide+
|
88
|
+
a.cloneOffset)*n:(a.currentSlide+a.cloneOffset)*n,d=l?j.touches[0].pageY:j.touches[0].pageX,e=l?j.touches[0].pageX:j.touches[0].pageY,h.addEventListener("touchmove",b,!1),h.addEventListener("touchend",g,!1))},!1)},resize:function(){!a.animating&&a.is(":visible")&&(i||a.doMath(),p?f.smoothHeight():i?(a.slides.width(a.computedW),a.update(a.pagingCount),a.setProps()):l?(a.viewport.height(a.h),a.setProps(a.h,"setTotal")):(c.smoothHeight&&f.smoothHeight(),a.newSlides.width(a.computedW),a.setProps(a.computedW,
|
89
|
+
"setTotal")))},smoothHeight:function(b){if(!l||p){var c=p?a:a.viewport;b?c.animate({height:a.slides.eq(a.animatingTo).height()},b):c.height(a.slides.eq(a.animatingTo).height())}},sync:function(b){var g=d(c.sync).data("flexslider"),e=a.animatingTo;switch(b){case "animate":g.flexAnimate(e,c.pauseOnAction,!1,!0);break;case "play":!g.playing&&!g.asNav&&g.play();break;case "pause":g.pause()}}};a.flexAnimate=function(b,g,q,h,k){if(!a.animating&&(a.canAdvance(b)||q)&&a.is(":visible")){if(r&&h)if(q=d(c.asNavFor).data("flexslider"),
|
90
|
+
a.atEnd=0===b||b===a.count-1,q.flexAnimate(b,!0,!1,!0,k),a.direction=a.currentItem<b?"next":"prev",q.direction=a.direction,Math.ceil((b+1)/a.visible)-1!==a.currentSlide&&0!==b)a.currentItem=b,a.slides.removeClass(e+"active-slide").eq(b).addClass(e+"active-slide"),b=Math.floor(b/a.visible);else return a.currentItem=b,a.slides.removeClass(e+"active-slide").eq(b).addClass(e+"active-slide"),!1;a.animating=!0;a.animatingTo=b;c.before(a);g&&a.pause();a.syncExists&&!k&&f.sync("animate");c.controlNav&&f.controlNav.active();
|
91
|
+
i||a.slides.removeClass(e+"active-slide").eq(b).addClass(e+"active-slide");a.atEnd=0===b||b===a.last;c.directionNav&&f.directionNav.update();b===a.last&&(c.end(a),c.animationLoop||a.pause());if(p)a.slides.eq(a.currentSlide).fadeOut(c.animationSpeed,c.easing),a.slides.eq(b).fadeIn(c.animationSpeed,c.easing,a.wrapup);else{var n=l?a.slides.filter(":first").height():a.computedW;i?(b=c.itemWidth>a.w?2*c.itemMargin:c.itemMargin,b=(a.itemW+b)*a.move*a.animatingTo,b=b>a.limit&&1!==a.visible?a.limit:b):b=
|
92
|
+
0===a.currentSlide&&b===a.count-1&&c.animationLoop&&"next"!==a.direction?m?(a.count+a.cloneOffset)*n:0:a.currentSlide===a.last&&0===b&&c.animationLoop&&"prev"!==a.direction?m?0:(a.count+1)*n:m?(a.count-1-b+a.cloneOffset)*n:(b+a.cloneOffset)*n;a.setProps(b,"",c.animationSpeed);if(a.transitions){if(!c.animationLoop||!a.atEnd)a.animating=!1,a.currentSlide=a.animatingTo;a.container.unbind("webkitTransitionEnd transitionend");a.container.bind("webkitTransitionEnd transitionend",function(){a.wrapup(n)})}else a.container.animate(a.args,
|
93
|
+
c.animationSpeed,c.easing,function(){a.wrapup(n)})}c.smoothHeight&&f.smoothHeight(c.animationSpeed)}};a.wrapup=function(b){!p&&!i&&(0===a.currentSlide&&a.animatingTo===a.last&&c.animationLoop?a.setProps(b,"jumpEnd"):a.currentSlide===a.last&&(0===a.animatingTo&&c.animationLoop)&&a.setProps(b,"jumpStart"));a.animating=!1;a.currentSlide=a.animatingTo;c.after(a)};a.animateSlides=function(){a.animating||a.flexAnimate(a.getTarget("next"))};a.pause=function(){clearInterval(a.animatedSlides);a.playing=!1;
|
94
|
+
c.pausePlay&&f.pausePlay.update("play");a.syncExists&&f.sync("pause")};a.play=function(){a.animatedSlides=setInterval(a.animateSlides,c.slideshowSpeed);a.playing=!0;c.pausePlay&&f.pausePlay.update("pause");a.syncExists&&f.sync("play")};a.canAdvance=function(b){var d=r?a.pagingCount-1:a.last;return r&&0===a.currentItem&&b===a.pagingCount-1&&"next"!==a.direction?!1:b===a.currentSlide&&!r?!1:c.animationLoop?!0:a.atEnd&&0===a.currentSlide&&b===d&&"next"!==a.direction?!1:a.atEnd&&a.currentSlide===d&&0===
|
95
|
+
b&&"next"===a.direction?!1:!0};a.getTarget=function(b){a.direction=b;return"next"===b?a.currentSlide===a.last?0:a.currentSlide+1:0===a.currentSlide?a.last:a.currentSlide-1};a.setProps=function(b,d,e){var f=function(){var e=b?b:(a.itemW+c.itemMargin)*a.move*a.animatingTo;return-1*function(){if(i)return"setTouch"===d?b:m&&a.animatingTo===a.last?0:m?a.limit-(a.itemW+c.itemMargin)*a.move*a.animatingTo:a.animatingTo===a.last?a.limit:e;switch(d){case "setTotal":return m?(a.count-1-a.currentSlide+a.cloneOffset)*
|
96
|
+
b:(a.currentSlide+a.cloneOffset)*b;case "setTouch":return b;case "jumpEnd":return m?b:a.count*b;case "jumpStart":return m?a.count*b:b;default:return b}}()+"px"}();a.transitions&&(f=l?"translate3d(0,"+f+",0)":"translate3d("+f+",0,0)",e=void 0!==e?e/1E3+"s":"0s",a.container.css("-"+a.pfx+"-transition-duration",e));a.args[a.prop]=f;(a.transitions||void 0===e)&&a.container.css(a.args)};a.setup=function(b){if(p)a.slides.css({width:"100%","float":"left",marginRight:"-100%",position:"relative"}),"init"===
|
97
|
+
b&&a.slides.eq(a.currentSlide).fadeIn(c.animationSpeed,c.easing),c.smoothHeight&&f.smoothHeight();else{var g,h;"init"===b&&(a.viewport=d('<div class="flex-viewport"></div>').css({overflow:"hidden",position:"relative"}).appendTo(a).append(a.container),a.cloneCount=0,a.cloneOffset=0,m&&(h=d.makeArray(a.slides).reverse(),a.slides=d(h),a.container.empty().append(a.slides)));c.animationLoop&&!i&&(a.cloneCount=2,a.cloneOffset=1,"init"!==b&&a.container.find(".clone").remove(),a.container.append(a.slides.first().clone().addClass("clone")).prepend(a.slides.last().clone().addClass("clone")));
|
98
|
+
a.newSlides=d(c.selector,a);g=m?a.count-1-a.currentSlide+a.cloneOffset:a.currentSlide+a.cloneOffset;l&&!i?(a.container.height(200*(a.count+a.cloneCount)+"%").css("position","absolute").width("100%"),setTimeout(function(){a.newSlides.css({display:"block"});a.doMath();a.viewport.height(a.h);a.setProps(g*a.h,"init")},"init"===b?100:0)):(a.container.width(200*(a.count+a.cloneCount)+"%"),a.setProps(g*a.computedW,"init"),setTimeout(function(){a.doMath();a.newSlides.css({width:a.computedW,"float":"left",
|
99
|
+
display:"block"});c.smoothHeight&&f.smoothHeight()},"init"===b?100:0))}i||a.slides.removeClass(e+"active-slide").eq(a.currentSlide).addClass(e+"active-slide")};a.doMath=function(){var b=a.slides.first(),d=c.itemMargin,e=c.minItems,f=c.maxItems;a.w=a.width();a.h=b.height();a.boxPadding=b.outerWidth()-b.width();i?(a.itemT=c.itemWidth+d,a.minW=e?e*a.itemT:a.w,a.maxW=f?f*a.itemT:a.w,a.itemW=a.minW>a.w?(a.w-d*e)/e:a.maxW<a.w?(a.w-d*f)/f:c.itemWidth>a.w?a.w:c.itemWidth,a.visible=Math.floor(a.w/(a.itemW+
|
100
|
+
d)),a.move=0<c.move&&c.move<a.visible?c.move:a.visible,a.pagingCount=Math.ceil((a.count-a.visible)/a.move+1),a.last=a.pagingCount-1,a.limit=1===a.pagingCount?0:c.itemWidth>a.w?(a.itemW+2*d)*a.count-a.w-d:(a.itemW+d)*a.count-a.w):(a.itemW=a.w,a.pagingCount=a.count,a.last=a.count-1);a.computedW=a.itemW-a.boxPadding};a.update=function(b,d){a.doMath();i||(b<a.currentSlide?a.currentSlide+=1:b<=a.currentSlide&&0!==b&&(a.currentSlide-=1),a.animatingTo=a.currentSlide);if(c.controlNav&&!a.manualControls)if("add"===
|
101
|
+
d&&!i||a.pagingCount>a.controlNav.length)f.controlNav.update("add");else if("remove"===d&&!i||a.pagingCount<a.controlNav.length)i&&a.currentSlide>a.last&&(a.currentSlide-=1,a.animatingTo-=1),f.controlNav.update("remove",a.last);c.directionNav&&f.directionNav.update()};a.addSlide=function(b,e){var f=d(b);a.count+=1;a.last=a.count-1;l&&m?void 0!==e?a.slides.eq(a.count-e).after(f):a.container.prepend(f):void 0!==e?a.slides.eq(e).before(f):a.container.append(f);a.update(e,"add");a.slides=d(c.selector+
|
102
|
+
":not(.clone)",a);a.setup();c.added(a)};a.removeSlide=function(b){var e=isNaN(b)?a.slides.index(d(b)):b;a.count-=1;a.last=a.count-1;isNaN(b)?d(b,a.slides).remove():l&&m?a.slides.eq(a.last).remove():a.slides.eq(b).remove();a.doMath();a.update(e,"remove");a.slides=d(c.selector+":not(.clone)",a);a.setup();c.removed(a)};f.init()};d.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,
|
103
|
+
slideshow:!0,slideshowSpeed:7E3,animationSpeed:600,initDelay:0,randomize:!1,pauseOnAction:!0,pauseOnHover:!1,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:"Previous",nextText:"Next",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:0,maxItems:0,move:0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},
|
104
|
+
removed:function(){}};d.fn.flexslider=function(h){h=h||{};if("object"===typeof h)return this.each(function(){var a=d(this),c=a.find(h.selector?h.selector:".slides > li");1===c.length?(c.fadeIn(400),h.start&&h.start(a)):void 0===a.data("flexslider")&&new d.flexslider(this,h)});var k=d(this).data("flexslider");switch(h){case "play":k.play();break;case "pause":k.pause();break;case "next":k.flexAnimate(k.getTarget("next"),!0);break;case "prev":case "previous":k.flexAnimate(k.getTarget("prev"),!0);break;
|
105
|
+
default:"number"===typeof h&&k.flexAnimate(h,!0)}}})(jQuery);
|
@@ -0,0 +1,368 @@
|
|
1
|
+
(function($, undefined) {
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Unobtrusive scripting adapter for jQuery
|
5
|
+
*
|
6
|
+
* Requires jQuery 1.6.0 or later.
|
7
|
+
* https://github.com/rails/jquery-ujs
|
8
|
+
|
9
|
+
* Uploading file using rails.js
|
10
|
+
* =============================
|
11
|
+
*
|
12
|
+
* By default, browsers do not allow files to be uploaded via AJAX. As a result, if there are any non-blank file fields
|
13
|
+
* in the remote form, this adapter aborts the AJAX submission and allows the form to submit through standard means.
|
14
|
+
*
|
15
|
+
* The `ajax:aborted:file` event allows you to bind your own handler to process the form submission however you wish.
|
16
|
+
*
|
17
|
+
* Ex:
|
18
|
+
* $('form').live('ajax:aborted:file', function(event, elements){
|
19
|
+
* // Implement own remote file-transfer handler here for non-blank file inputs passed in `elements`.
|
20
|
+
* // Returning false in this handler tells rails.js to disallow standard form submission
|
21
|
+
* return false;
|
22
|
+
* });
|
23
|
+
*
|
24
|
+
* The `ajax:aborted:file` event is fired when a file-type input is detected with a non-blank value.
|
25
|
+
*
|
26
|
+
* Third-party tools can use this hook to detect when an AJAX file upload is attempted, and then use
|
27
|
+
* techniques like the iframe method to upload the file instead.
|
28
|
+
*
|
29
|
+
* Required fields in rails.js
|
30
|
+
* ===========================
|
31
|
+
*
|
32
|
+
* If any blank required inputs (required="required") are detected in the remote form, the whole form submission
|
33
|
+
* is canceled. Note that this is unlike file inputs, which still allow standard (non-AJAX) form submission.
|
34
|
+
*
|
35
|
+
* The `ajax:aborted:required` event allows you to bind your own handler to inform the user of blank required inputs.
|
36
|
+
*
|
37
|
+
* !! Note that Opera does not fire the form's submit event if there are blank required inputs, so this event may never
|
38
|
+
* get fired in Opera. This event is what causes other browsers to exhibit the same submit-aborting behavior.
|
39
|
+
*
|
40
|
+
* Ex:
|
41
|
+
* $('form').live('ajax:aborted:required', function(event, elements){
|
42
|
+
* // Returning false in this handler tells rails.js to submit the form anyway.
|
43
|
+
* // The blank required inputs are passed to this function in `elements`.
|
44
|
+
* return ! confirm("Would you like to submit the form with missing info?");
|
45
|
+
* });
|
46
|
+
*/
|
47
|
+
|
48
|
+
// Shorthand to make it a little easier to call public rails functions from within rails.js
|
49
|
+
var rails;
|
50
|
+
|
51
|
+
$.rails = rails = {
|
52
|
+
// Link elements bound by jquery-ujs
|
53
|
+
linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]',
|
54
|
+
|
55
|
+
// Select elements bound by jquery-ujs
|
56
|
+
inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',
|
57
|
+
|
58
|
+
// Form elements bound by jquery-ujs
|
59
|
+
formSubmitSelector: 'form',
|
60
|
+
|
61
|
+
// Form input elements bound by jquery-ujs
|
62
|
+
formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not(button[type])',
|
63
|
+
|
64
|
+
// Form input elements disabled during form submission
|
65
|
+
disableSelector: 'input[data-disable-with], button[data-disable-with], textarea[data-disable-with]',
|
66
|
+
|
67
|
+
// Form input elements re-enabled after form submission
|
68
|
+
enableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled',
|
69
|
+
|
70
|
+
// Form required input elements
|
71
|
+
requiredInputSelector: 'input[name][required]:not([disabled]),textarea[name][required]:not([disabled])',
|
72
|
+
|
73
|
+
// Form file input elements
|
74
|
+
fileInputSelector: 'input:file',
|
75
|
+
|
76
|
+
// Link onClick disable selector with possible reenable after remote submission
|
77
|
+
linkDisableSelector: 'a[data-disable-with]',
|
78
|
+
|
79
|
+
// Make sure that every Ajax request sends the CSRF token
|
80
|
+
CSRFProtection: function(xhr) {
|
81
|
+
var token = $('meta[name="csrf-token"]').attr('content');
|
82
|
+
if (token) xhr.setRequestHeader('X-CSRF-Token', token);
|
83
|
+
},
|
84
|
+
|
85
|
+
// Triggers an event on an element and returns false if the event result is false
|
86
|
+
fire: function(obj, name, data) {
|
87
|
+
var event = $.Event(name);
|
88
|
+
obj.trigger(event, data);
|
89
|
+
return event.result !== false;
|
90
|
+
},
|
91
|
+
|
92
|
+
// Default confirm dialog, may be overridden with custom confirm dialog in $.rails.confirm
|
93
|
+
confirm: function(message) {
|
94
|
+
return confirm(message);
|
95
|
+
},
|
96
|
+
|
97
|
+
// Default ajax function, may be overridden with custom function in $.rails.ajax
|
98
|
+
ajax: function(options) {
|
99
|
+
return $.ajax(options);
|
100
|
+
},
|
101
|
+
|
102
|
+
// Submits "remote" forms and links with ajax
|
103
|
+
handleRemote: function(element) {
|
104
|
+
var method, url, data,
|
105
|
+
crossDomain = element.data('cross-domain') || null,
|
106
|
+
dataType = element.data('type') || ($.ajaxSettings && $.ajaxSettings.dataType),
|
107
|
+
options;
|
108
|
+
|
109
|
+
if (rails.fire(element, 'ajax:before')) {
|
110
|
+
|
111
|
+
if (element.is('form')) {
|
112
|
+
method = element.attr('method');
|
113
|
+
url = element.attr('action');
|
114
|
+
data = element.serializeArray();
|
115
|
+
// memoized value from clicked submit button
|
116
|
+
var button = element.data('ujs:submit-button');
|
117
|
+
if (button) {
|
118
|
+
data.push(button);
|
119
|
+
element.data('ujs:submit-button', null);
|
120
|
+
}
|
121
|
+
} else if (element.is(rails.inputChangeSelector)) {
|
122
|
+
method = element.data('method');
|
123
|
+
url = element.data('url');
|
124
|
+
data = element.serialize();
|
125
|
+
if (element.data('params')) data = data + "&" + element.data('params');
|
126
|
+
} else {
|
127
|
+
method = element.data('method');
|
128
|
+
url = element.attr('href');
|
129
|
+
data = element.data('params') || null;
|
130
|
+
}
|
131
|
+
|
132
|
+
options = {
|
133
|
+
type: method || 'GET', data: data, dataType: dataType, crossDomain: crossDomain,
|
134
|
+
// stopping the "ajax:beforeSend" event will cancel the ajax request
|
135
|
+
beforeSend: function(xhr, settings) {
|
136
|
+
if (settings.dataType === undefined) {
|
137
|
+
xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);
|
138
|
+
}
|
139
|
+
return rails.fire(element, 'ajax:beforeSend', [xhr, settings]);
|
140
|
+
},
|
141
|
+
success: function(data, status, xhr) {
|
142
|
+
element.trigger('ajax:success', [data, status, xhr]);
|
143
|
+
},
|
144
|
+
complete: function(xhr, status) {
|
145
|
+
element.trigger('ajax:complete', [xhr, status]);
|
146
|
+
},
|
147
|
+
error: function(xhr, status, error) {
|
148
|
+
element.trigger('ajax:error', [xhr, status, error]);
|
149
|
+
}
|
150
|
+
};
|
151
|
+
// Only pass url to `ajax` options if not blank
|
152
|
+
if (url) { options.url = url; }
|
153
|
+
|
154
|
+
rails.ajax(options);
|
155
|
+
}
|
156
|
+
},
|
157
|
+
|
158
|
+
// Handles "data-method" on links such as:
|
159
|
+
// <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a>
|
160
|
+
handleMethod: function(link) {
|
161
|
+
var href = link.attr('href'),
|
162
|
+
method = link.data('method'),
|
163
|
+
target = link.attr('target'),
|
164
|
+
csrf_token = $('meta[name=csrf-token]').attr('content'),
|
165
|
+
csrf_param = $('meta[name=csrf-param]').attr('content'),
|
166
|
+
form = $('<form method="post" action="' + href + '"></form>'),
|
167
|
+
metadata_input = '<input name="_method" value="' + method + '" type="hidden" />';
|
168
|
+
|
169
|
+
if (csrf_param !== undefined && csrf_token !== undefined) {
|
170
|
+
metadata_input += '<input name="' + csrf_param + '" value="' + csrf_token + '" type="hidden" />';
|
171
|
+
}
|
172
|
+
|
173
|
+
if (target) { form.attr('target', target); }
|
174
|
+
|
175
|
+
form.hide().append(metadata_input).appendTo('body');
|
176
|
+
form.submit();
|
177
|
+
},
|
178
|
+
|
179
|
+
/* Disables form elements:
|
180
|
+
- Caches element value in 'ujs:enable-with' data store
|
181
|
+
- Replaces element text with value of 'data-disable-with' attribute
|
182
|
+
- Sets disabled property to true
|
183
|
+
*/
|
184
|
+
disableFormElements: function(form) {
|
185
|
+
form.find(rails.disableSelector).each(function() {
|
186
|
+
var element = $(this), method = element.is('button') ? 'html' : 'val';
|
187
|
+
element.data('ujs:enable-with', element[method]());
|
188
|
+
element[method](element.data('disable-with'));
|
189
|
+
element.prop('disabled', true);
|
190
|
+
});
|
191
|
+
},
|
192
|
+
|
193
|
+
/* Re-enables disabled form elements:
|
194
|
+
- Replaces element text with cached value from 'ujs:enable-with' data store (created in `disableFormElements`)
|
195
|
+
- Sets disabled property to false
|
196
|
+
*/
|
197
|
+
enableFormElements: function(form) {
|
198
|
+
form.find(rails.enableSelector).each(function() {
|
199
|
+
var element = $(this), method = element.is('button') ? 'html' : 'val';
|
200
|
+
if (element.data('ujs:enable-with')) element[method](element.data('ujs:enable-with'));
|
201
|
+
element.prop('disabled', false);
|
202
|
+
});
|
203
|
+
},
|
204
|
+
|
205
|
+
/* For 'data-confirm' attribute:
|
206
|
+
- Fires `confirm` event
|
207
|
+
- Shows the confirmation dialog
|
208
|
+
- Fires the `confirm:complete` event
|
209
|
+
|
210
|
+
Returns `true` if no function stops the chain and user chose yes; `false` otherwise.
|
211
|
+
Attaching a handler to the element's `confirm` event that returns a `falsy` value cancels the confirmation dialog.
|
212
|
+
Attaching a handler to the element's `confirm:complete` event that returns a `falsy` value makes this function
|
213
|
+
return false. The `confirm:complete` event is fired whether or not the user answered true or false to the dialog.
|
214
|
+
*/
|
215
|
+
allowAction: function(element) {
|
216
|
+
var message = element.data('confirm'),
|
217
|
+
answer = false, callback;
|
218
|
+
if (!message) { return true; }
|
219
|
+
|
220
|
+
if (rails.fire(element, 'confirm')) {
|
221
|
+
answer = rails.confirm(message);
|
222
|
+
callback = rails.fire(element, 'confirm:complete', [answer]);
|
223
|
+
}
|
224
|
+
return answer && callback;
|
225
|
+
},
|
226
|
+
|
227
|
+
// Helper function which checks for blank inputs in a form that match the specified CSS selector
|
228
|
+
blankInputs: function(form, specifiedSelector, nonBlank) {
|
229
|
+
var inputs = $(), input,
|
230
|
+
selector = specifiedSelector || 'input,textarea';
|
231
|
+
form.find(selector).each(function() {
|
232
|
+
input = $(this);
|
233
|
+
// Collect non-blank inputs if nonBlank option is true, otherwise, collect blank inputs
|
234
|
+
if (nonBlank ? input.val() : !input.val()) {
|
235
|
+
inputs = inputs.add(input);
|
236
|
+
}
|
237
|
+
});
|
238
|
+
return inputs.length ? inputs : false;
|
239
|
+
},
|
240
|
+
|
241
|
+
// Helper function which checks for non-blank inputs in a form that match the specified CSS selector
|
242
|
+
nonBlankInputs: function(form, specifiedSelector) {
|
243
|
+
return rails.blankInputs(form, specifiedSelector, true); // true specifies nonBlank
|
244
|
+
},
|
245
|
+
|
246
|
+
// Helper function, needed to provide consistent behavior in IE
|
247
|
+
stopEverything: function(e) {
|
248
|
+
$(e.target).trigger('ujs:everythingStopped');
|
249
|
+
e.stopImmediatePropagation();
|
250
|
+
return false;
|
251
|
+
},
|
252
|
+
|
253
|
+
// find all the submit events directly bound to the form and
|
254
|
+
// manually invoke them. If anyone returns false then stop the loop
|
255
|
+
callFormSubmitBindings: function(form, event) {
|
256
|
+
var events = form.data('events'), continuePropagation = true;
|
257
|
+
if (events !== undefined && events['submit'] !== undefined) {
|
258
|
+
$.each(events['submit'], function(i, obj){
|
259
|
+
if (typeof obj.handler === 'function') return continuePropagation = obj.handler(event);
|
260
|
+
});
|
261
|
+
}
|
262
|
+
return continuePropagation;
|
263
|
+
},
|
264
|
+
|
265
|
+
// replace element's html with the 'data-disable-with' after storing original html
|
266
|
+
// and prevent clicking on it
|
267
|
+
disableElement: function(element) {
|
268
|
+
element.data('ujs:enable-with', element.html()); // store enabled state
|
269
|
+
element.html(element.data('disable-with')); // set to disabled state
|
270
|
+
element.bind('click.railsDisable', function(e) { // prevent further clicking
|
271
|
+
return rails.stopEverything(e)
|
272
|
+
});
|
273
|
+
},
|
274
|
+
|
275
|
+
// restore element to its original state which was disabled by 'disableElement' above
|
276
|
+
enableElement: function(element) {
|
277
|
+
if (element.data('ujs:enable-with') !== undefined) {
|
278
|
+
element.html(element.data('ujs:enable-with')); // set to old enabled state
|
279
|
+
// this should be element.removeData('ujs:enable-with')
|
280
|
+
// but, there is currently a bug in jquery which makes hyphenated data attributes not get removed
|
281
|
+
element.data('ujs:enable-with', false); // clean up cache
|
282
|
+
}
|
283
|
+
element.unbind('click.railsDisable'); // enable element
|
284
|
+
}
|
285
|
+
|
286
|
+
};
|
287
|
+
|
288
|
+
$.ajaxPrefilter(function(options, originalOptions, xhr){ if ( !options.crossDomain ) { rails.CSRFProtection(xhr); }});
|
289
|
+
|
290
|
+
$(rails.linkDisableSelector).live('ajax:complete', function() {
|
291
|
+
rails.enableElement($(this));
|
292
|
+
});
|
293
|
+
|
294
|
+
$(rails.linkClickSelector).live('click.rails', function(e) {
|
295
|
+
var link = $(this), method = link.data('method'), data = link.data('params');
|
296
|
+
if (!rails.allowAction(link)) return rails.stopEverything(e);
|
297
|
+
|
298
|
+
if (link.is(rails.linkDisableSelector)) rails.disableElement(link);
|
299
|
+
|
300
|
+
if (link.data('remote') !== undefined) {
|
301
|
+
if ( (e.metaKey || e.ctrlKey) && (!method || method === 'GET') && !data ) { return true; }
|
302
|
+
rails.handleRemote(link);
|
303
|
+
return false;
|
304
|
+
} else if (link.data('method')) {
|
305
|
+
rails.handleMethod(link);
|
306
|
+
return false;
|
307
|
+
}
|
308
|
+
});
|
309
|
+
|
310
|
+
$(rails.inputChangeSelector).live('change.rails', function(e) {
|
311
|
+
var link = $(this);
|
312
|
+
if (!rails.allowAction(link)) return rails.stopEverything(e);
|
313
|
+
|
314
|
+
rails.handleRemote(link);
|
315
|
+
return false;
|
316
|
+
});
|
317
|
+
|
318
|
+
$(rails.formSubmitSelector).live('submit.rails', function(e) {
|
319
|
+
var form = $(this),
|
320
|
+
remote = form.data('remote') !== undefined,
|
321
|
+
blankRequiredInputs = rails.blankInputs(form, rails.requiredInputSelector),
|
322
|
+
nonBlankFileInputs = rails.nonBlankInputs(form, rails.fileInputSelector);
|
323
|
+
|
324
|
+
if (!rails.allowAction(form)) return rails.stopEverything(e);
|
325
|
+
|
326
|
+
// skip other logic when required values are missing or file upload is present
|
327
|
+
if (blankRequiredInputs && form.attr("novalidate") == undefined && rails.fire(form, 'ajax:aborted:required', [blankRequiredInputs])) {
|
328
|
+
return rails.stopEverything(e);
|
329
|
+
}
|
330
|
+
|
331
|
+
if (remote) {
|
332
|
+
if (nonBlankFileInputs) {
|
333
|
+
return rails.fire(form, 'ajax:aborted:file', [nonBlankFileInputs]);
|
334
|
+
}
|
335
|
+
|
336
|
+
// If browser does not support submit bubbling, then this live-binding will be called before direct
|
337
|
+
// bindings. Therefore, we should directly call any direct bindings before remotely submitting form.
|
338
|
+
if (!$.support.submitBubbles && $().jquery < '1.7' && rails.callFormSubmitBindings(form, e) === false) return rails.stopEverything(e);
|
339
|
+
|
340
|
+
rails.handleRemote(form);
|
341
|
+
return false;
|
342
|
+
} else {
|
343
|
+
// slight timeout so that the submit button gets properly serialized
|
344
|
+
setTimeout(function(){ rails.disableFormElements(form); }, 13);
|
345
|
+
}
|
346
|
+
});
|
347
|
+
|
348
|
+
$(rails.formInputClickSelector).live('click.rails', function(event) {
|
349
|
+
var button = $(this);
|
350
|
+
|
351
|
+
if (!rails.allowAction(button)) return rails.stopEverything(event);
|
352
|
+
|
353
|
+
// register the pressed submit button
|
354
|
+
var name = button.attr('name'),
|
355
|
+
data = name ? {name:name, value:button.val()} : null;
|
356
|
+
|
357
|
+
button.closest('form').data('ujs:submit-button', data);
|
358
|
+
});
|
359
|
+
|
360
|
+
$(rails.formSubmitSelector).live('ajax:beforeSend.rails', function(event) {
|
361
|
+
if (this == event.target) rails.disableFormElements($(this));
|
362
|
+
});
|
363
|
+
|
364
|
+
$(rails.formSubmitSelector).live('ajax:complete.rails', function(event) {
|
365
|
+
if (this == event.target) rails.enableFormElements($(this));
|
366
|
+
});
|
367
|
+
|
368
|
+
})( jQuery );
|
@@ -0,0 +1,6 @@
|
|
1
|
+
/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */
|
2
|
+
/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */
|
3
|
+
window.matchMedia=window.matchMedia||(function(e,f){var c,a=e.documentElement,b=a.firstElementChild||a.firstChild,d=e.createElement("body"),g=e.createElement("div");g.id="mq-test-1";g.style.cssText="position:absolute;top:-100em";d.style.background="none";d.appendChild(g);return function(h){g.innerHTML='­<style media="'+h+'"> #mq-test-1 { width: 42px; }</style>';a.insertBefore(d,b);c=g.offsetWidth==42;a.removeChild(d);return{matches:c,media:h}}})(document);
|
4
|
+
|
5
|
+
/*! Respond.js v1.1.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */
|
6
|
+
(function(e){e.respond={};respond.update=function(){};respond.mediaQueriesSupported=e.matchMedia&&e.matchMedia("only all").matches;if(respond.mediaQueriesSupported){return}var w=e.document,s=w.documentElement,i=[],k=[],q=[],o={},h=30,f=w.getElementsByTagName("head")[0]||s,g=w.getElementsByTagName("base")[0],b=f.getElementsByTagName("link"),d=[],a=function(){var D=b,y=D.length,B=0,A,z,C,x;for(;B<y;B++){A=D[B],z=A.href,C=A.media,x=A.rel&&A.rel.toLowerCase()==="stylesheet";if(!!z&&x&&!o[z]){if(A.styleSheet&&A.styleSheet.rawCssText){m(A.styleSheet.rawCssText,z,C);o[z]=true}else{if((!/^([a-zA-Z:]*\/\/)/.test(z)&&!g)||z.replace(RegExp.$1,"").split("/")[0]===e.location.host){d.push({href:z,media:C})}}}}u()},u=function(){if(d.length){var x=d.shift();n(x.href,function(y){m(y,x.href,x.media);o[x.href]=true;u()})}},m=function(I,x,z){var G=I.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi),J=G&&G.length||0,x=x.substring(0,x.lastIndexOf("/")),y=function(K){return K.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+x+"$2$3")},A=!J&&z,D=0,C,E,F,B,H;if(x.length){x+="/"}if(A){J=1}for(;D<J;D++){C=0;if(A){E=z;k.push(y(I))}else{E=G[D].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1;k.push(RegExp.$2&&y(RegExp.$2))}B=E.split(",");H=B.length;for(;C<H;C++){F=B[C];i.push({media:F.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:k.length-1,hasquery:F.indexOf("(")>-1,minw:F.match(/\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:F.match(/\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}}j()},l,r,v=function(){var z,A=w.createElement("div"),x=w.body,y=false;A.style.cssText="position:absolute;font-size:1em;width:1em";if(!x){x=y=w.createElement("body");x.style.background="none"}x.appendChild(A);s.insertBefore(x,s.firstChild);z=A.offsetWidth;if(y){s.removeChild(x)}else{x.removeChild(A)}z=p=parseFloat(z);return z},p,j=function(I){var x="clientWidth",B=s[x],H=w.compatMode==="CSS1Compat"&&B||w.body[x]||B,D={},G=b[b.length-1],z=(new Date()).getTime();if(I&&l&&z-l<h){clearTimeout(r);r=setTimeout(j,h);return}else{l=z}for(var E in i){var K=i[E],C=K.minw,J=K.maxw,A=C===null,L=J===null,y="em";if(!!C){C=parseFloat(C)*(C.indexOf(y)>-1?(p||v()):1)}if(!!J){J=parseFloat(J)*(J.indexOf(y)>-1?(p||v()):1)}if(!K.hasquery||(!A||!L)&&(A||H>=C)&&(L||H<=J)){if(!D[K.media]){D[K.media]=[]}D[K.media].push(k[K.rules])}}for(var E in q){if(q[E]&&q[E].parentNode===f){f.removeChild(q[E])}}for(var E in D){var M=w.createElement("style"),F=D[E].join("\n");M.type="text/css";M.media=E;f.insertBefore(M,G.nextSibling);if(M.styleSheet){M.styleSheet.cssText=F}else{M.appendChild(w.createTextNode(F))}q.push(M)}},n=function(x,z){var y=c();if(!y){return}y.open("GET",x,true);y.onreadystatechange=function(){if(y.readyState!=4||y.status!=200&&y.status!=304){return}z(y.responseText)};if(y.readyState==4){return}y.send(null)},c=(function(){var x=false;try{x=new XMLHttpRequest()}catch(y){x=new ActiveXObject("Microsoft.XMLHTTP")}return function(){return x}})();a();respond.update=a;function t(){j(true)}if(e.addEventListener){e.addEventListener("resize",t,false)}else{if(e.attachEvent){e.attachEvent("onresize",t)}}})(this);
|
@@ -1,2 +1,83 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
description "Compass extension for HTML5 Boilerplate located at http://html5boilerplate.com"
|
2
|
+
|
3
|
+
stylesheet 'style.scss', :media => 'all'
|
4
|
+
stylesheet 'partials/_base.scss'
|
5
|
+
stylesheet 'partials/_header.scss'
|
6
|
+
stylesheet 'partials/_fonts.scss'
|
7
|
+
stylesheet 'partials/_footer.scss'
|
8
|
+
stylesheet 'partials/_modules.scss'
|
9
|
+
stylesheet 'partials/_overrides.scss'
|
10
|
+
stylesheet 'partials/_page.scss'
|
11
|
+
stylesheet 'partials/SCSS_template.scss'
|
12
|
+
|
13
|
+
stylesheet 'partials/modules/_mod-breadcrumb.scss'
|
14
|
+
stylesheet 'partials/modules/_mod-carousels.scss'
|
15
|
+
stylesheet 'partials/modules/_mod-default.scss'
|
16
|
+
stylesheet 'partials/modules/_mod-form.scss'
|
17
|
+
stylesheet 'partials/modules/_mod-login.scss'
|
18
|
+
stylesheet 'partials/modules/_mod-pagination.scss'
|
19
|
+
stylesheet 'partials/modules/_mod-subnav.scss'
|
20
|
+
stylesheet 'partials/modules/_mod-widget.scss'
|
21
|
+
|
22
|
+
|
23
|
+
if Compass.configuration.project_type == :rails
|
24
|
+
file 'application.html.haml', :to => 'app/views/layouts/application.html.haml'
|
25
|
+
file '_flashes.html.haml', :to => 'app/views/layouts/_flashes.html.haml'
|
26
|
+
file '_footer.html.haml', :to => 'app/views/layouts/_footer.html.haml'
|
27
|
+
file '_head.html.haml', :to => 'app/views/layouts/_head.html.haml'
|
28
|
+
file '_header.html.haml', :to => 'app/views/layouts/_header.html.haml'
|
29
|
+
file '_javascripts.html.haml', :to => 'app/views/layouts/_javascripts.html.haml'
|
30
|
+
file '_stylesheets.html.haml', :to => 'app/views/layouts/_stylesheets.html.haml'
|
31
|
+
file 'files/google.yml', :to => 'config/google.yml'
|
32
|
+
javascript 'javascripts/jquery-1.7.2.js', :to => 'jquery.js'
|
33
|
+
javascript 'javascripts/jquery-1.7.2.min.js', :to => 'jquery.min.js'
|
34
|
+
javascript 'javascripts/jquery-ui-1.8.22.min.js', :to => 'jquery-ui-1.8.22.min.js'
|
35
|
+
javascript 'javascripts/modernizr-2.5.3.min.js', :to => 'modernizr.min.js'
|
36
|
+
javascript 'javascripts/respond.min.js', :to => 'respond.min.js'
|
37
|
+
javascript 'javascripts/plugins.js', :to => 'plugins.js'
|
38
|
+
javascript 'javascripts/rails.js', :to => 'rails.js'
|
39
|
+
else
|
40
|
+
html 'index.html.haml'
|
41
|
+
file 'index.html.haml'
|
42
|
+
javascript 'javascripts/jquery-1.7.2.js', :to => 'jquery-1.7.2.js'
|
43
|
+
javascript 'javascripts/jquery-1.7.2.min.js', :to => 'jquery-1.7.2.min.js'
|
44
|
+
javascript 'javascripts/jquery-ui-1.8.22.min.js', :to => 'jquery-ui-1.8.22.min.js'
|
45
|
+
javascript 'javascripts/modernizr-2.5.3.min.js', :to => 'modernizr-2.5.3.min.js'
|
46
|
+
javascript 'javascripts/respond.min.js', :to => 'respond.min.js'
|
47
|
+
javascript 'javascripts/plugins.js', :to => 'plugins.js'
|
48
|
+
javascript 'javascripts/script.js', :to => 'script.js'
|
49
|
+
end
|
50
|
+
html 'files/404.html', :to => '404.html'
|
51
|
+
html 'files/htaccess', :to => '.htaccess'
|
52
|
+
html 'files/crossdomain.xml', :to => 'crossdomain.xml'
|
53
|
+
html 'files/robots.txt', :to => 'robots.txt'
|
54
|
+
html 'files/humans.txt', :to => 'humans.txt'
|
55
|
+
html 'files/apple-touch-icon.png', :to => 'apple-touch-icon.png'
|
56
|
+
html 'files/apple-touch-icon-57x57-precomposed.png', :to => 'apple-touch-icon-57x57-precomposed.png'
|
57
|
+
html 'files/apple-touch-icon-72x72-precomposed.png', :to => 'apple-touch-icon-72x72-precomposed.png'
|
58
|
+
html 'files/apple-touch-icon-114x114-precomposed.png', :to => 'apple-touch-icon-114x114-precomposed.png'
|
59
|
+
html 'files/apple-touch-icon-precomposed.png', :to => 'apple-touch-icon-precomposed.png'
|
60
|
+
html 'files/favicon.png', :to => 'favicon.png'
|
61
|
+
|
62
|
+
help %Q{
|
63
|
+
This is a Compass extension for HTML5 Boilerplate by Paul Irish
|
64
|
+
(See full docs at: http://github.com/sporkd/compass-html5-boilerplate)
|
65
|
+
Updated for Skyron ltd needs
|
66
|
+
|
67
|
+
Rails Installation
|
68
|
+
========================
|
69
|
+
$ gem install html5-boilerplate
|
70
|
+
$ cd my_rails_project
|
71
|
+
$ compass init rails -r html5-boilerplate -u html5-boilerplate --force
|
72
|
+
|
73
|
+
Stand Alone Installation
|
74
|
+
========================
|
75
|
+
$ gem install html5-boilerplate
|
76
|
+
$ compass create my_project -r html5-boilerplate -u html5-boilerplate --javascripts-dir js --css-dir css
|
77
|
+
|
78
|
+
}
|
79
|
+
|
80
|
+
welcome_message %Q{
|
81
|
+
You've installed HTML5 Boilerplate for skyron. Lucky you! ;)
|
82
|
+
|
83
|
+
}
|