refinerycms-jquery_gallery 1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,138 @@
1
+ /**
2
+ * jQuery.timers - Timer abstractions for jQuery
3
+ * Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
4
+ * Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
5
+ * Date: 2009/10/16
6
+ *
7
+ * @author Blair Mitchelmore
8
+ * @version 1.2
9
+ *
10
+ **/
11
+
12
+ jQuery.fn.extend({
13
+ everyTime: function(interval, label, fn, times) {
14
+ return this.each(function() {
15
+ jQuery.timer.add(this, interval, label, fn, times);
16
+ });
17
+ },
18
+ oneTime: function(interval, label, fn) {
19
+ return this.each(function() {
20
+ jQuery.timer.add(this, interval, label, fn, 1);
21
+ });
22
+ },
23
+ stopTime: function(label, fn) {
24
+ return this.each(function() {
25
+ jQuery.timer.remove(this, label, fn);
26
+ });
27
+ }
28
+ });
29
+
30
+ jQuery.extend({
31
+ timer: {
32
+ global: [],
33
+ guid: 1,
34
+ dataKey: "jQuery.timer",
35
+ regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,
36
+ powers: {
37
+ // Yeah this is major overkill...
38
+ 'ms': 1,
39
+ 'cs': 10,
40
+ 'ds': 100,
41
+ 's': 1000,
42
+ 'das': 10000,
43
+ 'hs': 100000,
44
+ 'ks': 1000000
45
+ },
46
+ timeParse: function(value) {
47
+ if (value == undefined || value == null)
48
+ return null;
49
+ var result = this.regex.exec(jQuery.trim(value.toString()));
50
+ if (result[2]) {
51
+ var num = parseFloat(result[1]);
52
+ var mult = this.powers[result[2]] || 1;
53
+ return num * mult;
54
+ } else {
55
+ return value;
56
+ }
57
+ },
58
+ add: function(element, interval, label, fn, times) {
59
+ var counter = 0;
60
+
61
+ if (jQuery.isFunction(label)) {
62
+ if (!times)
63
+ times = fn;
64
+ fn = label;
65
+ label = interval;
66
+ }
67
+
68
+ interval = jQuery.timer.timeParse(interval);
69
+
70
+ if (typeof interval != 'number' || isNaN(interval) || interval < 0)
71
+ return;
72
+
73
+ if (typeof times != 'number' || isNaN(times) || times < 0)
74
+ times = 0;
75
+
76
+ times = times || 0;
77
+
78
+ var timers = jQuery.data(element, this.dataKey) || jQuery.data(element, this.dataKey, {});
79
+
80
+ if (!timers[label])
81
+ timers[label] = {};
82
+
83
+ fn.timerID = fn.timerID || this.guid++;
84
+
85
+ var handler = function() {
86
+ if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
87
+ jQuery.timer.remove(element, label, fn);
88
+ };
89
+
90
+ handler.timerID = fn.timerID;
91
+
92
+ if (!timers[label][fn.timerID])
93
+ timers[label][fn.timerID] = window.setInterval(handler,interval);
94
+
95
+ this.global.push( element );
96
+
97
+ },
98
+ remove: function(element, label, fn) {
99
+ var timers = jQuery.data(element, this.dataKey), ret;
100
+
101
+ if ( timers ) {
102
+
103
+ if (!label) {
104
+ for ( label in timers )
105
+ this.remove(element, label, fn);
106
+ } else if ( timers[label] ) {
107
+ if ( fn ) {
108
+ if ( fn.timerID ) {
109
+ window.clearInterval(timers[label][fn.timerID]);
110
+ delete timers[label][fn.timerID];
111
+ }
112
+ } else {
113
+ for ( var fn in timers[label] ) {
114
+ window.clearInterval(timers[label][fn]);
115
+ delete timers[label][fn];
116
+ }
117
+ }
118
+
119
+ for ( ret in timers[label] ) break;
120
+ if ( !ret ) {
121
+ ret = null;
122
+ delete timers[label];
123
+ }
124
+ }
125
+
126
+ for ( ret in timers ) break;
127
+ if ( !ret )
128
+ jQuery.removeData(element, this.dataKey);
129
+ }
130
+ }
131
+ }
132
+ });
133
+
134
+ jQuery(window).bind("unload", function() {
135
+ jQuery.each(jQuery.timer.global, function(index, item) {
136
+ jQuery.timer.remove(item);
137
+ });
138
+ });
@@ -0,0 +1,2 @@
1
+ //= require gallery_view/jquery.timers-1.2
2
+ //= require gallery_view/jquery.galleryview-2.1.1
@@ -0,0 +1,38 @@
1
+ #body_content #page_images, #page_images {
2
+ background-color: black;
3
+ padding: 10px 5px;
4
+
5
+ #gallery {
6
+ margin: 0 auto;
7
+
8
+ .pointer {
9
+ border-bottom-color: #AAA;
10
+ }
11
+
12
+ img {
13
+ border: 0;
14
+ }
15
+ }
16
+ }
17
+
18
+
19
+ .refinerycms-properties {
20
+ #body_content {
21
+ #page_images {
22
+ background-color: black;
23
+ padding: 10px 5px;
24
+
25
+ #gallery {
26
+ margin: 0 auto;
27
+
28
+ .pointer {
29
+ border-bottom-color: #AAA;
30
+ }
31
+
32
+ img {
33
+ border: 0;
34
+ }
35
+ }
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,18 @@
1
+ - unless page.images.empty?
2
+ #page_images
3
+ %ul#gallery
4
+ - page.images.each do |image|
5
+ %li
6
+ = image_tag(image.thumbnail("570x270#c").url)
7
+
8
+ = content_for :javascripts do
9
+ :javascript
10
+ $(document).ready(function(){
11
+ $('#gallery').galleryView({
12
+ panel_width: 640,
13
+ panel_height: 300,
14
+ frame_width: 75,
15
+ frame_height: 75,
16
+ theme_path: '/assets/gallery_view/themes/dark'
17
+ });
18
+ });
@@ -0,0 +1,15 @@
1
+
2
+ module Refinery
3
+ module JqueryGallery
4
+ # Our host application root path
5
+ # We set this when the engine is initialized
6
+ mattr_accessor :app_root
7
+
8
+ # Yield self on setup for nice config blocks
9
+ def self.setup
10
+ yield self
11
+ end
12
+ end
13
+ end
14
+
15
+ require 'refinery/jquery_gallery/engine'
@@ -0,0 +1,12 @@
1
+ module Refinery
2
+ module JqueryGallery
3
+ class Engine < Rails::Engine
4
+
5
+ initializer "register refinerycms_jquery_engine plugin" do |app|
6
+ Refinery::JqueryGallery.setup do |config|
7
+ config.app_root = app.root
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1 @@
1
+ require 'refinery/jquery_gallery'
@@ -0,0 +1,41 @@
1
+ # Jquery Gallery extension for Refinery CMS.
2
+
3
+ This extension uses the jquery Gallery View plugin to render a set of images in refinerycms.
4
+
5
+ This gallery works well with the refinerycms-page-images extension, but it does not automatically display
6
+ a gallery of page images. Installing this extension basically does nothing at all unless you
7
+ load the _gallery.html.haml template.
8
+
9
+ This template must be given a local "page" object, but actually this doesn't have to be a
10
+ Refinery::Page, it could be anything that supports a method called "images" that returns
11
+ an array of image objects which in turn can supply a url via "image.thumbnail("570x270#c").url".
12
+
13
+ If you wish to do this with all pages, simply add a call to this _gallery partial in your
14
+ _content_page partial:
15
+
16
+ ```erb
17
+ <%= render 'refinery/jquery_gallery/gallery', :page => @page %>
18
+ ```
19
+
20
+ ## Installation
21
+
22
+ Simply install the gem. There is no generator or migrations.
23
+
24
+ You probably want to add a reference to the stylesheet "refinerycms_jquery_gallery" in your application.css.
25
+
26
+ ## How to build this extension as a gem
27
+
28
+ gem build refinerycms-jquery_gallery.gemspec
29
+ gem install refinerycms-jquery_gallery.gem
30
+
31
+ # Sign up for a http://rubygems.org/ account and publish the gem
32
+ gem push refinerycms-jquery_gallery.gem
33
+
34
+ ## Licence
35
+
36
+ This code us available under the MIT licence. See attached licence file for full details.
37
+
38
+ ## Credits
39
+
40
+ Craig Ambrose
41
+ http://github.com/craigambrose
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: refinerycms-jquery_gallery
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.0'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Craig Ambrose
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: refinerycms-core
16
+ requirement: &70107380546340 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.0.5
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70107380546340
25
+ - !ruby/object:Gem::Dependency
26
+ name: refinerycms-testing
27
+ requirement: &70107380544860 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 2.0.5
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70107380544860
36
+ description: Ruby on Rails Jquery Gallery extension for Refinery CMS
37
+ email:
38
+ - craig@craigambrose.com
39
+ executables: []
40
+ extensions: []
41
+ extra_rdoc_files: []
42
+ files:
43
+ - app/assets/images/gallery_view/btnCarouselNext.gif
44
+ - app/assets/images/gallery_view/btnCarouselPrev.gif
45
+ - app/assets/images/gallery_view/loader.gif
46
+ - app/assets/images/gallery_view/themes/dark/next.gif
47
+ - app/assets/images/gallery_view/themes/dark/panel-nav-next.gif
48
+ - app/assets/images/gallery_view/themes/dark/panel-nav-prev.gif
49
+ - app/assets/images/gallery_view/themes/dark/prev.gif
50
+ - app/assets/images/gallery_view/themes/light/next.gif
51
+ - app/assets/images/gallery_view/themes/light/panel-nav-next.gif
52
+ - app/assets/images/gallery_view/themes/light/panel-nav-prev.gif
53
+ - app/assets/images/gallery_view/themes/light/prev.gif
54
+ - app/assets/javascripts/enable_galleries.js
55
+ - app/assets/javascripts/gallery_view/jquery.galleryview-2.1.1.js
56
+ - app/assets/javascripts/gallery_view/jquery.timers-1.2.js
57
+ - app/assets/javascripts/refinerycms_jquery_gallery.js
58
+ - app/assets/stylesheets/refinerycms_jquery_gallery.css.scss
59
+ - app/views/refinery/jquery_gallery/_gallery.html.haml
60
+ - lib/refinery/jquery_gallery/engine.rb
61
+ - lib/refinery/jquery_gallery.rb
62
+ - lib/refinerycms-jquery_gallery.rb
63
+ - readme.md
64
+ homepage: https://github.com/craigambrose/refinerycms-jquery_gallery
65
+ licenses: []
66
+ post_install_message:
67
+ rdoc_options: []
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ requirements: []
83
+ rubyforge_project:
84
+ rubygems_version: 1.8.17
85
+ signing_key:
86
+ specification_version: 3
87
+ summary: Jquery Gallery extension for Refinery CMS
88
+ test_files: []