mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
Merge pull request #769 from hennevogel/gems
Gems: Update MySQL2, switch assets to rails-assets.org
This commit is contained in:
commit
8f42f79423
12 changed files with 76 additions and 3505 deletions
41
Gemfile
41
Gemfile
|
|
@ -53,20 +53,44 @@ gem 'bootstrap-sass', '~> 3.3.4.1'
|
|||
gem 'autoprefixer-rails'
|
||||
gem 'formtastic-bootstrap'
|
||||
gem 'formtastic', '~> 2.3.0.rc3'
|
||||
gem 'momentjs-rails', '>= 2.8.1'
|
||||
gem 'bootstrap3-datetimepicker-rails', '~> 3.0.2'
|
||||
gem 'cocoon'
|
||||
|
||||
# frontend javascripts
|
||||
|
||||
# as the JavaScript library
|
||||
gem 'jquery-rails'
|
||||
gem 'cocoon'
|
||||
|
||||
source 'https://rails-assets.org' do
|
||||
# for placeholder images
|
||||
gem 'rails-assets-holderjs'
|
||||
# for formating dates
|
||||
gem 'rails-assets-date.format'
|
||||
# for or parsing, validating, manipulating, and formatting dates.
|
||||
gem 'rails-assets-momentjs'
|
||||
# for smooth scrolling
|
||||
gem 'rails-assets-jquery-smooth-scroll'
|
||||
# as color picker
|
||||
gem 'rails-assets-spectrum'
|
||||
# for color manipulation
|
||||
gem 'rails-assets-tinycolor'
|
||||
# for drawing triangle backgrounds
|
||||
gem 'rails-assets-trianglify'
|
||||
# for scroll way points
|
||||
gem 'rails-assets-waypoints'
|
||||
# for displaying maps
|
||||
gem 'rails-assets-leaflet'
|
||||
end
|
||||
|
||||
# as date picker
|
||||
gem 'bootstrap3-datetimepicker-rails', '~> 3.0.2'
|
||||
gem 'jquery-datatables-rails', '~> 2.2.1'
|
||||
# for charts
|
||||
gem 'd3_rails'
|
||||
gem 'chart-js-rails'
|
||||
|
||||
# for user avatars
|
||||
gem 'gravtastic'
|
||||
|
||||
# for maps
|
||||
gem 'leaflet-rails', '~> 0.7.4'
|
||||
|
||||
# for country selects
|
||||
gem 'country_select', github: 'stefanpenner/country_select'
|
||||
|
||||
|
|
@ -79,10 +103,6 @@ gem 'prawn_rails'
|
|||
# to render XLS spreadsheets
|
||||
gem 'axlsx_rails'
|
||||
|
||||
# for charts
|
||||
gem 'd3_rails'
|
||||
gem 'chart-js-rails'
|
||||
|
||||
# as error catcher
|
||||
gem 'hoptoad_notifier', '~> 2.3'
|
||||
|
||||
|
|
@ -125,6 +145,7 @@ gem 'acts_as_list'
|
|||
# for switch checkboxes
|
||||
gem 'bootstrap-switch-rails', '~> 3.0.0'
|
||||
|
||||
# for parsing OEmbed data
|
||||
gem 'ruby-oembed'
|
||||
|
||||
# Use guard and spring for testing in development
|
||||
|
|
|
|||
30
Gemfile.lock
30
Gemfile.lock
|
|
@ -7,6 +7,7 @@ GIT
|
|||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
remote: https://rails-assets.org/
|
||||
specs:
|
||||
actionmailer (4.2.5.1)
|
||||
actionpack (= 4.2.5.1)
|
||||
|
|
@ -208,7 +209,6 @@ GEM
|
|||
jwt (1.0.0)
|
||||
launchy (2.4.2)
|
||||
addressable (~> 2.3)
|
||||
leaflet-rails (0.7.4)
|
||||
letter_opener (1.2.0)
|
||||
launchy (~> 2.2)
|
||||
listen (2.7.2)
|
||||
|
|
@ -245,7 +245,7 @@ GEM
|
|||
multi_json (1.11.2)
|
||||
multi_xml (0.5.5)
|
||||
multipart-post (2.0.0)
|
||||
mysql2 (0.3.16)
|
||||
mysql2 (0.4.2)
|
||||
netrc (0.10.3)
|
||||
nio4r (1.1.0)
|
||||
nokogiri (1.6.7.2)
|
||||
|
|
@ -330,6 +330,18 @@ GEM
|
|||
bundler (>= 1.3.0, < 2.0)
|
||||
railties (= 4.2.5.1)
|
||||
sprockets-rails
|
||||
rails-assets-date.format (1.2.3)
|
||||
rails-assets-holderjs (2.9.1)
|
||||
rails-assets-jquery (2.2.0)
|
||||
rails-assets-jquery-smooth-scroll (1.7.2)
|
||||
rails-assets-jquery (>= 1.4.2)
|
||||
rails-assets-leaflet (0.7.7)
|
||||
rails-assets-momentjs (2.11.2)
|
||||
rails-assets-spectrum (1.8.0)
|
||||
rails-assets-jquery (>= 1.7.2)
|
||||
rails-assets-tinycolor (1.3.0)
|
||||
rails-assets-trianglify (0.4.0)
|
||||
rails-assets-waypoints (4.0.0)
|
||||
rails-deprecated_sanitizer (1.0.3)
|
||||
activesupport (>= 4.2.0.alpha)
|
||||
rails-dom-testing (1.0.7)
|
||||
|
|
@ -500,10 +512,8 @@ DEPENDENCIES
|
|||
hoptoad_notifier (~> 2.3)
|
||||
jquery-datatables-rails (~> 2.2.1)
|
||||
jquery-rails
|
||||
leaflet-rails (~> 0.7.4)
|
||||
letter_opener
|
||||
mina
|
||||
momentjs-rails (>= 2.8.1)
|
||||
money-rails
|
||||
mysql2
|
||||
omniauth
|
||||
|
|
@ -519,6 +529,15 @@ DEPENDENCIES
|
|||
prawn_rails
|
||||
quiet_assets
|
||||
rails (~> 4.2)
|
||||
rails-assets-date.format!
|
||||
rails-assets-holderjs!
|
||||
rails-assets-jquery-smooth-scroll!
|
||||
rails-assets-leaflet!
|
||||
rails-assets-momentjs!
|
||||
rails-assets-spectrum!
|
||||
rails-assets-tinycolor!
|
||||
rails-assets-trianglify!
|
||||
rails-assets-waypoints!
|
||||
rails-observers
|
||||
rdoc-generator-fivefish
|
||||
redcarpet
|
||||
|
|
@ -538,3 +557,6 @@ DEPENDENCIES
|
|||
uglifier (>= 1.3.0)
|
||||
web-console (~> 2.0)
|
||||
whenever
|
||||
|
||||
BUNDLED WITH
|
||||
1.11.2
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
//
|
||||
//= require jquery
|
||||
//= require jquery_ujs
|
||||
//= require waypoints
|
||||
//= require waypoints/jquery.waypoints
|
||||
//= require dataTables/jquery.dataTables
|
||||
//= require dataTables/bootstrap/3/jquery.dataTables.bootstrap
|
||||
//= require cocoon
|
||||
|
|
@ -20,15 +20,15 @@
|
|||
//= require Chart
|
||||
//= require d3
|
||||
//= require osem
|
||||
//= require dashboard
|
||||
//= require osem-dashboard
|
||||
//= require ahoy
|
||||
//= require smoothscroll
|
||||
//= require trianglify.min
|
||||
//= require jquery-smooth-scroll
|
||||
//= require trianglify
|
||||
//= require tinycolor
|
||||
//= require bootstrap-markdown
|
||||
//= require to-markdown
|
||||
//= require markdown
|
||||
//= require moment
|
||||
//= require momentjs
|
||||
//= require leaflet
|
||||
//= require bootstrap-datetimepicker
|
||||
//= require osem-datepickers
|
||||
|
|
@ -43,4 +43,8 @@ $(document).ready(function() {
|
|||
$('a[disabled=disabled]').click(function(event){
|
||||
return false;
|
||||
});
|
||||
|
||||
$('body').smoothScroll({
|
||||
delegateSelector: 'a.smoothscroll'
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,126 +0,0 @@
|
|||
/*
|
||||
* Date Format 1.2.3
|
||||
* (c) 2007-2009 Steven Levithan <stevenlevithan.com>
|
||||
* MIT license
|
||||
*
|
||||
* Includes enhancements by Scott Trenda <scott.trenda.net>
|
||||
* and Kris Kowal <cixar.com/~kris.kowal/>
|
||||
*
|
||||
* Accepts a date, a mask, or a date and a mask.
|
||||
* Returns a formatted version of the given date.
|
||||
* The date defaults to the current date/time.
|
||||
* The mask defaults to dateFormat.masks.default.
|
||||
*/
|
||||
|
||||
var dateFormat = function () {
|
||||
var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
|
||||
timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
|
||||
timezoneClip = /[^-+\dA-Z]/g,
|
||||
pad = function (val, len) {
|
||||
val = String(val);
|
||||
len = len || 2;
|
||||
while (val.length < len) val = "0" + val;
|
||||
return val;
|
||||
};
|
||||
|
||||
// Regexes and supporting functions are cached through closure
|
||||
return function (date, mask, utc) {
|
||||
var dF = dateFormat;
|
||||
|
||||
// You can't provide utc if you skip other args (use the "UTC:" mask prefix)
|
||||
if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
|
||||
mask = date;
|
||||
date = undefined;
|
||||
}
|
||||
|
||||
// Passing date through Date applies Date.parse, if necessary
|
||||
date = date ? new Date(date) : new Date;
|
||||
if (isNaN(date)) throw SyntaxError("invalid date");
|
||||
|
||||
mask = String(dF.masks[mask] || mask || dF.masks["default"]);
|
||||
|
||||
// Allow setting the utc argument via the mask
|
||||
if (mask.slice(0, 4) == "UTC:") {
|
||||
mask = mask.slice(4);
|
||||
utc = true;
|
||||
}
|
||||
|
||||
var _ = utc ? "getUTC" : "get",
|
||||
d = date[_ + "Date"](),
|
||||
D = date[_ + "Day"](),
|
||||
m = date[_ + "Month"](),
|
||||
y = date[_ + "FullYear"](),
|
||||
H = date[_ + "Hours"](),
|
||||
M = date[_ + "Minutes"](),
|
||||
s = date[_ + "Seconds"](),
|
||||
L = date[_ + "Milliseconds"](),
|
||||
o = utc ? 0 : date.getTimezoneOffset(),
|
||||
flags = {
|
||||
d: d,
|
||||
dd: pad(d),
|
||||
ddd: dF.i18n.dayNames[D],
|
||||
dddd: dF.i18n.dayNames[D + 7],
|
||||
m: m + 1,
|
||||
mm: pad(m + 1),
|
||||
mmm: dF.i18n.monthNames[m],
|
||||
mmmm: dF.i18n.monthNames[m + 12],
|
||||
yy: String(y).slice(2),
|
||||
yyyy: y,
|
||||
h: H % 12 || 12,
|
||||
hh: pad(H % 12 || 12),
|
||||
H: H,
|
||||
HH: pad(H),
|
||||
M: M,
|
||||
MM: pad(M),
|
||||
s: s,
|
||||
ss: pad(s),
|
||||
l: pad(L, 3),
|
||||
L: pad(L > 99 ? Math.round(L / 10) : L),
|
||||
t: H < 12 ? "a" : "p",
|
||||
tt: H < 12 ? "am" : "pm",
|
||||
T: H < 12 ? "A" : "P",
|
||||
TT: H < 12 ? "AM" : "PM",
|
||||
Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
|
||||
o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
|
||||
S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
|
||||
};
|
||||
|
||||
return mask.replace(token, function ($0) {
|
||||
return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
|
||||
});
|
||||
};
|
||||
}();
|
||||
|
||||
// Some common format strings
|
||||
dateFormat.masks = {
|
||||
"default": "ddd mmm dd yyyy HH:MM:ss",
|
||||
shortDate: "m/d/yy",
|
||||
mediumDate: "mmm d, yyyy",
|
||||
longDate: "mmmm d, yyyy",
|
||||
fullDate: "dddd, mmmm d, yyyy",
|
||||
shortTime: "h:MM TT",
|
||||
mediumTime: "h:MM:ss TT",
|
||||
longTime: "h:MM:ss TT Z",
|
||||
isoDate: "yyyy-mm-dd",
|
||||
isoTime: "HH:MM:ss",
|
||||
isoDateTime: "yyyy-mm-dd'T'HH:MM:ss",
|
||||
isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
|
||||
};
|
||||
|
||||
// Internationalization strings
|
||||
dateFormat.i18n = {
|
||||
dayNames: [
|
||||
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
|
||||
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
|
||||
],
|
||||
monthNames: [
|
||||
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
|
||||
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
|
||||
]
|
||||
};
|
||||
|
||||
// For convenience...
|
||||
Date.prototype.format = function (mask, utc) {
|
||||
return dateFormat(this, mask, utc);
|
||||
};
|
||||
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
/**
|
||||
* SmoothScroll
|
||||
* This helper script created by DWUser.com. Copyright 2013 DWUser.com.
|
||||
* Dual-licensed under the GPL and MIT licenses.
|
||||
* All individual scripts remain property of their copyrighters.
|
||||
* Date: 10-Sep-2013
|
||||
* Version: 1.0.1
|
||||
*/
|
||||
if (!window['jQuery']) alert('The jQuery library must be included before the smoothscroll.js file. The plugin will not work propery.');
|
||||
|
||||
/**
|
||||
* jQuery.ScrollTo - Easy element scrolling using jQuery.
|
||||
* Copyright (c) 2007-2013 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
|
||||
* Dual licensed under MIT and GPL.
|
||||
* @author Ariel Flesler
|
||||
* @version 1.4.3.1
|
||||
*/
|
||||
;(function($){var h=$.scrollTo=function(a,b,c){$(window).scrollTo(a,b,c)};h.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1,limit:true};h.window=function(a){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var a=this,isWin=!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return a;var b=(a.contentWindow||a).document||a.ownerDocument||a;return/webkit/i.test(navigator.userAgent)||b.compatMode=='BackCompat'?b.body:b.documentElement})};$.fn.scrollTo=function(e,f,g){if(typeof f=='object'){g=f;f=0}if(typeof g=='function')g={onAfter:g};if(e=='max')e=9e9;g=$.extend({},h.defaults,g);f=f||g.duration;g.queue=g.queue&&g.axis.length>1;if(g.queue)f/=2;g.offset=both(g.offset);g.over=both(g.over);return this._scrollable().each(function(){if(e==null)return;var d=this,$elem=$(d),targ=e,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);if(!targ.length)return;case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}$.each(g.axis.split(''),function(i,a){var b=a=='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,old=d[key],max=h.max(d,a);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(g.margin){attr[key]-=parseInt(targ.css('margin'+b))||0;attr[key]-=parseInt(targ.css('border'+b+'Width'))||0}attr[key]+=g.offset[pos]||0;if(g.over[pos])attr[key]+=targ[a=='x'?'width':'height']()*g.over[pos]}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)=='%'?parseFloat(c)/100*max:c}if(g.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&g.queue){if(old!=attr[key])animate(g.onAfterFirst);delete attr[key]}});animate(g.onAfter);function animate(a){$elem.animate(attr,f,g.easing,a&&function(){a.call(this,e,g)})}}).end()};h.max=function(a,b){var c=b=='x'?'Width':'Height',scroll='scroll'+c;if(!$(a).is('html,body'))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,html=a.ownerDocument.documentElement,body=a.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
|
||||
|
||||
/**
|
||||
* jQuery.LocalScroll
|
||||
* Copyright (c) 2007-2010 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
|
||||
* Dual licensed under MIT and GPL.
|
||||
* Date: 05/31/2010
|
||||
* @author Ariel Flesler
|
||||
* @version 1.2.8b
|
||||
**/
|
||||
;(function(b){function g(a,e,d){var h=e.hash.slice(1),f=document.getElementById(h)||document.getElementsByName(h)[0];if(f){a&&a.preventDefault();var c=b(d.target);if(!(d.lock&&c.is(":animated")||d.onBefore&&!1===d.onBefore(a,f,c))){d.stop&&c._scrollable().stop(!0);if(d.hash){var a=f.id==h?"id":"name",g=b("<a> </a>").attr(a,h).css({position:"absolute",top:b(window).scrollTop(),left:b(window).scrollLeft()});f[a]="";b("body").prepend(g);location=e.hash;g.remove();f[a]=h}c.scrollTo(f,d).trigger("notify.serialScroll",
|
||||
[f])}}}var i=location.href.replace(/#.*/,""),c=b.localScroll=function(a){b("body").localScroll(a)};c.defaults={duration:1E3,axis:"y",event:"click",stop:!0,target:window,reset:!0};c.hash=function(a){if(location.hash){a=b.extend({},c.defaults,a);a.hash=!1;if(a.reset){var e=a.duration;delete a.duration;b(a.target).scrollTo(0,a);a.duration=e}g(0,location,a)}};b.fn.localScroll=function(a){function e(){return!!this.href&&!!this.hash&&this.href.replace(this.hash,"")==i&&(!a.filter||b(this).is(a.filter))}
|
||||
a=b.extend({},c.defaults,a);return a.lazy?this.bind(a.event,function(d){var c=b([d.target,d.target.parentNode]).filter(e)[0];c&&g(d,c,a)}):this.find("a,area").filter(e).bind(a.event,function(b){g(b,this,a)}).end().end()}})(jQuery);
|
||||
|
||||
// Initialize all .smoothScroll links
|
||||
jQuery(function($){ $.localScroll({filter:'.smoothScroll'}); });
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
1
app/assets/javascripts/trianglify.min.js
vendored
1
app/assets/javascripts/trianglify.min.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -1,517 +0,0 @@
|
|||
// Generated by CoffeeScript 1.6.2
|
||||
/*!
|
||||
jQuery Waypoints - v2.0.5
|
||||
Copyright (c) 2011-2014 Caleb Troughton
|
||||
Licensed under the MIT license.
|
||||
https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt
|
||||
*/
|
||||
|
||||
|
||||
(function() {
|
||||
var __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
|
||||
__slice = [].slice;
|
||||
|
||||
(function(root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
return define('waypoints', ['jquery'], function($) {
|
||||
return factory($, root);
|
||||
});
|
||||
} else {
|
||||
return factory(root.jQuery, root);
|
||||
}
|
||||
})(window, function($, window) {
|
||||
var $w, Context, Waypoint, allWaypoints, contextCounter, contextKey, contexts, isTouch, jQMethods, methods, resizeEvent, scrollEvent, waypointCounter, waypointKey, wp, wps;
|
||||
|
||||
$w = $(window);
|
||||
isTouch = __indexOf.call(window, 'ontouchstart') >= 0;
|
||||
allWaypoints = {
|
||||
horizontal: {},
|
||||
vertical: {}
|
||||
};
|
||||
contextCounter = 1;
|
||||
contexts = {};
|
||||
contextKey = 'waypoints-context-id';
|
||||
resizeEvent = 'resize.waypoints';
|
||||
scrollEvent = 'scroll.waypoints';
|
||||
waypointCounter = 1;
|
||||
waypointKey = 'waypoints-waypoint-ids';
|
||||
wp = 'waypoint';
|
||||
wps = 'waypoints';
|
||||
Context = (function() {
|
||||
function Context($element) {
|
||||
var _this = this;
|
||||
|
||||
this.$element = $element;
|
||||
this.element = $element[0];
|
||||
this.didResize = false;
|
||||
this.didScroll = false;
|
||||
this.id = 'context' + contextCounter++;
|
||||
this.oldScroll = {
|
||||
x: $element.scrollLeft(),
|
||||
y: $element.scrollTop()
|
||||
};
|
||||
this.waypoints = {
|
||||
horizontal: {},
|
||||
vertical: {}
|
||||
};
|
||||
this.element[contextKey] = this.id;
|
||||
contexts[this.id] = this;
|
||||
$element.bind(scrollEvent, function() {
|
||||
var scrollHandler;
|
||||
|
||||
if (!(_this.didScroll || isTouch)) {
|
||||
_this.didScroll = true;
|
||||
scrollHandler = function() {
|
||||
_this.doScroll();
|
||||
return _this.didScroll = false;
|
||||
};
|
||||
return window.setTimeout(scrollHandler, $[wps].settings.scrollThrottle);
|
||||
}
|
||||
});
|
||||
$element.bind(resizeEvent, function() {
|
||||
var resizeHandler;
|
||||
|
||||
if (!_this.didResize) {
|
||||
_this.didResize = true;
|
||||
resizeHandler = function() {
|
||||
$[wps]('refresh');
|
||||
return _this.didResize = false;
|
||||
};
|
||||
return window.setTimeout(resizeHandler, $[wps].settings.resizeThrottle);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Context.prototype.doScroll = function() {
|
||||
var axes,
|
||||
_this = this;
|
||||
|
||||
axes = {
|
||||
horizontal: {
|
||||
newScroll: this.$element.scrollLeft(),
|
||||
oldScroll: this.oldScroll.x,
|
||||
forward: 'right',
|
||||
backward: 'left'
|
||||
},
|
||||
vertical: {
|
||||
newScroll: this.$element.scrollTop(),
|
||||
oldScroll: this.oldScroll.y,
|
||||
forward: 'down',
|
||||
backward: 'up'
|
||||
}
|
||||
};
|
||||
if (isTouch && (!axes.vertical.oldScroll || !axes.vertical.newScroll)) {
|
||||
$[wps]('refresh');
|
||||
}
|
||||
$.each(axes, function(aKey, axis) {
|
||||
var direction, isForward, triggered;
|
||||
|
||||
triggered = [];
|
||||
isForward = axis.newScroll > axis.oldScroll;
|
||||
direction = isForward ? axis.forward : axis.backward;
|
||||
$.each(_this.waypoints[aKey], function(wKey, waypoint) {
|
||||
var _ref, _ref1;
|
||||
|
||||
if ((axis.oldScroll < (_ref = waypoint.offset) && _ref <= axis.newScroll)) {
|
||||
return triggered.push(waypoint);
|
||||
} else if ((axis.newScroll < (_ref1 = waypoint.offset) && _ref1 <= axis.oldScroll)) {
|
||||
return triggered.push(waypoint);
|
||||
}
|
||||
});
|
||||
triggered.sort(function(a, b) {
|
||||
return a.offset - b.offset;
|
||||
});
|
||||
if (!isForward) {
|
||||
triggered.reverse();
|
||||
}
|
||||
return $.each(triggered, function(i, waypoint) {
|
||||
if (waypoint.options.continuous || i === triggered.length - 1) {
|
||||
return waypoint.trigger([direction]);
|
||||
}
|
||||
});
|
||||
});
|
||||
return this.oldScroll = {
|
||||
x: axes.horizontal.newScroll,
|
||||
y: axes.vertical.newScroll
|
||||
};
|
||||
};
|
||||
|
||||
Context.prototype.refresh = function() {
|
||||
var axes, cOffset, isWin,
|
||||
_this = this;
|
||||
|
||||
isWin = $.isWindow(this.element);
|
||||
cOffset = this.$element.offset();
|
||||
this.doScroll();
|
||||
axes = {
|
||||
horizontal: {
|
||||
contextOffset: isWin ? 0 : cOffset.left,
|
||||
contextScroll: isWin ? 0 : this.oldScroll.x,
|
||||
contextDimension: this.$element.width(),
|
||||
oldScroll: this.oldScroll.x,
|
||||
forward: 'right',
|
||||
backward: 'left',
|
||||
offsetProp: 'left'
|
||||
},
|
||||
vertical: {
|
||||
contextOffset: isWin ? 0 : cOffset.top,
|
||||
contextScroll: isWin ? 0 : this.oldScroll.y,
|
||||
contextDimension: isWin ? $[wps]('viewportHeight') : this.$element.height(),
|
||||
oldScroll: this.oldScroll.y,
|
||||
forward: 'down',
|
||||
backward: 'up',
|
||||
offsetProp: 'top'
|
||||
}
|
||||
};
|
||||
return $.each(axes, function(aKey, axis) {
|
||||
return $.each(_this.waypoints[aKey], function(i, waypoint) {
|
||||
var adjustment, elementOffset, oldOffset, _ref, _ref1;
|
||||
|
||||
adjustment = waypoint.options.offset;
|
||||
oldOffset = waypoint.offset;
|
||||
elementOffset = $.isWindow(waypoint.element) ? 0 : waypoint.$element.offset()[axis.offsetProp];
|
||||
if ($.isFunction(adjustment)) {
|
||||
adjustment = adjustment.apply(waypoint.element);
|
||||
} else if (typeof adjustment === 'string') {
|
||||
adjustment = parseFloat(adjustment);
|
||||
if (waypoint.options.offset.indexOf('%') > -1) {
|
||||
adjustment = Math.ceil(axis.contextDimension * adjustment / 100);
|
||||
}
|
||||
}
|
||||
waypoint.offset = elementOffset - axis.contextOffset + axis.contextScroll - adjustment;
|
||||
if ((waypoint.options.onlyOnScroll && (oldOffset != null)) || !waypoint.enabled) {
|
||||
return;
|
||||
}
|
||||
if (oldOffset !== null && (oldOffset < (_ref = axis.oldScroll) && _ref <= waypoint.offset)) {
|
||||
return waypoint.trigger([axis.backward]);
|
||||
} else if (oldOffset !== null && (oldOffset > (_ref1 = axis.oldScroll) && _ref1 >= waypoint.offset)) {
|
||||
return waypoint.trigger([axis.forward]);
|
||||
} else if (oldOffset === null && axis.oldScroll >= waypoint.offset) {
|
||||
return waypoint.trigger([axis.forward]);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
Context.prototype.checkEmpty = function() {
|
||||
if ($.isEmptyObject(this.waypoints.horizontal) && $.isEmptyObject(this.waypoints.vertical)) {
|
||||
this.$element.unbind([resizeEvent, scrollEvent].join(' '));
|
||||
return delete contexts[this.id];
|
||||
}
|
||||
};
|
||||
|
||||
return Context;
|
||||
|
||||
})();
|
||||
Waypoint = (function() {
|
||||
function Waypoint($element, context, options) {
|
||||
var idList, _ref;
|
||||
|
||||
if (options.offset === 'bottom-in-view') {
|
||||
options.offset = function() {
|
||||
var contextHeight;
|
||||
|
||||
contextHeight = $[wps]('viewportHeight');
|
||||
if (!$.isWindow(context.element)) {
|
||||
contextHeight = context.$element.height();
|
||||
}
|
||||
return contextHeight - $(this).outerHeight();
|
||||
};
|
||||
}
|
||||
this.$element = $element;
|
||||
this.element = $element[0];
|
||||
this.axis = options.horizontal ? 'horizontal' : 'vertical';
|
||||
this.callback = options.handler;
|
||||
this.context = context;
|
||||
this.enabled = options.enabled;
|
||||
this.id = 'waypoints' + waypointCounter++;
|
||||
this.offset = null;
|
||||
this.options = options;
|
||||
context.waypoints[this.axis][this.id] = this;
|
||||
allWaypoints[this.axis][this.id] = this;
|
||||
idList = (_ref = this.element[waypointKey]) != null ? _ref : [];
|
||||
idList.push(this.id);
|
||||
this.element[waypointKey] = idList;
|
||||
}
|
||||
|
||||
Waypoint.prototype.trigger = function(args) {
|
||||
if (!this.enabled) {
|
||||
return;
|
||||
}
|
||||
if (this.callback != null) {
|
||||
this.callback.apply(this.element, args);
|
||||
}
|
||||
if (this.options.triggerOnce) {
|
||||
return this.destroy();
|
||||
}
|
||||
};
|
||||
|
||||
Waypoint.prototype.disable = function() {
|
||||
return this.enabled = false;
|
||||
};
|
||||
|
||||
Waypoint.prototype.enable = function() {
|
||||
this.context.refresh();
|
||||
return this.enabled = true;
|
||||
};
|
||||
|
||||
Waypoint.prototype.destroy = function() {
|
||||
delete allWaypoints[this.axis][this.id];
|
||||
delete this.context.waypoints[this.axis][this.id];
|
||||
return this.context.checkEmpty();
|
||||
};
|
||||
|
||||
Waypoint.getWaypointsByElement = function(element) {
|
||||
var all, ids;
|
||||
|
||||
ids = element[waypointKey];
|
||||
if (!ids) {
|
||||
return [];
|
||||
}
|
||||
all = $.extend({}, allWaypoints.horizontal, allWaypoints.vertical);
|
||||
return $.map(ids, function(id) {
|
||||
return all[id];
|
||||
});
|
||||
};
|
||||
|
||||
return Waypoint;
|
||||
|
||||
})();
|
||||
methods = {
|
||||
init: function(f, options) {
|
||||
var _ref;
|
||||
|
||||
options = $.extend({}, $.fn[wp].defaults, options);
|
||||
if ((_ref = options.handler) == null) {
|
||||
options.handler = f;
|
||||
}
|
||||
this.each(function() {
|
||||
var $this, context, contextElement, _ref1;
|
||||
|
||||
$this = $(this);
|
||||
contextElement = (_ref1 = options.context) != null ? _ref1 : $.fn[wp].defaults.context;
|
||||
if (!$.isWindow(contextElement)) {
|
||||
contextElement = $this.closest(contextElement);
|
||||
}
|
||||
contextElement = $(contextElement);
|
||||
context = contexts[contextElement[0][contextKey]];
|
||||
if (!context) {
|
||||
context = new Context(contextElement);
|
||||
}
|
||||
return new Waypoint($this, context, options);
|
||||
});
|
||||
$[wps]('refresh');
|
||||
return this;
|
||||
},
|
||||
disable: function() {
|
||||
return methods._invoke.call(this, 'disable');
|
||||
},
|
||||
enable: function() {
|
||||
return methods._invoke.call(this, 'enable');
|
||||
},
|
||||
destroy: function() {
|
||||
return methods._invoke.call(this, 'destroy');
|
||||
},
|
||||
prev: function(axis, selector) {
|
||||
return methods._traverse.call(this, axis, selector, function(stack, index, waypoints) {
|
||||
if (index > 0) {
|
||||
return stack.push(waypoints[index - 1]);
|
||||
}
|
||||
});
|
||||
},
|
||||
next: function(axis, selector) {
|
||||
return methods._traverse.call(this, axis, selector, function(stack, index, waypoints) {
|
||||
if (index < waypoints.length - 1) {
|
||||
return stack.push(waypoints[index + 1]);
|
||||
}
|
||||
});
|
||||
},
|
||||
_traverse: function(axis, selector, push) {
|
||||
var stack, waypoints;
|
||||
|
||||
if (axis == null) {
|
||||
axis = 'vertical';
|
||||
}
|
||||
if (selector == null) {
|
||||
selector = window;
|
||||
}
|
||||
waypoints = jQMethods.aggregate(selector);
|
||||
stack = [];
|
||||
this.each(function() {
|
||||
var index;
|
||||
|
||||
index = $.inArray(this, waypoints[axis]);
|
||||
return push(stack, index, waypoints[axis]);
|
||||
});
|
||||
return this.pushStack(stack);
|
||||
},
|
||||
_invoke: function(method) {
|
||||
this.each(function() {
|
||||
var waypoints;
|
||||
|
||||
waypoints = Waypoint.getWaypointsByElement(this);
|
||||
return $.each(waypoints, function(i, waypoint) {
|
||||
waypoint[method]();
|
||||
return true;
|
||||
});
|
||||
});
|
||||
return this;
|
||||
}
|
||||
};
|
||||
$.fn[wp] = function() {
|
||||
var args, method;
|
||||
|
||||
method = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
|
||||
if (methods[method]) {
|
||||
return methods[method].apply(this, args);
|
||||
} else if ($.isFunction(method)) {
|
||||
return methods.init.apply(this, arguments);
|
||||
} else if ($.isPlainObject(method)) {
|
||||
return methods.init.apply(this, [null, method]);
|
||||
} else if (!method) {
|
||||
return $.error("jQuery Waypoints needs a callback function or handler option.");
|
||||
} else {
|
||||
return $.error("The " + method + " method does not exist in jQuery Waypoints.");
|
||||
}
|
||||
};
|
||||
$.fn[wp].defaults = {
|
||||
context: window,
|
||||
continuous: true,
|
||||
enabled: true,
|
||||
horizontal: false,
|
||||
offset: 0,
|
||||
triggerOnce: false
|
||||
};
|
||||
jQMethods = {
|
||||
refresh: function() {
|
||||
return $.each(contexts, function(i, context) {
|
||||
return context.refresh();
|
||||
});
|
||||
},
|
||||
viewportHeight: function() {
|
||||
var _ref;
|
||||
|
||||
return (_ref = window.innerHeight) != null ? _ref : $w.height();
|
||||
},
|
||||
aggregate: function(contextSelector) {
|
||||
var collection, waypoints, _ref;
|
||||
|
||||
collection = allWaypoints;
|
||||
if (contextSelector) {
|
||||
collection = (_ref = contexts[$(contextSelector)[0][contextKey]]) != null ? _ref.waypoints : void 0;
|
||||
}
|
||||
if (!collection) {
|
||||
return [];
|
||||
}
|
||||
waypoints = {
|
||||
horizontal: [],
|
||||
vertical: []
|
||||
};
|
||||
$.each(waypoints, function(axis, arr) {
|
||||
$.each(collection[axis], function(key, waypoint) {
|
||||
return arr.push(waypoint);
|
||||
});
|
||||
arr.sort(function(a, b) {
|
||||
return a.offset - b.offset;
|
||||
});
|
||||
waypoints[axis] = $.map(arr, function(waypoint) {
|
||||
return waypoint.element;
|
||||
});
|
||||
return waypoints[axis] = $.unique(waypoints[axis]);
|
||||
});
|
||||
return waypoints;
|
||||
},
|
||||
above: function(contextSelector) {
|
||||
if (contextSelector == null) {
|
||||
contextSelector = window;
|
||||
}
|
||||
return jQMethods._filter(contextSelector, 'vertical', function(context, waypoint) {
|
||||
return waypoint.offset <= context.oldScroll.y;
|
||||
});
|
||||
},
|
||||
below: function(contextSelector) {
|
||||
if (contextSelector == null) {
|
||||
contextSelector = window;
|
||||
}
|
||||
return jQMethods._filter(contextSelector, 'vertical', function(context, waypoint) {
|
||||
return waypoint.offset > context.oldScroll.y;
|
||||
});
|
||||
},
|
||||
left: function(contextSelector) {
|
||||
if (contextSelector == null) {
|
||||
contextSelector = window;
|
||||
}
|
||||
return jQMethods._filter(contextSelector, 'horizontal', function(context, waypoint) {
|
||||
return waypoint.offset <= context.oldScroll.x;
|
||||
});
|
||||
},
|
||||
right: function(contextSelector) {
|
||||
if (contextSelector == null) {
|
||||
contextSelector = window;
|
||||
}
|
||||
return jQMethods._filter(contextSelector, 'horizontal', function(context, waypoint) {
|
||||
return waypoint.offset > context.oldScroll.x;
|
||||
});
|
||||
},
|
||||
enable: function() {
|
||||
return jQMethods._invoke('enable');
|
||||
},
|
||||
disable: function() {
|
||||
return jQMethods._invoke('disable');
|
||||
},
|
||||
destroy: function() {
|
||||
return jQMethods._invoke('destroy');
|
||||
},
|
||||
extendFn: function(methodName, f) {
|
||||
return methods[methodName] = f;
|
||||
},
|
||||
_invoke: function(method) {
|
||||
var waypoints;
|
||||
|
||||
waypoints = $.extend({}, allWaypoints.vertical, allWaypoints.horizontal);
|
||||
return $.each(waypoints, function(key, waypoint) {
|
||||
waypoint[method]();
|
||||
return true;
|
||||
});
|
||||
},
|
||||
_filter: function(selector, axis, test) {
|
||||
var context, waypoints;
|
||||
|
||||
context = contexts[$(selector)[0][contextKey]];
|
||||
if (!context) {
|
||||
return [];
|
||||
}
|
||||
waypoints = [];
|
||||
$.each(context.waypoints[axis], function(i, waypoint) {
|
||||
if (test(context, waypoint)) {
|
||||
return waypoints.push(waypoint);
|
||||
}
|
||||
});
|
||||
waypoints.sort(function(a, b) {
|
||||
return a.offset - b.offset;
|
||||
});
|
||||
return $.map(waypoints, function(waypoint) {
|
||||
return waypoint.element;
|
||||
});
|
||||
}
|
||||
};
|
||||
$[wps] = function() {
|
||||
var args, method;
|
||||
|
||||
method = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
|
||||
if (jQMethods[method]) {
|
||||
return jQMethods[method].apply(null, args);
|
||||
} else {
|
||||
return jQMethods.aggregate.call(null, method);
|
||||
}
|
||||
};
|
||||
$[wps].settings = {
|
||||
resizeThrottle: 100,
|
||||
scrollThrottle: 30
|
||||
};
|
||||
return $w.on('load.waypoints', function() {
|
||||
return $[wps]('refresh');
|
||||
});
|
||||
});
|
||||
|
||||
}).call(this);
|
||||
|
|
@ -6,8 +6,9 @@
|
|||
- popup = "<h3>#{@conference.venue.name}</h3><br>#{@conference.venue.street}<br>#{@conference.venue.city}<br>#{@conference.venue.country_name}"
|
||||
- content_for(:script_body) do
|
||||
:javascript
|
||||
L.Icon.Default.imagePath = '/assets/leaflet/';
|
||||
// create a map in the "map" div, set the view to a given place and zoom
|
||||
var map = L.map('map', {scrollWheelZoom: false}).setView([#{@conference.venue.latitude}, #{@conference.venue.longitude}], 11);
|
||||
var map = L.map('map', { scrollWheelZoom: false }).setView([#{@conference.venue.latitude}, #{@conference.venue.longitude}], 11);
|
||||
// add an OpenStreetMap tile layer
|
||||
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
|
||||
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
|
||||
|
|
|
|||
|
|
@ -69,8 +69,13 @@
|
|||
var triangle_colors = triangle_tcs.map(function(t) { return t.toHexString(); });
|
||||
$(function () {
|
||||
$(document).ready(function() {
|
||||
var t = new Trianglify({cellsize: 100, x_gradient: triangle_colors });
|
||||
var pattern = t.generate(document.body.clientWidth, ($( "#banner" ).height() + 200 ));
|
||||
$('#banner').css('background-image', pattern.dataUrl);
|
||||
var triangle_width = document.body.clientWidth;
|
||||
var triangle_height = ($( "#banner" ).height() + 200 );
|
||||
var pattern = Trianglify({ width: triangle_width,
|
||||
height: triangle_height,
|
||||
cell_size: 100,
|
||||
x_colors: triangle_colors
|
||||
});
|
||||
$('#banner').css('background-image', 'url("' + pattern.png() + '")');
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue