spree_multi_slideshow 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +2 -2
- data/app/controllers/spree/admin/slides_controller.rb +8 -8
- data/app/helpers/spree/slideshow_types_helper.rb +1 -1
- data/app/models/spree/slide.rb +31 -9
- data/app/models/spree/slideshow_type.rb +1 -1
- data/app/views/spree/admin/slides/_form.html.erb +3 -1
- data/app/views/spree/admin/slides/edit.html.erb +1 -1
- data/app/views/spree/admin/slides/index.html.erb +1 -1
- data/db/migrate/20120116081431_create_slideshow_types.rb +2 -2
- data/db/migrate/20120116083546_create_slides.rb +3 -3
- metadata +74 -107
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
SpreeMultiSlideshow
|
2
2
|
===================
|
3
3
|
|
4
|
-
Add multiple slideshow for Spree Commerce Shop
|
4
|
+
Add multiple slideshow for Spree Commerce Shop [compatible with Amazon S3]
|
5
5
|
|
6
6
|
|
7
7
|
Basic Installation
|
@@ -9,7 +9,7 @@ Basic Installation
|
|
9
9
|
|
10
10
|
1. Add the following to your Gemfile
|
11
11
|
<pre>
|
12
|
-
gem 'spree_multi_slideshow', '~> 1.0.
|
12
|
+
gem 'spree_multi_slideshow', '~> 1.0.1'
|
13
13
|
</pre>
|
14
14
|
2. Run `bundle install`
|
15
15
|
3. To copy and apply migrations run:
|
@@ -1,28 +1,28 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class SlidesController < ResourceController
|
4
|
-
before_filter :load_data
|
5
|
-
|
6
|
-
def load_data
|
7
|
-
@slideshow_type = Spree::SlideshowType.find(params[:slideshow_type_id])
|
8
|
-
end
|
9
|
-
|
4
|
+
before_filter :load_data, :only => [:index, :new, :show, :edit]
|
5
|
+
|
10
6
|
def update_positions
|
11
7
|
params[:positions].each do |id, index|
|
12
8
|
Spree::Slide.update_all(['position=?', index], ['id=?', id])
|
13
9
|
end
|
14
10
|
|
15
11
|
respond_to do |format|
|
16
|
-
format.html { redirect_to admin_slideshow_type_slides_url(
|
12
|
+
format.html { redirect_to admin_slideshow_type_slides_url(@slideshow_type) }
|
17
13
|
format.js { render :text => 'Ok' }
|
18
14
|
end
|
19
15
|
end
|
20
16
|
|
21
|
-
|
17
|
+
protected
|
22
18
|
|
23
19
|
def location_after_save
|
24
20
|
admin_slideshow_type_slides_url(@slideshow_type)
|
25
21
|
end
|
22
|
+
|
23
|
+
def load_data
|
24
|
+
@slideshow_type = Spree::SlideshowType.find(params[:slideshow_type_id].to_i)
|
25
|
+
end
|
26
26
|
|
27
27
|
end
|
28
28
|
end
|
@@ -23,7 +23,7 @@ module Spree
|
|
23
23
|
slides = Spree::Slide.where("slideshow_type_id = ?", slideshow.first.id).limit(max).sort_by { |slide| slide.position }
|
24
24
|
|
25
25
|
slides.map do |slide|
|
26
|
-
content_tag(:li, raw(link_to(image_tag(slide.
|
26
|
+
content_tag(:li, raw(link_to(image_tag(slide.attachment.url(style.to_sym)), slide.url, { :title => slide.title })) + raw(content_tag(:div, content_tag(:strong, raw(slide.title)) + content_tag(:p, raw(slide.content)), :class => "text-holder")))
|
27
27
|
end.join
|
28
28
|
else
|
29
29
|
false
|
data/app/models/spree/slide.rb
CHANGED
@@ -1,19 +1,20 @@
|
|
1
1
|
module Spree
|
2
2
|
class Slide < ActiveRecord::Base
|
3
|
-
|
4
|
-
|
3
|
+
|
4
|
+
belongs_to :slideshow_type
|
5
5
|
validates_presence_of :slideshow_type_id
|
6
|
-
|
7
|
-
|
6
|
+
|
7
|
+
attr_accessor :attachment_width, :attachment_height
|
8
|
+
|
9
|
+
has_attached_file :attachment,
|
8
10
|
:url => "/spree/slides/:id/:style_:basename.:extension",
|
9
11
|
:path => ":rails_root/public/spree/slides/:id/:style_:basename.:extension",
|
10
|
-
#:default_url => "/missing/:style.jpg",
|
11
12
|
:styles => {
|
12
13
|
:thumbnail => "100x33#",
|
13
14
|
:small => "300x100#",
|
14
15
|
:medium => "600x200#",
|
15
16
|
:slide => "900x300#",
|
16
|
-
:custom =>
|
17
|
+
:custom => lambda {|instance| "#{instance.attachment_width}x#{instance.attachment_height}#"}
|
17
18
|
},
|
18
19
|
:convert_options => {
|
19
20
|
:thumbnail => "-gravity center",
|
@@ -21,10 +22,31 @@ module Spree
|
|
21
22
|
:medium => "-gravity center",
|
22
23
|
:slide => "-gravity center",
|
23
24
|
:custom => "-gravity center"
|
24
|
-
}
|
25
|
-
|
25
|
+
}
|
26
|
+
|
26
27
|
#process_in_background :image UTILE MA OCCORRE ATTIVARE ANCHE LA GEMMA DELAYED-PAPERCLIP
|
27
|
-
|
28
|
+
|
29
|
+
# Load S3 settings
|
30
|
+
if (!YAML.load_file(Rails.root.join('config', 's3.yml'))[Rails.env].blank?)
|
31
|
+
S3_OPTIONS = {
|
32
|
+
:storage => 's3',
|
33
|
+
:s3_credentials => Rails.root.join('config', 's3.yml')
|
34
|
+
}
|
35
|
+
elsif (!ENV['S3_KEY'].blank? && !ENV['S3_SECRET'].blank? && !ENV['S3_BUCKET'].blank?)
|
36
|
+
S3_OPTIONS = {
|
37
|
+
:storage => 's3',
|
38
|
+
:s3_credentials => {
|
39
|
+
:access_key_id => ENV['S3_KEY'],
|
40
|
+
:secret_access_key => ENV['S3_SECRET']
|
41
|
+
},
|
42
|
+
:bucket => ENV['S3_BUCKET']
|
43
|
+
}
|
44
|
+
else
|
45
|
+
S3_OPTIONS = { :storage => 'filesystem' }
|
46
|
+
end
|
47
|
+
|
48
|
+
attachment_definitions[:attachment] = (attachment_definitions[:attachment] || {}).merge(S3_OPTIONS)
|
49
|
+
|
28
50
|
def initialize(*args)
|
29
51
|
super(*args)
|
30
52
|
last_slide = Slide.last
|
@@ -1,7 +1,9 @@
|
|
1
1
|
<%= f.inputs do %>
|
2
2
|
<%= f.input :title %>
|
3
3
|
<%= f.input :url %>
|
4
|
+
<%= f.input :attachment_width, :input_html => { :value => @slideshow_type.slide_width}, :as => :hidden %>
|
5
|
+
<%= f.input :attachment_height, :input_html => { :value => @slideshow_type.slide_height}, :as => :hidden %>
|
4
6
|
<%= f.cktext_area :content, :input_html => { :value => @slide.content }, :label => t("slideshow_type.slide.content") %>
|
5
|
-
<%= f.input :
|
7
|
+
<%= f.input :attachment, :as => :file, :label => I18n.t("slideshow_type.slide.image.one").capitalize, :hint => f.object.attachment.blank? ? f.template.content_tag(:span, "No Image Yet") : f.template.image_tag(f.object.attachment.url(:thumbnail)) %>
|
6
8
|
<%= f.input :slideshow_type_id, :as => :hidden, :value => params[:slideshow_type_id] %>
|
7
9
|
<% end %>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<table class="basic-table" data-hook="edit_image">
|
7
7
|
<tr data-hook="thumbnail">
|
8
8
|
<td><%= t(:thumbnail) %>:</td>
|
9
|
-
<td><%= link_to image_tag(@slide.
|
9
|
+
<td><%= link_to image_tag(@slide.attachment.url(:small)), @slide.attachment.url(:medium) %></td>
|
10
10
|
</tr>
|
11
11
|
<%= render :partial => 'form', :locals => { :f => f } %>
|
12
12
|
</table>
|
@@ -19,7 +19,7 @@
|
|
19
19
|
<tr id="<%= dom_id(slide) %>" data-hook="images_row">
|
20
20
|
<td>
|
21
21
|
<span class="handle"></span>
|
22
|
-
<%= link_to image_tag(slide.
|
22
|
+
<%= link_to image_tag(slide.attachment.url(:thumbnail)), slide.attachment.url(:medium) %>
|
23
23
|
</td>
|
24
24
|
<td><%= slide.title %></td>
|
25
25
|
<td><%= slide.position %></td>
|
@@ -2,11 +2,11 @@ class CreateSlideshowTypes < ActiveRecord::Migration
|
|
2
2
|
def change
|
3
3
|
create_table :slideshow_types do |t|
|
4
4
|
t.string :category
|
5
|
-
t.boolean :enabled, :default =>
|
5
|
+
t.boolean :enabled, :default => false
|
6
6
|
t.integer :slide_height, :default => 400
|
7
7
|
t.integer :slide_width, :default => 900
|
8
8
|
t.integer :slide_number, :default => 4
|
9
|
-
t.boolean :enable_navigation, :default =>
|
9
|
+
t.boolean :enable_navigation, :default => true
|
10
10
|
|
11
11
|
t.timestamps
|
12
12
|
end
|
@@ -4,9 +4,9 @@ class CreateSlides < ActiveRecord::Migration
|
|
4
4
|
t.string :title, :url
|
5
5
|
t.text :content
|
6
6
|
|
7
|
-
t.string :
|
8
|
-
t.datetime :
|
9
|
-
t.integer :
|
7
|
+
t.string :attachment_content_type, :attachment_file_name, :attachment_content_type
|
8
|
+
t.datetime :attachment_updated_at
|
9
|
+
t.integer :attachment_size, :position
|
10
10
|
t.string :type, :limit => 75
|
11
11
|
|
12
12
|
t.references :slideshow_type
|
metadata
CHANGED
@@ -1,121 +1,99 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_multi_slideshow
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 0
|
10
|
-
version: 1.0.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Damiano Giacomello
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-04-16 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: spree_core
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70353872815020 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :runtime
|
33
|
-
|
34
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70353872815020
|
25
|
+
- !ruby/object:Gem::Dependency
|
35
26
|
name: spree_auth
|
27
|
+
requirement: &70353872812420 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
36
34
|
prerelease: false
|
37
|
-
|
35
|
+
version_requirements: *70353872812420
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: aws-sdk
|
38
|
+
requirement: &70353872810580 !ruby/object:Gem::Requirement
|
38
39
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.3.4
|
46
44
|
type: :runtime
|
47
|
-
version_requirements: *id002
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: formtastic
|
50
45
|
prerelease: false
|
51
|
-
|
46
|
+
version_requirements: *70353872810580
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: formtastic
|
49
|
+
requirement: &70353872810040 !ruby/object:Gem::Requirement
|
52
50
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
version: "0"
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
60
55
|
type: :runtime
|
61
|
-
version_requirements: *id003
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: paperclip
|
64
56
|
prerelease: false
|
65
|
-
|
57
|
+
version_requirements: *70353872810040
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: paperclip
|
60
|
+
requirement: &70353872809440 !ruby/object:Gem::Requirement
|
66
61
|
none: false
|
67
|
-
requirements:
|
68
|
-
- -
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
hash: 27
|
71
|
-
segments:
|
72
|
-
- 2
|
73
|
-
- 5
|
74
|
-
- 0
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
75
65
|
version: 2.5.0
|
76
66
|
type: :runtime
|
77
|
-
version_requirements: *id004
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: ckeditor
|
80
67
|
prerelease: false
|
81
|
-
|
68
|
+
version_requirements: *70353872809440
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: ckeditor
|
71
|
+
requirement: &70353872808520 !ruby/object:Gem::Requirement
|
82
72
|
none: false
|
83
|
-
requirements:
|
84
|
-
- -
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
hash: 15424003
|
87
|
-
segments:
|
88
|
-
- 3
|
89
|
-
- 7
|
90
|
-
- 0
|
91
|
-
- rc
|
92
|
-
- 3
|
73
|
+
requirements:
|
74
|
+
- - =
|
75
|
+
- !ruby/object:Gem::Version
|
93
76
|
version: 3.7.0.rc3
|
94
77
|
type: :runtime
|
95
|
-
version_requirements: *id005
|
96
|
-
- !ruby/object:Gem::Dependency
|
97
|
-
name: rspec-rails
|
98
78
|
prerelease: false
|
99
|
-
|
79
|
+
version_requirements: *70353872808520
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: rspec-rails
|
82
|
+
requirement: &70353872808020 !ruby/object:Gem::Requirement
|
100
83
|
none: false
|
101
|
-
requirements:
|
102
|
-
- -
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
|
105
|
-
segments:
|
106
|
-
- 0
|
107
|
-
version: "0"
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
108
88
|
type: :development
|
109
|
-
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *70353872808020
|
110
91
|
description:
|
111
92
|
email: damiano.giacomello@diginess.it
|
112
93
|
executables: []
|
113
|
-
|
114
94
|
extensions: []
|
115
|
-
|
116
95
|
extra_rdoc_files: []
|
117
|
-
|
118
|
-
files:
|
96
|
+
files:
|
119
97
|
- README.md
|
120
98
|
- LICENSE
|
121
99
|
- lib/generators/spree_multi_slideshow/install/install_generator.rb
|
@@ -156,33 +134,23 @@ files:
|
|
156
134
|
- config/routes.rb
|
157
135
|
homepage:
|
158
136
|
licenses: []
|
159
|
-
|
160
137
|
post_install_message:
|
161
138
|
rdoc_options: []
|
162
|
-
|
163
|
-
require_paths:
|
139
|
+
require_paths:
|
164
140
|
- lib
|
165
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
166
142
|
none: false
|
167
|
-
requirements:
|
168
|
-
- -
|
169
|
-
- !ruby/object:Gem::Version
|
170
|
-
hash: 57
|
171
|
-
segments:
|
172
|
-
- 1
|
173
|
-
- 8
|
174
|
-
- 7
|
143
|
+
requirements:
|
144
|
+
- - ! '>='
|
145
|
+
- !ruby/object:Gem::Version
|
175
146
|
version: 1.8.7
|
176
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
148
|
none: false
|
178
|
-
requirements:
|
179
|
-
- -
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
|
182
|
-
|
183
|
-
- 0
|
184
|
-
version: "0"
|
185
|
-
requirements:
|
149
|
+
requirements:
|
150
|
+
- - ! '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
requirements:
|
186
154
|
- none
|
187
155
|
rubyforge_project:
|
188
156
|
rubygems_version: 1.8.10
|
@@ -190,4 +158,3 @@ signing_key:
|
|
190
158
|
specification_version: 3
|
191
159
|
summary: Extension to manage multi slideshow for Spree Shop
|
192
160
|
test_files: []
|
193
|
-
|