pullentity-client 0.1.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.md +2 -0
- data/README.md +1 -1
- data/lib/pullentity-client/cli.rb +1 -1
- data/lib/pullentity-client/generate/auth.rb +32 -18
- data/lib/pullentity-client/generate/exporter.rb +14 -2
- data/lib/pullentity-client/generate/theme.rb +3 -3
- data/lib/pullentity-client/templates/app/assets/javascripts/application.js.erb +2 -1
- data/lib/pullentity-client/templates/app/assets/javascripts/config.js.erb +6 -0
- data/lib/pullentity-client/templates/app/assets/stylesheets/customtheme.css.scss +14 -8
- data/lib/pullentity-client/templates/app/index.html.haml +5 -3
- data/lib/pullentity-client/templates/app/views/list.haml +6 -6
- data/lib/pullentity-client/templates/app/views/shared/body.haml +5 -5
- data/lib/pullentity-client/templates/app/views/shared/head.haml +1 -9
- data/lib/pullentity-client/templates/app/views/shared/js.haml +0 -3
- data/lib/pullentity-client/templates/app/views/themes/home.haml +0 -1
- data/lib/pullentity-client/templates/app/views/themes/list-2.haml +13 -0
- data/lib/pullentity-client/templates/app/views/themes/theme1.haml +7 -8
- data/lib/pullentity-client/version.rb +1 -1
- data/spec/pullentity-client/generate/exporter_spec.rb +3 -3
- data/vendor/.DS_Store +0 -0
- data/vendor/assets/javascripts/{pullentity → backbone}/.DS_Store +0 -0
- data/vendor/assets/javascripts/backbone/backbone.js +1571 -0
- data/vendor/assets/javascripts/backbone/underscore.js +1227 -0
- data/vendor/assets/javascripts/bootstrap.js +1964 -0
- data/vendor/assets/javascripts/bootstrap.min.js +6 -0
- data/vendor/assets/javascripts/galleria/LICENSE +21 -0
- data/vendor/assets/javascripts/galleria/galleria-1.2.9.js +6121 -0
- data/vendor/assets/javascripts/galleria/galleria-1.2.9.min.js +9 -0
- data/vendor/assets/javascripts/galleria/plugins/flickr/flickr-demo.html +62 -0
- data/vendor/assets/javascripts/galleria/plugins/flickr/flickr-loader.gif +0 -0
- data/vendor/assets/javascripts/galleria/plugins/flickr/galleria.flickr.js +383 -0
- data/vendor/assets/javascripts/galleria/plugins/flickr/galleria.flickr.min.js +8 -0
- data/vendor/assets/javascripts/galleria/plugins/flickr/loader.gif +0 -0
- data/vendor/assets/javascripts/galleria/plugins/history/galleria.history.js +146 -0
- data/vendor/assets/javascripts/galleria/plugins/history/galleria.history.min.js +8 -0
- data/vendor/assets/javascripts/galleria/plugins/history/history-demo.html +100 -0
- data/vendor/assets/javascripts/galleria/plugins/picasa/galleria.picasa.js +320 -0
- data/vendor/assets/javascripts/galleria/plugins/picasa/galleria.picasa.min.js +8 -0
- data/vendor/assets/javascripts/galleria/plugins/picasa/loader.gif +0 -0
- data/vendor/assets/javascripts/galleria/plugins/picasa/picasa-demo.html +55 -0
- data/vendor/assets/javascripts/galleria/themes/classic/classic-demo.html +124 -0
- data/vendor/assets/javascripts/galleria/themes/classic/classic-loader.gif +0 -0
- data/vendor/assets/javascripts/galleria/themes/classic/classic-map.png +0 -0
- data/vendor/assets/javascripts/galleria/themes/classic/galleria.classic.css +220 -0
- data/vendor/assets/javascripts/galleria/themes/classic/galleria.classic.js +95 -0
- data/vendor/assets/javascripts/galleria/themes/classic/galleria.classic.min.js +8 -0
- data/vendor/assets/javascripts/handlebars.js +2278 -0
- data/vendor/assets/javascripts/jquery.infinite-scroll.min.js +1 -0
- data/vendor/assets/javascripts/jquery.isotope.min.js +11 -0
- data/vendor/assets/javascripts/jquery.loadimage.js +3 -0
- data/vendor/assets/javascripts/jquery.masonry.min.js +10 -0
- data/vendor/assets/javascripts/jquery.waitforimages.js +4 -0
- data/vendor/assets/javascripts/pullentity-backbone/.DS_Store +0 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/helpers/app_helper.js.coffee +12 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/models/project.js.coffee +11 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/models/section.js.coffee +13 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/models/site.js.coffee +7 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/routers/router.coffee +7 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/site.js.coffee +33 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/views/main.js.coffee +123 -0
- data/vendor/assets/javascripts/pullentity-backbone/application.js.coffee +8 -0
- data/vendor/assets/javascripts/pullentity.js +3 -0
- data/vendor/assets/stylesheets/bootstrap.css +4677 -0
- data/vendor/assets/stylesheets/bootstrap.min.css +9 -0
- data/vendor/assets/stylesheets/galleria/LICENSE +21 -0
- data/vendor/assets/stylesheets/galleria/galleria-1.2.9.js +6121 -0
- data/vendor/assets/stylesheets/galleria/galleria-1.2.9.min.js +9 -0
- data/vendor/assets/stylesheets/galleria/plugins/flickr/flickr-demo.html +62 -0
- data/vendor/assets/stylesheets/galleria/plugins/flickr/flickr-loader.gif +0 -0
- data/vendor/assets/stylesheets/galleria/plugins/flickr/galleria.flickr.js +383 -0
- data/vendor/assets/stylesheets/galleria/plugins/flickr/galleria.flickr.min.js +8 -0
- data/vendor/assets/stylesheets/galleria/plugins/flickr/loader.gif +0 -0
- data/vendor/assets/stylesheets/galleria/plugins/history/galleria.history.js +146 -0
- data/vendor/assets/stylesheets/galleria/plugins/history/galleria.history.min.js +8 -0
- data/vendor/assets/stylesheets/galleria/plugins/history/history-demo.html +100 -0
- data/vendor/assets/stylesheets/galleria/plugins/picasa/galleria.picasa.js +320 -0
- data/vendor/assets/stylesheets/galleria/plugins/picasa/galleria.picasa.min.js +8 -0
- data/vendor/assets/stylesheets/galleria/plugins/picasa/loader.gif +0 -0
- data/vendor/assets/stylesheets/galleria/plugins/picasa/picasa-demo.html +55 -0
- data/vendor/assets/stylesheets/galleria/themes/classic/classic-demo.html +124 -0
- data/vendor/assets/stylesheets/galleria/themes/classic/classic-loader.gif +0 -0
- data/vendor/assets/stylesheets/galleria/themes/classic/classic-map-original.png +0 -0
- data/vendor/assets/stylesheets/galleria/themes/classic/galleria.classic.css +217 -0
- data/vendor/assets/stylesheets/galleria/themes/classic/galleria.classic.js +95 -0
- data/vendor/assets/stylesheets/galleria/themes/classic/galleria.classic.min.js +8 -0
- metadata +70 -8
- data/lib/pullentity-client/templates/defaults/test-data.js.erb +0 -193
- data/vendor/assets/javascripts/mustache.js +0 -535
- data/vendor/assets/javascripts/pullentity/development.js.coffee +0 -222
- data/vendor/assets/javascripts/pullentity.js.erb +0 -3
- data/vendor/assets/javascripts/underscore-min.js +0 -1
@@ -0,0 +1,146 @@
|
|
1
|
+
/**
|
2
|
+
* Galleria History Plugin 2012-04-04
|
3
|
+
* http://galleria.io
|
4
|
+
*
|
5
|
+
* Licensed under the MIT license
|
6
|
+
* https://raw.github.com/aino/galleria/master/LICENSE
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
|
10
|
+
(function( $, window ) {
|
11
|
+
|
12
|
+
/*global jQuery, Galleria, window */
|
13
|
+
|
14
|
+
Galleria.requires(1.25, 'The History Plugin requires Galleria version 1.2.5 or later.');
|
15
|
+
|
16
|
+
Galleria.History = (function() {
|
17
|
+
|
18
|
+
var onloads = [],
|
19
|
+
|
20
|
+
init = false,
|
21
|
+
|
22
|
+
loc = window.location,
|
23
|
+
|
24
|
+
doc = window.document,
|
25
|
+
|
26
|
+
ie = Galleria.IE,
|
27
|
+
|
28
|
+
support = 'onhashchange' in window && ( doc.mode === undefined || doc.mode > 7 ),
|
29
|
+
|
30
|
+
iframe,
|
31
|
+
|
32
|
+
get = function( winloc ) {
|
33
|
+
if( iframe && !support && Galleria.IE ) {
|
34
|
+
winloc = winloc || iframe.location;
|
35
|
+
} else {
|
36
|
+
winloc = loc;
|
37
|
+
}
|
38
|
+
return parseInt( winloc.hash.substr(2), 10 );
|
39
|
+
},
|
40
|
+
|
41
|
+
saved = get( loc ),
|
42
|
+
|
43
|
+
callbacks = [],
|
44
|
+
|
45
|
+
onchange = function() {
|
46
|
+
$.each( callbacks, function( i, fn ) {
|
47
|
+
fn.call( window, get() );
|
48
|
+
});
|
49
|
+
},
|
50
|
+
|
51
|
+
ready = function() {
|
52
|
+
$.each( onloads, function(i, fn) {
|
53
|
+
fn();
|
54
|
+
});
|
55
|
+
|
56
|
+
init = true;
|
57
|
+
},
|
58
|
+
|
59
|
+
setHash = function( val ) {
|
60
|
+
return '/' + val;
|
61
|
+
};
|
62
|
+
|
63
|
+
// always remove support if IE < 8
|
64
|
+
if ( support && ie < 8 ) {
|
65
|
+
support = false;
|
66
|
+
}
|
67
|
+
|
68
|
+
if ( !support ) {
|
69
|
+
|
70
|
+
$(function() {
|
71
|
+
|
72
|
+
var interval = window.setInterval(function() {
|
73
|
+
|
74
|
+
var hash = get();
|
75
|
+
|
76
|
+
if ( !isNaN( hash ) && hash != saved ) {
|
77
|
+
saved = hash;
|
78
|
+
loc.hash = setHash( hash );
|
79
|
+
onchange();
|
80
|
+
}
|
81
|
+
|
82
|
+
}, 50);
|
83
|
+
|
84
|
+
if ( ie ) {
|
85
|
+
|
86
|
+
$('<iframe tabindex="-1" title="empty">').hide().attr( 'src', 'about:blank' ).one('load', function() {
|
87
|
+
|
88
|
+
iframe = this.contentWindow;
|
89
|
+
|
90
|
+
ready();
|
91
|
+
|
92
|
+
}).insertAfter(doc.body);
|
93
|
+
|
94
|
+
} else {
|
95
|
+
ready();
|
96
|
+
}
|
97
|
+
});
|
98
|
+
} else {
|
99
|
+
ready();
|
100
|
+
}
|
101
|
+
|
102
|
+
return {
|
103
|
+
|
104
|
+
change: function( fn ) {
|
105
|
+
|
106
|
+
callbacks.push( fn );
|
107
|
+
|
108
|
+
if( support ) {
|
109
|
+
window.onhashchange = onchange;
|
110
|
+
}
|
111
|
+
},
|
112
|
+
|
113
|
+
set: function( val ) {
|
114
|
+
|
115
|
+
if ( isNaN( val ) ) {
|
116
|
+
return;
|
117
|
+
}
|
118
|
+
|
119
|
+
if ( !support && ie ) {
|
120
|
+
|
121
|
+
this.ready(function() {
|
122
|
+
|
123
|
+
var idoc = iframe.document;
|
124
|
+
idoc.open();
|
125
|
+
idoc.close();
|
126
|
+
|
127
|
+
iframe.location.hash = setHash( val );
|
128
|
+
|
129
|
+
});
|
130
|
+
}
|
131
|
+
|
132
|
+
loc.hash = setHash( val );
|
133
|
+
},
|
134
|
+
|
135
|
+
ready: function(fn) {
|
136
|
+
if (!init) {
|
137
|
+
onloads.push(fn);
|
138
|
+
} else {
|
139
|
+
fn();
|
140
|
+
}
|
141
|
+
}
|
142
|
+
};
|
143
|
+
}());
|
144
|
+
|
145
|
+
}( jQuery, this ));
|
146
|
+
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/**
|
2
|
+
* Galleria History Plugin 2012-04-04
|
3
|
+
* http://galleria.io
|
4
|
+
*
|
5
|
+
* Licensed under the MIT license
|
6
|
+
* https://raw.github.com/aino/galleria/master/LICENSE
|
7
|
+
*
|
8
|
+
*/(function(a,b){Galleria.requires(1.25,"The History Plugin requires Galleria version 1.2.5 or later."),Galleria.History=function(){var c=[],d=!1,e=b.location,f=b.document,g=Galleria.IE,h="onhashchange"in b&&(f.mode===undefined||f.mode>7),i,j=function(a){return i&&!h&&Galleria.IE?a=a||i.location:a=e,parseInt(a.hash.substr(2),10)},k=j(e),l=[],m=function(){a.each(l,function(a,c){c.call(b,j())})},n=function(){a.each(c,function(a,b){b()}),d=!0},o=function(a){return"/"+a};return h&&g<8&&(h=!1),h?n():a(function(){var c=b.setInterval(function(){var a=j();!isNaN(a)&&a!=k&&(k=a,e.hash=o(a),m())},50);g?a('<iframe tabindex="-1" title="empty">').hide().attr("src","about:blank").one("load",function(){i=this.contentWindow,n()}).insertAfter(f.body):n()}),{change:function(a){l.push(a),h&&(b.onhashchange=m)},set:function(a){if(isNaN(a))return;!h&&g&&this.ready(function(){var b=i.document;b.open(),b.close(),i.location.hash=o(a)}),e.hash=o(a)},ready:function(a){d?a():c.push(a)}}}()})(jQuery,this);
|
@@ -0,0 +1,100 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>Galleria History Plugin</title>
|
6
|
+
<style>
|
7
|
+
|
8
|
+
/* Demo styles */
|
9
|
+
html,body{background:#222;margin:0;}
|
10
|
+
body{border-top:4px solid #000;}
|
11
|
+
.content{color:#777;font:12px/1.4 "helvetica neue",arial,sans-serif;width:620px;margin:20px auto;}
|
12
|
+
h1{font-size:12px;font-weight:normal;color:#ddd;margin:0;}
|
13
|
+
p{margin:0 0 20px}
|
14
|
+
a {color:#22BCB9;text-decoration:none;}
|
15
|
+
.cred{margin-top:20px;font-size:11px;}
|
16
|
+
|
17
|
+
/* This rule is read by Galleria to define the gallery height: */
|
18
|
+
#galleria{height:320px}
|
19
|
+
|
20
|
+
</style>
|
21
|
+
|
22
|
+
<!-- load jQuery -->
|
23
|
+
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
|
24
|
+
|
25
|
+
<!-- load Galleria -->
|
26
|
+
<script src="../../galleria-1.2.9.min.js"></script>
|
27
|
+
|
28
|
+
<!-- load the History plugin, no need for further scripting -->
|
29
|
+
<script src="galleria.history.min.js"></script>
|
30
|
+
|
31
|
+
</head>
|
32
|
+
<body>
|
33
|
+
<div class="content">
|
34
|
+
<h1>Galleria History Plugin</h1>
|
35
|
+
<p>Demonstrating a basic history example. Supports most browsers, including FF 3.0+ and IE 7+</p>
|
36
|
+
|
37
|
+
<!-- Adding gallery images. We use resized thumbnails here for better performance, but it’s not necessary -->
|
38
|
+
|
39
|
+
<div id="galleria">
|
40
|
+
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/3/34/Locomotives-Roundhouse2.jpg/800px-Locomotives-Roundhouse2.jpg">
|
41
|
+
<img title="Locomotives Roundhouse"
|
42
|
+
alt="Steam locomotives of the Chicago & North Western Railway."
|
43
|
+
src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/34/Locomotives-Roundhouse2.jpg/100px-Locomotives-Roundhouse2.jpg">
|
44
|
+
</a>
|
45
|
+
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Icebergs_in_the_High_Arctic_-_20050907.jpg/1000px-Icebergs_in_the_High_Arctic_-_20050907.jpg">
|
46
|
+
<img title="Icebergs in the High Arctic"
|
47
|
+
alt="”The debris loading isn't particularly extensive, but the color is usual.”"
|
48
|
+
src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Icebergs_in_the_High_Arctic_-_20050907.jpg/100px-Icebergs_in_the_High_Arctic_-_20050907.jpg">
|
49
|
+
</a>
|
50
|
+
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Ara%C3%B1a._A_Estrada%2C_Galiza._02.jpg/1000px-Ara%C3%B1a._A_Estrada%2C_Galiza._02.jpg">
|
51
|
+
<img title="Araña"
|
52
|
+
alt="Xysticus cristatus, A Estrada, Galicia, Spain"
|
53
|
+
src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Ara%C3%B1a._A_Estrada%2C_Galiza._02.jpg/100px-Ara%C3%B1a._A_Estrada%2C_Galiza._02.jpg">
|
54
|
+
</a>
|
55
|
+
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2d/9104_-_Milano_-_Museo_storia_naturale_-_Fluorite_-_Foto_Giovanni_Dall%27Orto_22-Apr-2007.jpg/1000px-9104_-_Milano_-_Museo_storia_naturale_-_Fluorite_-_Foto_Giovanni_Dall%27Orto_22-Apr-2007.jpg">
|
56
|
+
<img title="Museo storia naturale"
|
57
|
+
src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2d/9104_-_Milano_-_Museo_storia_naturale_-_Fluorite_-_Foto_Giovanni_Dall%27Orto_22-Apr-2007.jpg/100px-9104_-_Milano_-_Museo_storia_naturale_-_Fluorite_-_Foto_Giovanni_Dall%27Orto_22-Apr-2007.jpg">
|
58
|
+
</a>
|
59
|
+
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Grj%C3%B3tagj%C3%A1_caves_in_summer_2009_%282%29.jpg/1000px-Grj%C3%B3tagj%C3%A1_caves_in_summer_2009_%282%29.jpg">
|
60
|
+
<img title="Grjótagjá caves in summer 2009"
|
61
|
+
src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Grj%C3%B3tagj%C3%A1_caves_in_summer_2009_%282%29.jpg/100px-Grj%C3%B3tagj%C3%A1_caves_in_summer_2009_%282%29.jpg">
|
62
|
+
</a>
|
63
|
+
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/9/90/20091128_Loutra_Thermes_Xanthi_Thrace_Greece_2.jpg/1000px-20091128_Loutra_Thermes_Xanthi_Thrace_Greece_2.jpg">
|
64
|
+
<img title="Thermes"
|
65
|
+
alt="Xanthi hot-spa springs, Xanthi Prefecture, Greece"
|
66
|
+
src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/90/20091128_Loutra_Thermes_Xanthi_Thrace_Greece_2.jpg/100px-20091128_Loutra_Thermes_Xanthi_Thrace_Greece_2.jpg">
|
67
|
+
</a>
|
68
|
+
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Polish_Army_Ko%C5%82obrzeg_077.JPG/1024px-Polish_Army_Ko%C5%82obrzeg_077.JPG">
|
69
|
+
<img title="Polish Army Kołobrzeg"
|
70
|
+
alt="A display of the Polish Army. Both the soldier, and the vehicle belong to the 7th Pomeranian Coastal Defence Brigade, a part of the Szczecin-based 12th Mechanized Division ”Bolesław Krzywousty”"
|
71
|
+
src="http://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Polish_Army_Ko%C5%82obrzeg_077.JPG/100px-Polish_Army_Ko%C5%82obrzeg_077.JPG">
|
72
|
+
</a>
|
73
|
+
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2d/20100213_Zlatograd_Bulgaria_3.jpg/1024px-20100213_Zlatograd_Bulgaria_3.jpg">
|
74
|
+
<img title="Zlatograd Bulgaria"
|
75
|
+
src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2d/20100213_Zlatograd_Bulgaria_3.jpg/100px-20100213_Zlatograd_Bulgaria_3.jpg">
|
76
|
+
</a>
|
77
|
+
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/FEMA_-_5399_-_Photograph_by_Andrea_Booher_taken_on_09-28-2001_in_New_York.jpg/1024px-FEMA_-_5399_-_Photograph_by_Andrea_Booher_taken_on_09-28-2001_in_New_York.jpg">
|
78
|
+
<img title="09-28-2001 in New York City"
|
79
|
+
alt="New York, NY, September 28, 2001 -- Debris on surrounding roofs at the site of the World Trade Center. Photo by Andrea Booher/ FEMA News Photo"
|
80
|
+
src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/FEMA_-_5399_-_Photograph_by_Andrea_Booher_taken_on_09-28-2001_in_New_York.jpg/100px-FEMA_-_5399_-_Photograph_by_Andrea_Booher_taken_on_09-28-2001_in_New_York.jpg">
|
81
|
+
</a>
|
82
|
+
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e6/Antennae%2C_Hubble_images.jpg/1024px-Antennae%2C_Hubble_images.jpg">
|
83
|
+
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e6/Antennae%2C_Hubble_images.jpg/100px-Antennae%2C_Hubble_images.jpg">
|
84
|
+
</a>
|
85
|
+
</div>
|
86
|
+
|
87
|
+
<p class="cred">Made by <a href="http://galleria.aino.se">Galleria</a>.</p>
|
88
|
+
</div>
|
89
|
+
|
90
|
+
<script>
|
91
|
+
|
92
|
+
// Load the classic theme
|
93
|
+
Galleria.loadTheme('../../themes/classic/galleria.classic.min.js');
|
94
|
+
|
95
|
+
// Initialize Galleria
|
96
|
+
Galleria.run('#galleria');
|
97
|
+
|
98
|
+
</script>
|
99
|
+
</body>
|
100
|
+
</html>
|
@@ -0,0 +1,320 @@
|
|
1
|
+
/**
|
2
|
+
* Galleria Picasa Plugin 2012-04-04
|
3
|
+
* http://galleria.io
|
4
|
+
*
|
5
|
+
* Licensed under the MIT license
|
6
|
+
* https://raw.github.com/aino/galleria/master/LICENSE
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
|
10
|
+
(function($) {
|
11
|
+
|
12
|
+
/*global jQuery, Galleria, window */
|
13
|
+
|
14
|
+
Galleria.requires(1.25, 'The Picasa Plugin requires Galleria version 1.2.5 or later.');
|
15
|
+
|
16
|
+
// The script path
|
17
|
+
var PATH = Galleria.utils.getScriptPath();
|
18
|
+
|
19
|
+
/**
|
20
|
+
|
21
|
+
@class
|
22
|
+
@constructor
|
23
|
+
|
24
|
+
@example var picasa = new Galleria.Picasa();
|
25
|
+
|
26
|
+
@author http://aino.se
|
27
|
+
|
28
|
+
@requires jQuery
|
29
|
+
@requires Galleria
|
30
|
+
|
31
|
+
@returns Instance
|
32
|
+
*/
|
33
|
+
|
34
|
+
Galleria.Picasa = function() {
|
35
|
+
|
36
|
+
this.options = {
|
37
|
+
max: 30, // photos to return
|
38
|
+
imageSize: 'medium', // photo size ( thumb,small,medium,big,original ) or a number
|
39
|
+
thumbSize: 'thumb', // thumbnail size ( thumb,small,medium,big,original ) or a number
|
40
|
+
complete: function(){} // callback to be called inside the Galleria.prototype.load
|
41
|
+
};
|
42
|
+
|
43
|
+
};
|
44
|
+
|
45
|
+
Galleria.Picasa.prototype = {
|
46
|
+
|
47
|
+
// bring back the constructor reference
|
48
|
+
|
49
|
+
constructor: Galleria.Picasa,
|
50
|
+
|
51
|
+
/**
|
52
|
+
Search for anything at Picasa
|
53
|
+
|
54
|
+
@param {String} phrase The string to search for
|
55
|
+
@param {Function} [callback] The callback to be called when the data is ready
|
56
|
+
|
57
|
+
@returns Instance
|
58
|
+
*/
|
59
|
+
|
60
|
+
search: function( phrase, callback ) {
|
61
|
+
return this._call( 'search', 'all', {
|
62
|
+
q: phrase
|
63
|
+
}, callback );
|
64
|
+
},
|
65
|
+
|
66
|
+
/**
|
67
|
+
Get a user's public photos
|
68
|
+
|
69
|
+
@param {String} username The username to fetch photos from
|
70
|
+
@param {Function} [callback] The callback to be called when the data is ready
|
71
|
+
|
72
|
+
@returns Instance
|
73
|
+
*/
|
74
|
+
|
75
|
+
user: function( username, callback ) {
|
76
|
+
return this._call( 'user', 'user/' + username, callback );
|
77
|
+
},
|
78
|
+
|
79
|
+
/**
|
80
|
+
Get photos from an album
|
81
|
+
|
82
|
+
@param {String} username The username that owns the album
|
83
|
+
@param {String} album The album ID
|
84
|
+
@param {Function} [callback] The callback to be called when the data is ready
|
85
|
+
|
86
|
+
@returns Instance
|
87
|
+
*/
|
88
|
+
|
89
|
+
useralbum: function( username, album, callback ) {
|
90
|
+
return this._call( 'useralbum', 'user/' + username + '/album/' + album, callback );
|
91
|
+
},
|
92
|
+
|
93
|
+
/**
|
94
|
+
Set picasa options
|
95
|
+
|
96
|
+
@param {Object} options The options object to blend
|
97
|
+
|
98
|
+
@returns Instance
|
99
|
+
*/
|
100
|
+
|
101
|
+
setOptions: function( options ) {
|
102
|
+
$.extend(this.options, options);
|
103
|
+
return this;
|
104
|
+
},
|
105
|
+
|
106
|
+
|
107
|
+
// call Picasa
|
108
|
+
|
109
|
+
_call: function( type, url, params, callback ) {
|
110
|
+
|
111
|
+
url = 'https://picasaweb.google.com/data/feed/api/' + url + '?';
|
112
|
+
|
113
|
+
if (typeof params == 'function') {
|
114
|
+
callback = params;
|
115
|
+
params = {};
|
116
|
+
}
|
117
|
+
|
118
|
+
var self = this;
|
119
|
+
|
120
|
+
params = $.extend({
|
121
|
+
'kind': 'photo',
|
122
|
+
'access': 'public',
|
123
|
+
'max-results': this.options.max,
|
124
|
+
'thumbsize': this._getSizes().join(','),
|
125
|
+
'alt': 'json-in-script',
|
126
|
+
'callback': '?'
|
127
|
+
}, params );
|
128
|
+
|
129
|
+
$.each(params, function( key, value ) {
|
130
|
+
url += '&' + key + '=' + value;
|
131
|
+
});
|
132
|
+
|
133
|
+
// since Picasa throws 404 when the call is malformed, we must set a timeout here:
|
134
|
+
|
135
|
+
var data = false;
|
136
|
+
|
137
|
+
Galleria.utils.wait({
|
138
|
+
until: function() {
|
139
|
+
return data;
|
140
|
+
},
|
141
|
+
success: function() {
|
142
|
+
self._parse.call( self, data.feed.entry, callback );
|
143
|
+
},
|
144
|
+
error: function() {
|
145
|
+
var msg = '';
|
146
|
+
if ( type == 'user' ) {
|
147
|
+
msg = 'user not found.';
|
148
|
+
} else if ( type == 'useralbum' ) {
|
149
|
+
msg = 'album or user not found.';
|
150
|
+
}
|
151
|
+
Galleria.raise('Picasa request failed' + (msg ? ': ' + msg : '.'));
|
152
|
+
},
|
153
|
+
timeout: 5000
|
154
|
+
});
|
155
|
+
|
156
|
+
$.getJSON( url, function( result ) {
|
157
|
+
data = result;
|
158
|
+
});
|
159
|
+
|
160
|
+
return self;
|
161
|
+
},
|
162
|
+
|
163
|
+
|
164
|
+
// parse image sizes and return an array of three
|
165
|
+
|
166
|
+
_getSizes: function() {
|
167
|
+
|
168
|
+
var self = this,
|
169
|
+
norm = {
|
170
|
+
small: '72c',
|
171
|
+
thumb: '104u',
|
172
|
+
medium: '640u',
|
173
|
+
big: '1024u',
|
174
|
+
original: '1600u'
|
175
|
+
},
|
176
|
+
op = self.options,
|
177
|
+
t = {},
|
178
|
+
n,
|
179
|
+
sz = [32,48,64,72,94,104,110,128,144,150,160,200,220,288,320,400,512,576,640,720,800,912,1024,1152,1280,1440,1600];
|
180
|
+
|
181
|
+
$(['thumbSize', 'imageSize']).each(function() {
|
182
|
+
if( op[this] in norm ) {
|
183
|
+
t[this] = norm[ op[this] ];
|
184
|
+
} else {
|
185
|
+
n = Galleria.utils.parseValue( op[this] );
|
186
|
+
if (n > 1600) {
|
187
|
+
n = 1600;
|
188
|
+
} else {
|
189
|
+
$.each( sz, function(i) {
|
190
|
+
if ( n < this ) {
|
191
|
+
n = sz[i-1];
|
192
|
+
return false;
|
193
|
+
}
|
194
|
+
});
|
195
|
+
}
|
196
|
+
t[this] = n;
|
197
|
+
}
|
198
|
+
});
|
199
|
+
|
200
|
+
return [ t.thumbSize, t.imageSize, '1280u'];
|
201
|
+
|
202
|
+
},
|
203
|
+
|
204
|
+
|
205
|
+
// parse the result and call the callback with the galleria-ready data array
|
206
|
+
|
207
|
+
_parse: function( data, callback ) {
|
208
|
+
|
209
|
+
var self = this,
|
210
|
+
gallery = [],
|
211
|
+
img;
|
212
|
+
|
213
|
+
$.each( data, function() {
|
214
|
+
|
215
|
+
img = this.media$group.media$thumbnail;
|
216
|
+
|
217
|
+
gallery.push({
|
218
|
+
thumb: img[0].url,
|
219
|
+
image: img[1].url,
|
220
|
+
big: img[2].url,
|
221
|
+
title: this.summary.$t
|
222
|
+
});
|
223
|
+
});
|
224
|
+
|
225
|
+
callback.call( this, gallery );
|
226
|
+
}
|
227
|
+
};
|
228
|
+
|
229
|
+
|
230
|
+
/**
|
231
|
+
Galleria modifications
|
232
|
+
We fake-extend the load prototype to make Picasa integration as simple as possible
|
233
|
+
*/
|
234
|
+
|
235
|
+
|
236
|
+
// save the old prototype in a local variable
|
237
|
+
|
238
|
+
var load = Galleria.prototype.load;
|
239
|
+
|
240
|
+
|
241
|
+
// fake-extend the load prototype using the picasa data
|
242
|
+
|
243
|
+
Galleria.prototype.load = function() {
|
244
|
+
|
245
|
+
// pass if no data is provided or picasa option not found
|
246
|
+
if ( arguments.length || typeof this._options.picasa !== 'string' ) {
|
247
|
+
load.apply( this, Galleria.utils.array( arguments ) );
|
248
|
+
return;
|
249
|
+
}
|
250
|
+
|
251
|
+
// define some local vars
|
252
|
+
var self = this,
|
253
|
+
args = Galleria.utils.array( arguments ),
|
254
|
+
picasa = this._options.picasa.split(':'),
|
255
|
+
p,
|
256
|
+
opts = $.extend({}, self._options.picasaOptions),
|
257
|
+
loader = typeof opts.loader !== 'undefined' ?
|
258
|
+
opts.loader : $('<div>').css({
|
259
|
+
width: 48,
|
260
|
+
height: 48,
|
261
|
+
opacity: 0.7,
|
262
|
+
background:'#000 url('+PATH+'loader.gif) no-repeat 50% 50%'
|
263
|
+
});
|
264
|
+
|
265
|
+
if ( picasa.length ) {
|
266
|
+
|
267
|
+
// validate the method
|
268
|
+
if ( typeof Galleria.Picasa.prototype[ picasa[0] ] !== 'function' ) {
|
269
|
+
Galleria.raise( picasa[0] + ' method not found in Picasa plugin' );
|
270
|
+
return load.apply( this, args );
|
271
|
+
}
|
272
|
+
|
273
|
+
// validate the argument
|
274
|
+
if ( !picasa[1] ) {
|
275
|
+
Galleria.raise( 'No picasa argument found' );
|
276
|
+
return load.apply( this, args );
|
277
|
+
}
|
278
|
+
|
279
|
+
// apply the preloader
|
280
|
+
window.setTimeout(function() {
|
281
|
+
self.$( 'target' ).append( loader );
|
282
|
+
},100);
|
283
|
+
|
284
|
+
// create the instance
|
285
|
+
p = new Galleria.Picasa();
|
286
|
+
|
287
|
+
// apply Flickr options
|
288
|
+
if ( typeof self._options.picasaOptions === 'object' ) {
|
289
|
+
p.setOptions( self._options.picasaOptions );
|
290
|
+
}
|
291
|
+
|
292
|
+
// call the picasa method and trigger the DATA event
|
293
|
+
var arg = [];
|
294
|
+
if ( picasa[0] == 'useralbum' ) {
|
295
|
+
arg = picasa[1].split('/');
|
296
|
+
if (arg.length != 2) {
|
297
|
+
Galleria.raise( 'Picasa useralbum not correctly formatted (should be [user]/[album])');
|
298
|
+
return;
|
299
|
+
}
|
300
|
+
} else {
|
301
|
+
arg.push( picasa[1] );
|
302
|
+
}
|
303
|
+
|
304
|
+
arg.push(function(data) {
|
305
|
+
self._data = data;
|
306
|
+
loader.remove();
|
307
|
+
self.trigger( Galleria.DATA );
|
308
|
+
p.options.complete.call(p, data);
|
309
|
+
});
|
310
|
+
|
311
|
+
p[ picasa[0] ].apply( p, arg );
|
312
|
+
|
313
|
+
} else {
|
314
|
+
|
315
|
+
// if flickr array not found, pass
|
316
|
+
load.apply( this, args );
|
317
|
+
}
|
318
|
+
};
|
319
|
+
|
320
|
+
}( jQuery ) );
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/**
|
2
|
+
* Galleria Picasa Plugin 2012-04-04
|
3
|
+
* http://galleria.io
|
4
|
+
*
|
5
|
+
* Licensed under the MIT license
|
6
|
+
* https://raw.github.com/aino/galleria/master/LICENSE
|
7
|
+
*
|
8
|
+
*/(function(a){Galleria.requires(1.25,"The Picasa Plugin requires Galleria version 1.2.5 or later.");var b=Galleria.utils.getScriptPath();Galleria.Picasa=function(){this.options={max:30,imageSize:"medium",thumbSize:"thumb",complete:function(){}}},Galleria.Picasa.prototype={constructor:Galleria.Picasa,search:function(a,b){return this._call("search","all",{q:a},b)},user:function(a,b){return this._call("user","user/"+a,b)},useralbum:function(a,b,c){return this._call("useralbum","user/"+a+"/album/"+b,c)},setOptions:function(b){return a.extend(this.options,b),this},_call:function(b,c,d,e){c="https://picasaweb.google.com/data/feed/api/"+c+"?",typeof d=="function"&&(e=d,d={});var f=this;d=a.extend({kind:"photo",access:"public","max-results":this.options.max,thumbsize:this._getSizes().join(","),alt:"json-in-script",callback:"?"},d),a.each(d,function(a,b){c+="&"+a+"="+b});var g=!1;return Galleria.utils.wait({until:function(){return g},success:function(){f._parse.call(f,g.feed.entry,e)},error:function(){var a="";b=="user"?a="user not found.":b=="useralbum"&&(a="album or user not found."),Galleria.raise("Picasa request failed"+(a?": "+a:"."))},timeout:5e3}),a.getJSON(c,function(a){g=a}),f},_getSizes:function(){var b=this,c={small:"72c",thumb:"104u",medium:"640u",big:"1024u",original:"1600u"},d=b.options,e={},f,g=[32,48,64,72,94,104,110,128,144,150,160,200,220,288,320,400,512,576,640,720,800,912,1024,1152,1280,1440,1600];return a(["thumbSize","imageSize"]).each(function(){d[this]in c?e[this]=c[d[this]]:(f=Galleria.utils.parseValue(d[this]),f>1600?f=1600:a.each(g,function(a){if(f<this)return f=g[a-1],!1}),e[this]=f)}),[e.thumbSize,e.imageSize,"1280u"]},_parse:function(b,c){var d=this,e=[],f;a.each(b,function(){f=this.media$group.media$thumbnail,e.push({thumb:f[0].url,image:f[1].url,big:f[2].url,title:this.summary.$t})}),c.call(this,e)}};var c=Galleria.prototype.load;Galleria.prototype.load=function(){if(arguments.length||typeof this._options.picasa!="string"){c.apply(this,Galleria.utils.array(arguments));return}var d=this,e=Galleria.utils.array(arguments),f=this._options.picasa.split(":"),g,h=a.extend({},d._options.picasaOptions),i=typeof h.loader!="undefined"?h.loader:a("<div>").css({width:48,height:48,opacity:.7,background:"#000 url("+b+"loader.gif) no-repeat 50% 50%"});if(f.length){if(typeof Galleria.Picasa.prototype[f[0]]!="function")return Galleria.raise(f[0]+" method not found in Picasa plugin"),c.apply(this,e);if(!f[1])return Galleria.raise("No picasa argument found"),c.apply(this,e);window.setTimeout(function(){d.$("target").append(i)},100),g=new Galleria.Picasa,typeof d._options.picasaOptions=="object"&&g.setOptions(d._options.picasaOptions);var j=[];if(f[0]=="useralbum"){j=f[1].split("/");if(j.length!=2){Galleria.raise("Picasa useralbum not correctly formatted (should be [user]/[album])");return}}else j.push(f[1]);j.push(function(a){d._data=a,i.remove(),d.trigger(Galleria.DATA),g.options.complete.call(g,a)}),g[f[0]].apply(g,j)}else c.apply(this,e)}})(jQuery);
|
Binary file
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>Galleria Flickr Plugin</title>
|
6
|
+
<style>
|
7
|
+
|
8
|
+
/* Demo styles */
|
9
|
+
html,body{background:#222;margin:0;}
|
10
|
+
body{border-top:4px solid #000;}
|
11
|
+
.content{color:#777;font:12px/1.4 "helvetica neue",arial,sans-serif;width:620px;margin:20px auto;}
|
12
|
+
h1{font-size:12px;font-weight:normal;color:#ddd;margin:0;}
|
13
|
+
p{margin:0 0 20px}
|
14
|
+
a {color:#22BCB9;text-decoration:none;}
|
15
|
+
.cred{margin-top:20px;font-size:11px;}
|
16
|
+
|
17
|
+
/* This rule is read by Galleria to define the gallery height: */
|
18
|
+
#galleria{height:320px;}
|
19
|
+
|
20
|
+
</style>
|
21
|
+
|
22
|
+
<!-- load jQuery -->
|
23
|
+
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
|
24
|
+
|
25
|
+
<!-- load Galleria -->
|
26
|
+
<script src="../../galleria-1.2.9.min.js"></script>
|
27
|
+
|
28
|
+
<!-- load picasa plugin -->
|
29
|
+
<script src="galleria.picasa.min.js"></script>
|
30
|
+
|
31
|
+
</head>
|
32
|
+
<body>
|
33
|
+
<div class="content">
|
34
|
+
<h1>Galleria Picasa Plugin Demo</h1>
|
35
|
+
<p>Demonstrating a basic gallery example with photos from a Picasa album.</p>
|
36
|
+
|
37
|
+
<!-- Adding gallery images. This is just a container for the dynamic picasa images -->
|
38
|
+
|
39
|
+
<div id="galleria"></div>
|
40
|
+
|
41
|
+
<p class="cred">Made by <a href="http://galleria.aino.se">Galleria</a>.</p>
|
42
|
+
</div>
|
43
|
+
<script>
|
44
|
+
|
45
|
+
// Load the classic theme
|
46
|
+
Galleria.loadTheme('../../themes/classic/galleria.classic.min.js');
|
47
|
+
|
48
|
+
Galleria.run('#galleria', {
|
49
|
+
// The user & album. This example fetches the album "Demo" from the user "galleriajs"
|
50
|
+
picasa: 'useralbum:galleriajs/Demo'
|
51
|
+
});
|
52
|
+
|
53
|
+
</script>
|
54
|
+
</body>
|
55
|
+
</html>
|