spree_multi_slideshow 1.1.3 → 1.1.4
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 +1 -1
- data/app/assets/javascripts/admin/slide_settings.js +31 -0
- data/app/assets/javascripts/admin/spree_multi_slideshow.js +1 -2
- data/app/assets/stylesheets/store/spree_multi_slideshow.css +0 -4
- data/app/controllers/spree/admin/slide_settings_controller.rb +51 -0
- data/app/controllers/spree/admin/slides_controller.rb +2 -4
- data/app/helpers/spree/slideshow_types_helper.rb +5 -4
- data/app/models/spree/app_configuration_decorator.rb +8 -0
- data/app/models/spree/slide.rb +45 -26
- data/app/models/spree/slideshow_type.rb +4 -5
- data/app/overrides/slideshow_type_admin_tab.rb +6 -1
- data/app/views/spree/admin/shared/_slide_setting_configurations_menu.html.erb +4 -0
- data/app/views/spree/admin/shared/_slideshow_type_tabs.html.erb +1 -1
- data/app/views/spree/admin/slide_settings/edit.html.erb +48 -0
- data/app/views/spree/admin/slide_settings/show.html.erb +10 -0
- data/app/views/spree/admin/slides/_form.html.erb +22 -9
- data/app/views/spree/admin/slides/edit.html.erb +2 -2
- data/app/views/spree/admin/slides/index.html.erb +2 -2
- data/app/views/spree/admin/slideshow_types/_form.html.erb +3 -21
- data/app/views/spree/admin/slideshow_types/edit.html.erb +1 -1
- data/app/views/spree/admin/slideshow_types/index.html.erb +2 -2
- data/app/views/spree/admin/slideshow_types/new.html.erb +4 -22
- data/app/views/spree/admin/slideshow_types/new.js.erb +1 -1
- data/config/routes.rb +1 -0
- data/db/migrate/20120116081431_create_slideshow_types.rb +0 -3
- data/db/migrate/20120116083546_create_slides.rb +0 -1
- data/db/migrate/20130226082756_add_enable_to_slide.rb +8 -0
- data/lib/generators/spree_multi_slideshow/install/install_generator.rb +2 -13
- data/lib/spree_multi_slideshow.rb +0 -2
- metadata +11 -38
- data/app/assets/stylesheets/admin/spree_multi_slideshow.css +0 -17
- data/app/helpers/spree/slides_helper.rb +0 -4
data/README.md
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
$(document).ready(function() {
|
2
|
+
|
3
|
+
$('.destroy_slide_style').on("click", function() {
|
4
|
+
$(this).parent().remove();
|
5
|
+
});
|
6
|
+
|
7
|
+
// Handle adding new styles
|
8
|
+
var styles_hash_index = 1;
|
9
|
+
$('.add_slide_style').click(function() {
|
10
|
+
$('#styles_list').append(generate_html_for_hash("new_slide_styles", styles_hash_index));
|
11
|
+
});
|
12
|
+
|
13
|
+
// Generates html for new paperclip styles form fields
|
14
|
+
generate_html_for_hash = function(hash_name, index) {
|
15
|
+
var html = '<li>';
|
16
|
+
html += '<label for="' + hash_name + '_' + index + '_name">';
|
17
|
+
html += 'Name</label>';
|
18
|
+
html += '<input id="' + hash_name + '_' + index + '_name" name="' + hash_name + '[' + index + '][name]" type="text">';
|
19
|
+
html += '<label for="' + hash_name + '_' + index + '_value">';
|
20
|
+
html += 'Value</label>';
|
21
|
+
html += '<input id="' + hash_name + '_' + index + '_value" name="' + hash_name + '[' + index + '][value]" type="text">';
|
22
|
+
html += '<a href="#" alt="Destroy" class="destroy_style"> x</a>';
|
23
|
+
html += '</li>';
|
24
|
+
|
25
|
+
index += 1;
|
26
|
+
return html;
|
27
|
+
};
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
});
|
@@ -1,2 +1 @@
|
|
1
|
-
//= require admin/
|
2
|
-
//= require ckeditor/init
|
1
|
+
//= require admin/slide_settings
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Spree
|
2
|
+
module Admin
|
3
|
+
class SlideSettingsController < Spree::Admin::BaseController
|
4
|
+
def show
|
5
|
+
styles = ActiveSupport::JSON.decode(Spree::Config[:slide_styles])
|
6
|
+
@styles_list = styles.collect { |k, v| k }.join(", ")
|
7
|
+
end
|
8
|
+
|
9
|
+
def edit
|
10
|
+
@styles = ActiveSupport::JSON.decode(Spree::Config[:slide_styles])
|
11
|
+
@headers = ActiveSupport::JSON.decode(Spree::Config[:s3_headers])
|
12
|
+
end
|
13
|
+
|
14
|
+
def update
|
15
|
+
update_styles(params)
|
16
|
+
|
17
|
+
Spree::Config.set(params[:preferences])
|
18
|
+
update_paperclip_settings
|
19
|
+
|
20
|
+
respond_to do |format|
|
21
|
+
format.html {
|
22
|
+
flash[:notice] = t(:slide_settings_updated)
|
23
|
+
redirect_to admin_slide_settings_path
|
24
|
+
}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def update_styles(params)
|
32
|
+
params[:new_slide_styles].each do |index, style|
|
33
|
+
params[:slide_styles][style[:name]] = style[:value] unless style[:value].empty?
|
34
|
+
end if params[:new_slide_styles].present?
|
35
|
+
|
36
|
+
styles = params[:slide_styles]
|
37
|
+
|
38
|
+
Spree::Config[:slide_styles] = ActiveSupport::JSON.encode(styles) unless styles.nil?
|
39
|
+
end
|
40
|
+
|
41
|
+
def update_paperclip_settings
|
42
|
+
|
43
|
+
Spree::Slide.attachment_definitions[:attachment][:styles] = ActiveSupport::JSON.decode(Spree::Config[:slide_styles])
|
44
|
+
Spree::Slide.attachment_definitions[:attachment][:path] = Spree::Config[:slide_path]
|
45
|
+
Spree::Slide.attachment_definitions[:attachment][:default_url] = Spree::Config[:slide_default_url]
|
46
|
+
Spree::Slide.attachment_definitions[:attachment][:default_style] = Spree::Config[:slide_default_style]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
@@ -5,24 +5,22 @@ module Spree
|
|
5
5
|
|
6
6
|
def update_positions
|
7
7
|
params[:positions].each do |id, index|
|
8
|
-
Spree::Slide.update_all(
|
8
|
+
Spree::Slide.where(:id => id).update_all(:position => index)
|
9
9
|
end
|
10
10
|
|
11
11
|
respond_to do |format|
|
12
|
-
format.html { redirect_to admin_slideshow_type_slides_url(@slideshow_type) }
|
13
12
|
format.js { render :text => 'Ok' }
|
14
13
|
end
|
15
14
|
end
|
16
15
|
|
17
16
|
protected
|
18
17
|
def location_after_save
|
19
|
-
|
18
|
+
admin_slideshow_type_slides_url(@slideshow_type)
|
20
19
|
end
|
21
20
|
|
22
21
|
def load_data
|
23
22
|
@slideshow_type = Spree::SlideshowType.find(params[:slideshow_type_id])
|
24
23
|
end
|
25
|
-
|
26
24
|
end
|
27
25
|
end
|
28
26
|
end
|
@@ -7,7 +7,8 @@ module Spree
|
|
7
7
|
params[:id] ||= "slides"
|
8
8
|
params[:class] ||= "my_slide"
|
9
9
|
params[:category] ||= "home"
|
10
|
-
|
10
|
+
logger.info("#{params[:category]}")
|
11
|
+
@@slideshow = Spree::SlideshowType.enable(params[:category]).try(:first)
|
11
12
|
if @@slideshow.blank? || (!@@slideshow.blank? && @@slideshow.slides.empty?)
|
12
13
|
return ''
|
13
14
|
end
|
@@ -33,10 +34,10 @@ module Spree
|
|
33
34
|
end
|
34
35
|
|
35
36
|
def slide_images(params, slideshow)
|
36
|
-
params[:style] ||= "
|
37
|
+
params[:style] ||= "medium"
|
37
38
|
params[:show_content] ||= false
|
38
|
-
max = slideshow.
|
39
|
-
slides = slideshow.slides.limit(max).sort_by { |slide| slide.position }
|
39
|
+
max = slideshow.slides.enable.count
|
40
|
+
slides = slideshow.slides.enable.limit(max).sort_by { |slide| slide.position }
|
40
41
|
|
41
42
|
slides.map do |slide|
|
42
43
|
content_tag(:div, :class => "slide_list") do
|
@@ -0,0 +1,8 @@
|
|
1
|
+
Spree::AppConfiguration.class_eval do
|
2
|
+
# Preferences related to slide settings
|
3
|
+
preference :slide_default_url, :string, :default => '/spree/slides/:id/:style/:basename.:extension'
|
4
|
+
preference :slide_path, :string, :default => ':rails_root/public/spree/slides/:id/:style/:basename.:extension'
|
5
|
+
preference :slide_url, :string, :default => '/spree/slides/:id/:style/:basename.:extension'
|
6
|
+
preference :slide_styles, :string, :default => "{\"mini\":\"100x33#\",\"small\":\"300x100#\",\"medium\":\"600x200#\",\"large\":\"900x300#\"}"
|
7
|
+
preference :slide_default_style, :string, :default => 'medium'
|
8
|
+
end
|
data/app/models/spree/slide.rb
CHANGED
@@ -1,27 +1,28 @@
|
|
1
1
|
module Spree
|
2
2
|
class Slide < ActiveRecord::Base
|
3
3
|
belongs_to :slideshow_type
|
4
|
+
validate :no_attachment_errors
|
4
5
|
|
5
6
|
attr_accessor :attachment_width, :attachment_height
|
6
|
-
attr_accessible :title, :url, :attachment_width, :attachment_height, :content, :slideshow_type_id, :attachment
|
7
|
+
attr_accessible :title, :url, :attachment_width, :attachment_height, :content, :slideshow_type_id, :attachment, :enable
|
7
8
|
|
8
9
|
has_attached_file :attachment,
|
9
10
|
:url => "/spree/slides/:id/:style_:basename.:extension",
|
10
11
|
:path => ":rails_root/public/spree/slides/:id/:style_:basename.:extension",
|
11
12
|
:styles => lambda {|a|
|
12
13
|
{
|
13
|
-
:
|
14
|
+
:mini => "100x33#",
|
14
15
|
:small => "300x100#",
|
15
16
|
:medium => "600x200#",
|
16
|
-
:
|
17
|
+
:large => "900x300#",
|
17
18
|
:custom => "#{a.instance.attachment_width}x#{a.instance.attachment_height}#"
|
18
19
|
}
|
19
20
|
},
|
20
21
|
:convert_options => {
|
21
|
-
:
|
22
|
+
:mini => "-gravity center",
|
22
23
|
:small => "-gravity center",
|
23
24
|
:medium => "-gravity center",
|
24
|
-
:
|
25
|
+
:large => "-gravity center",
|
25
26
|
:custom => "-gravity center"
|
26
27
|
}
|
27
28
|
|
@@ -30,33 +31,51 @@ module Spree
|
|
30
31
|
validates_attachment_content_type :attachment, :content_type => ['image/jpeg', 'image/png', 'image/gif', 'image/jpg', 'image/x-png', 'image/pjpeg'], :message => "deve essere JPG, JPEG, PNG o GIF"
|
31
32
|
|
32
33
|
default_scope order("position ASC")
|
34
|
+
scope :enable, {:conditions => {:enabled => true}}
|
35
|
+
after_post_process :find_dimensions
|
33
36
|
|
34
|
-
# Load
|
35
|
-
if
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
:s3_credentials => {
|
44
|
-
:access_key_id => ENV['S3_KEY'],
|
45
|
-
:secret_access_key => ENV['S3_SECRET']
|
46
|
-
},
|
47
|
-
:bucket => ENV['S3_BUCKET']
|
48
|
-
}
|
49
|
-
else
|
50
|
-
S3_OPTIONS = { :storage => 'filesystem' }
|
37
|
+
# Load user defined paperclip settings
|
38
|
+
if Spree::Config[:use_s3]
|
39
|
+
s3_creds = { :access_key_id => Spree::Config[:s3_access_key], :secret_access_key => Spree::Config[:s3_secret], :bucket => Spree::Config[:s3_bucket] }
|
40
|
+
Spree::Slide.attachment_definitions[:attachment][:storage] = :s3
|
41
|
+
Spree::Slide.attachment_definitions[:attachment][:s3_credentials] = s3_creds
|
42
|
+
Spree::Slide.attachment_definitions[:attachment][:s3_headers] = ActiveSupport::JSON.decode(Spree::Config[:s3_headers])
|
43
|
+
Spree::Slide.attachment_definitions[:attachment][:bucket] = Spree::Config[:s3_bucket]
|
44
|
+
Spree::Slide.attachment_definitions[:attachment][:s3_protocol] = Spree::Config[:s3_protocol] unless Spree::Config[:s3_protocol].blank?
|
45
|
+
Spree::Slide.attachment_definitions[:attachment][:s3_host_alias] = Spree::Config[:s3_host_alias] unless Spree::Config[:s3_host_alias].blank?
|
51
46
|
end
|
52
|
-
|
53
|
-
attachment_definitions[:attachment] = (
|
47
|
+
|
48
|
+
Spree::Slide.attachment_definitions[:attachment][:styles] = ActiveSupport::JSON.decode(Spree::Config[:slide_styles])
|
49
|
+
Spree::Slide.attachment_definitions[:attachment][:path] = Spree::Config[:slide_path]
|
50
|
+
Spree::Slide.attachment_definitions[:attachment][:url] = Spree::Config[:slide_url]
|
51
|
+
Spree::Slide.attachment_definitions[:attachment][:default_url] = Spree::Config[:slide_default_url]
|
52
|
+
Spree::Slide.attachment_definitions[:attachment][:default_style] = Spree::Config[:slide_default_style]
|
54
53
|
|
55
54
|
def initialize(*args)
|
56
55
|
super(*args)
|
57
|
-
last_slide = Slide.last
|
56
|
+
last_slide = Spree::Slide.last
|
58
57
|
self.position = last_slide ? last_slide.position + 1 : 0
|
59
58
|
end
|
60
|
-
|
59
|
+
|
60
|
+
def find_dimensions
|
61
|
+
if self.attachment_width.blank? && self.attachment_height.blank?
|
62
|
+
temporary = attachment.queued_for_write[:original]
|
63
|
+
filename = temporary.path unless temporary.nil?
|
64
|
+
filename = attachment.path if filename.blank?
|
65
|
+
geometry = Paperclip::Geometry.from_file(filename)
|
66
|
+
self.attachment_width = geometry.width
|
67
|
+
self.attachment_height = geometry.height
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# if there are errors from the plugin, then add a more meaningful message
|
72
|
+
def no_attachment_errors
|
73
|
+
unless attachment.errors.empty?
|
74
|
+
# uncomment this to get rid of the less-than-useful interrim messages
|
75
|
+
# errors.clear
|
76
|
+
errors.add :attachment, "Paperclip returned errors for file '#{attachment_file_name}' - check ImageMagick installation or image source file."
|
77
|
+
false
|
78
|
+
end
|
79
|
+
end
|
61
80
|
end
|
62
81
|
end
|
@@ -2,12 +2,11 @@ module Spree
|
|
2
2
|
class SlideshowType < ActiveRecord::Base
|
3
3
|
has_many :slides
|
4
4
|
|
5
|
-
attr_accessible :category, :
|
5
|
+
attr_accessible :category, :enable_navigation, :enabled, :enable_pagination
|
6
6
|
|
7
|
-
validates :
|
7
|
+
validates :category, :presence => true
|
8
8
|
validates_uniqueness_of :category
|
9
|
-
|
10
|
-
|
11
|
-
scope :enable, where("enabled IS NOT NULL AND enabled = 1")
|
9
|
+
|
10
|
+
scope :enable, lambda { |category| {:conditions => {:enabled => true, :category => category}} }
|
12
11
|
end
|
13
12
|
end
|
@@ -1,4 +1,9 @@
|
|
1
1
|
Deface::Override.new(:virtual_path => "spree/layouts/admin",
|
2
2
|
:name => "slideshow_type_admin_tab",
|
3
3
|
:insert_bottom => "[data-hook='admin_tabs']",
|
4
|
-
:text => "<%= tab(:slideshow_types) %>")
|
4
|
+
:text => "<%= tab(:slideshow_types) %>")
|
5
|
+
|
6
|
+
Deface::Override.new(:virtual_path => "spree/admin/configurations/index",
|
7
|
+
:name => "add_slide_setting_to_configuration_menu",
|
8
|
+
:insert_bottom => "[data-hook='admin_configurations_menu']",
|
9
|
+
:partial => "spree/admin/shared/slide_setting_configurations_menu")
|
@@ -9,7 +9,7 @@
|
|
9
9
|
<li<%== ' class="active"' if current == 'Slideshow_type Details' %>>
|
10
10
|
<%= link_to t(:slideshow_type_details), edit_admin_slideshow_type_url(@slideshow_type) %>
|
11
11
|
</li>
|
12
|
-
<li<%== ' class="active"' if current == '
|
12
|
+
<li<%== ' class="active"' if current == 'Slides' %>>
|
13
13
|
<%= link_to t(:slides), admin_slideshow_type_slides_path(@slideshow_type) %>
|
14
14
|
</li>
|
15
15
|
</ul>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
<%= render :partial => 'spree/admin/shared/configuration_menu' %>
|
2
|
+
|
3
|
+
<h1><%= t(:slide_settings) %></h1>
|
4
|
+
|
5
|
+
<p><span class="warning"><%= t(:slide_settings_warning) %></span></p>
|
6
|
+
|
7
|
+
<%= form_tag admin_slide_settings_path, :method => :put do %>
|
8
|
+
|
9
|
+
<p data-hook="slide_path">
|
10
|
+
<label>
|
11
|
+
<%= label_tag 'preferences[slide_path]', t(:slide_path) %>
|
12
|
+
<%= preference_field_tag 'preferences[slide_path]', Spree::Config[:slide_path], :type => :string %>
|
13
|
+
</label>
|
14
|
+
</p>
|
15
|
+
|
16
|
+
<p data-hook="slide_default_url">
|
17
|
+
<label>
|
18
|
+
<%= label_tag 'preferences[slide_default_url]', t(:slide_default_url) %>
|
19
|
+
<%= preference_field_tag 'preferences[slide_default_url]', Spree::Config[:slide_default_url], :type => :string %>
|
20
|
+
</label>
|
21
|
+
</p>
|
22
|
+
|
23
|
+
<p data-hook="slide_default_style">
|
24
|
+
<label>
|
25
|
+
<%= label_tag 'preferences[slide_default_style]', t(:slide_default_style) %>
|
26
|
+
<%= collection_select 'preferences', 'slide_default_style', @styles, :first, :first, {:selected => Spree::Config[:slide_default_style] } %>
|
27
|
+
</label>
|
28
|
+
</p>
|
29
|
+
|
30
|
+
<div id="slide_styles" data-hook="slide_styles">
|
31
|
+
<h2><%= t(:slide_styles) %></h2>
|
32
|
+
<ul id="styles_list">
|
33
|
+
<% @styles.each do |style_name, style_value| %>
|
34
|
+
<li>
|
35
|
+
<%= label_tag "slide_styles[#{style_name}]", style_name %>
|
36
|
+
<%= text_field_tag "slide_styles[#{style_name}]", style_value %>
|
37
|
+
<a href="#" alt="Destroy" class="destroy_slide_style">x</a>
|
38
|
+
</li>
|
39
|
+
<% end %>
|
40
|
+
</ul>
|
41
|
+
<p><a href="#" alt="Add Style" class="add_slide_style"><%= t(:add_new_style) %></a></p>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<p class="form-buttons" data-hook="buttons">
|
45
|
+
<%= button t(:update) %>
|
46
|
+
</p>
|
47
|
+
|
48
|
+
<% end %>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<%= render :partial => 'spree/admin/shared/configuration_menu' %>
|
2
|
+
|
3
|
+
<h1><%= t(:slide_settings) %></h1>
|
4
|
+
|
5
|
+
<h4><%= t(:slide_path) %>: <%= Spree::Config[:slide_path] %></h4>
|
6
|
+
<h4><%= t(:slide_default_url) %>: <%= Spree::Config[:slide_default_url] %></h4>
|
7
|
+
<h4><%= t(:slide_default_style) %>: <%= Spree::Config[:slide_default_style] %></h4>
|
8
|
+
<h4><%= t(:defined_paperclip_styles) %>: <%= @styles_list %></h4>
|
9
|
+
|
10
|
+
<%= link_to_with_icon 'edit', t(:edit), edit_admin_slide_settings_path, :id => 'admin_slide_settings_link' %>
|
@@ -1,9 +1,22 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
1
|
+
<div data-hook="admin_slide_form_fields">
|
2
|
+
<tr data-hook="file">
|
3
|
+
<td><%= t(:filename) %>:</td>
|
4
|
+
<td><%= f.file_field :attachment %></td>
|
5
|
+
</tr>
|
6
|
+
<tr data-hook="title">
|
7
|
+
<td><%= t(:title) %>:</td>
|
8
|
+
<td><%= f.text_field :title %></td>
|
9
|
+
</tr>
|
10
|
+
<tr data-hook="url">
|
11
|
+
<td><%= t(:url) %>:</td>
|
12
|
+
<td><%= f.text_field :url %></td>
|
13
|
+
</tr>
|
14
|
+
<tr data-hook="content">
|
15
|
+
<td><%= t(:content) %>:</td>
|
16
|
+
<td><%= f.text_area :content %></td>
|
17
|
+
</tr>
|
18
|
+
<tr data-hook="enable">
|
19
|
+
<td><%= t(:enable) %>:</td>
|
20
|
+
<td><%= f.check_box :enable %></td>
|
21
|
+
</tr>
|
22
|
+
</div>
|
@@ -1,5 +1,5 @@
|
|
1
|
-
<%= render :partial => 'spree/admin/shared/slideshow_type_tabs', :locals => {:current => '
|
2
|
-
|
1
|
+
<%= render :partial => 'spree/admin/shared/slideshow_type_tabs', :locals => {:current => 'Slides'} %>
|
2
|
+
|
3
3
|
<%= render 'spree/shared/error_messages', :target => @slide %>
|
4
4
|
|
5
5
|
<%= form_for [:admin, @slideshow_type, @slide], :html => { :multipart => true } do |f| %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<%= render :partial => 'spree/admin/shared/slideshow_type_tabs', :locals => {:current => '
|
1
|
+
<%= render :partial => 'spree/admin/shared/slideshow_type_tabs', :locals => {:current => 'Slides'} %>
|
2
2
|
|
3
3
|
<table class="index sortable" data-hook="slide_table" data-sortable-link="<%= update_positions_admin_slideshow_type_slides_url(@slideshow_type) %>">
|
4
4
|
<tr data-hook="images_header">
|
@@ -13,7 +13,7 @@
|
|
13
13
|
<tr id="<%= spree_dom_id slide %>" data-hook="images_row">
|
14
14
|
<td>
|
15
15
|
<span class="handle"></span>
|
16
|
-
<%= link_to image_tag(slide.attachment.url(:
|
16
|
+
<%= link_to image_tag(slide.attachment.url(:mini)), slide.attachment.url(:medium) %>
|
17
17
|
</td>
|
18
18
|
<td><%= slide.title %></td>
|
19
19
|
<td><%= slide.url %></td>
|
@@ -1,37 +1,19 @@
|
|
1
1
|
<div data-hook="admin_slideshow_form_fields">
|
2
2
|
<div class="clearfix">
|
3
|
-
<div class="left" data-hook="
|
3
|
+
<div class="left" data-hook="admin_slideshow_form_left">
|
4
4
|
<%= f.field_container :category do %>
|
5
5
|
<%= f.label :category, t(:category) %> <span class="required">*</span><br />
|
6
6
|
<%= f.text_field :category, :class => 'fullwidth title' %>
|
7
7
|
<%= f.error_message_on :category %>
|
8
8
|
<% end %>
|
9
9
|
|
10
|
-
<%= f.field_container :slide_width do %>
|
11
|
-
<%= f.label :slide_width, t(:slide_width) %> <span class="required">*</span><br />
|
12
|
-
<%= f.text_field :slide_width, :class => 'fullwidth title' %>
|
13
|
-
<%= f.error_message_on :slide_width %>
|
14
|
-
<% end %>
|
15
|
-
|
16
|
-
<%= f.field_container :slide_height do %>
|
17
|
-
<%= f.label :slide_height, t(:slide_height) %><br />
|
18
|
-
<%= f.text_field :slide_height, :class => 'fullwidth title' %>
|
19
|
-
<%= f.error_message_on :slide_height %>
|
20
|
-
<% end %>
|
21
|
-
</div>
|
22
|
-
<div class="right" data-hook="admin_product_form_right">
|
23
|
-
<%= f.field_container :slide_number do %>
|
24
|
-
<%= f.label :slide_number, t(:slide_number) %> <span class="required">*</span><br />
|
25
|
-
<%= f.text_field :slide_number, :class => 'fullwidth title' %>
|
26
|
-
<%= f.error_message_on :slide_number %>
|
27
|
-
<% end %>
|
28
|
-
|
29
10
|
<%= f.field_container :enable_navigation do %>
|
30
11
|
<%= f.label :enable_navigation, t(:enable_navigation) %><br />
|
31
12
|
<%= f.check_box :enable_navigation %>
|
32
13
|
<%= f.error_message_on :enable_navigation %>
|
33
14
|
<% end %>
|
34
|
-
|
15
|
+
</div>
|
16
|
+
<div class="right" data-hook="admin_slideshow_form_right">
|
35
17
|
<%= f.field_container :enable_pagination do %>
|
36
18
|
<%= f.label :enable_pagination, t(:enable_pagination) %><br />
|
37
19
|
<%= f.check_box :enable_pagination %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%= render :partial => 'spree/admin/shared/slideshow_type_tabs', :locals => { :current => 'Slideshow_type Details' } %>
|
2
|
-
<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @
|
2
|
+
<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @slideshow_type } %>
|
3
3
|
|
4
4
|
<%= form_for([:admin, @slideshow_type], :html => { :multipart => true }) do |f| %>
|
5
5
|
<%= render :partial => 'form', :locals => { :f => f } %>
|
@@ -12,7 +12,7 @@
|
|
12
12
|
<div id="new_slideshow" data-hook></div>
|
13
13
|
|
14
14
|
<table class="index" id="listing_products">
|
15
|
-
<tr data-hook="
|
15
|
+
<tr data-hook="admin_slideshows_index_headers">
|
16
16
|
<th><%= t(:category) %></th>
|
17
17
|
<th><%= t(:enable) %></th>
|
18
18
|
<th><%= t(:slide_number) %></th>
|
@@ -23,7 +23,7 @@
|
|
23
23
|
<td><%= slideshow_type.category %></td>
|
24
24
|
<td><%= icon('tick') if slideshow_type.enabled %></td>
|
25
25
|
<td><%= slideshow_type.slide_number %></td>
|
26
|
-
<td class="actions" data-hook="
|
26
|
+
<td class="actions" data-hook="admin_slideshows_index_row_actions">
|
27
27
|
<%= link_to_edit slideshow_type, :class => 'edit' %>
|
28
28
|
|
29
29
|
<%= link_to_delete slideshow_type %>
|
@@ -2,39 +2,21 @@
|
|
2
2
|
|
3
3
|
<%= form_for [:admin, @slideshow_type], :html => { :multipart => true } do |f| %>
|
4
4
|
<fieldset data-hook="new_slideshow_type">
|
5
|
-
<div class="clearfix" data-hook="
|
5
|
+
<div class="clearfix" data-hook="new_slideshow_type_attrs">
|
6
6
|
<div class="left">
|
7
7
|
<%= f.field_container :category do %>
|
8
8
|
<%= f.label :category, t(:category) %> <span class="required">*</span><br />
|
9
9
|
<%= f.text_field :category, :class => 'fullwidth title' %>
|
10
10
|
<%= f.error_message_on :category %>
|
11
11
|
<% end %>
|
12
|
-
|
13
|
-
<%= f.field_container :slide_width do %>
|
14
|
-
<%= f.label :slide_width, t(:slide_width) %> <span class="required">*</span><br />
|
15
|
-
<%= f.text_field :slide_width, :class => 'fullwidth title' %>
|
16
|
-
<%= f.error_message_on :slide_width %>
|
17
|
-
<% end %>
|
18
|
-
|
19
|
-
<%= f.field_container :slide_height do %>
|
20
|
-
<%= f.label :slide_height, t(:slide_height) %><br />
|
21
|
-
<%= f.text_field :slide_height, :class => 'fullwidth title' %>
|
22
|
-
<%= f.error_message_on :slide_height %>
|
23
|
-
<% end %>
|
24
|
-
</div>
|
25
|
-
<div class="right">
|
26
|
-
<%= f.field_container :slide_number do %>
|
27
|
-
<%= f.label :slide_number, t(:slide_number) %> <span class="required">*</span><br />
|
28
|
-
<%= f.text_field :slide_number, :class => 'fullwidth title' %>
|
29
|
-
<%= f.error_message_on :slide_number %>
|
30
|
-
<% end %>
|
31
|
-
|
12
|
+
|
32
13
|
<%= f.field_container :enable_navigation do %>
|
33
14
|
<%= f.label :enable_navigation, t(:enable_navigation) %><br />
|
34
15
|
<%= f.check_box :enable_navigation %>
|
35
16
|
<%= f.error_message_on :enable_navigation %>
|
36
17
|
<% end %>
|
37
|
-
|
18
|
+
</div>
|
19
|
+
<div class="right">
|
38
20
|
<%= f.field_container :enable_pagination do %>
|
39
21
|
<%= f.label :enable_pagination, t(:enable_pagination) %><br />
|
40
22
|
<%= f.check_box :enable_pagination %>
|
@@ -1,2 +1,2 @@
|
|
1
1
|
$("#new_slideshow").html('<%= escape_javascript(render :template => "spree/admin/slideshow_types/new", :formats => [:html], :handlers => [:erb]) %>');
|
2
|
-
$("#admin_new_slideshow").parent().hide();
|
2
|
+
$("#admin_new_slideshow").parent().hide();
|
data/config/routes.rb
CHANGED
@@ -3,9 +3,6 @@ class CreateSlideshowTypes < ActiveRecord::Migration
|
|
3
3
|
create_table :slideshow_types do |t|
|
4
4
|
t.string :category
|
5
5
|
t.boolean :enabled, :default => false
|
6
|
-
t.integer :slide_height, :default => 400
|
7
|
-
t.integer :slide_width, :default => 900
|
8
|
-
t.integer :slide_number, :default => 4
|
9
6
|
t.boolean :enable_navigation, :default => false
|
10
7
|
|
11
8
|
t.timestamps
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class AddEnableToSlide < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
add_column :spree_slides, :enable, :boolean, :default => true, :after => :content
|
4
|
+
remove_column :spree_slideshow_types, :slide_number
|
5
|
+
remove_column :spree_slideshow_types, :slide_width
|
6
|
+
remove_column :spree_slideshow_types, :slide_height
|
7
|
+
end
|
8
|
+
end
|
@@ -4,12 +4,11 @@ module SpreeMultiSlideshow
|
|
4
4
|
|
5
5
|
def add_javascripts
|
6
6
|
append_file "app/assets/javascripts/store/all.js", "//= require store/spree_multi_slideshow\n"
|
7
|
-
|
7
|
+
append_file "app/assets/javascripts/admin/all.js", "//= require admin/spree_multi_slideshow\n"
|
8
8
|
end
|
9
9
|
|
10
10
|
def add_stylesheets
|
11
11
|
inject_into_file "app/assets/stylesheets/store/all.css", " *= require store/spree_multi_slideshow\n", :before => /\*\//, :verbose => true
|
12
|
-
inject_into_file "app/assets/stylesheets/admin/all.css", " *= require admin/spree_multi_slideshow\n", :before => /\*\//, :verbose => true
|
13
12
|
end
|
14
13
|
|
15
14
|
def add_migrations
|
@@ -23,17 +22,7 @@ module SpreeMultiSlideshow
|
|
23
22
|
else
|
24
23
|
puts "Skiping rake db:migrate, don't forget to run it!"
|
25
24
|
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def add_ckeditor
|
29
|
-
res = ask "Would you like to run the ckeditor generator now? [Y/n]"
|
30
|
-
if res == "" || res.downcase == "y"
|
31
|
-
run 'rails generate ckeditor:install --orm=active_record --backend=paperclip'
|
32
|
-
else
|
33
|
-
puts "Skiping rails generate ckeditor:install --orm=active_record --backend=paperclip, don't forget to run it!"
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
25
|
+
end
|
37
26
|
end
|
38
27
|
end
|
39
28
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_multi_slideshow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-02-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: spree_core
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 1.1.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 1.1.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: aws-sdk
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,38 +59,6 @@ dependencies:
|
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: ckeditor
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ! '>='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
70
|
-
type: :runtime
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ! '>='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: rspec-rails
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0'
|
86
|
-
type: :development
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
94
62
|
description:
|
95
63
|
email: damiano.giacomello@diginess.it
|
96
64
|
executables: []
|
@@ -104,20 +72,24 @@ files:
|
|
104
72
|
- lib/spree_multi_slideshow.rb
|
105
73
|
- app/assets/images/store/slides/pagination.png
|
106
74
|
- app/assets/images/store/slides/sprite01.png
|
75
|
+
- app/assets/javascripts/admin/slide_settings.js
|
107
76
|
- app/assets/javascripts/admin/slides/index.js
|
108
77
|
- app/assets/javascripts/admin/slides/new.js
|
109
78
|
- app/assets/javascripts/admin/spree_multi_slideshow.js
|
110
79
|
- app/assets/javascripts/store/spree_multi_slideshow.js
|
111
|
-
- app/assets/stylesheets/admin/spree_multi_slideshow.css
|
112
80
|
- app/assets/stylesheets/store/spree_multi_slideshow.css
|
81
|
+
- app/controllers/spree/admin/slide_settings_controller.rb
|
113
82
|
- app/controllers/spree/admin/slides_controller.rb
|
114
83
|
- app/controllers/spree/admin/slideshow_types_controller.rb
|
115
|
-
- app/helpers/spree/slides_helper.rb
|
116
84
|
- app/helpers/spree/slideshow_types_helper.rb
|
85
|
+
- app/models/spree/app_configuration_decorator.rb
|
117
86
|
- app/models/spree/slide.rb
|
118
87
|
- app/models/spree/slideshow_type.rb
|
119
88
|
- app/overrides/slideshow_type_admin_tab.rb
|
89
|
+
- app/views/spree/admin/shared/_slide_setting_configurations_menu.html.erb
|
120
90
|
- app/views/spree/admin/shared/_slideshow_type_tabs.html.erb
|
91
|
+
- app/views/spree/admin/slide_settings/edit.html.erb
|
92
|
+
- app/views/spree/admin/slide_settings/show.html.erb
|
121
93
|
- app/views/spree/admin/slides/_form.html.erb
|
122
94
|
- app/views/spree/admin/slides/edit.html.erb
|
123
95
|
- app/views/spree/admin/slides/index.html.erb
|
@@ -131,6 +103,7 @@ files:
|
|
131
103
|
- db/migrate/20120116083546_create_slides.rb
|
132
104
|
- db/migrate/20120323164044_multi_slideshow_namespace.rb
|
133
105
|
- db/migrate/20130114150224_add_enable_pagination.rb
|
106
|
+
- db/migrate/20130226082756_add_enable_to_slide.rb
|
134
107
|
- config/locales/en.yml
|
135
108
|
- config/locales/it.yml
|
136
109
|
- config/routes.rb
|
@@ -1,17 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
*= require admin/spree_core
|
3
|
-
*= require formtastic
|
4
|
-
*/
|
5
|
-
|
6
|
-
.formtastic input, .formtastic textarea, .formtastic select {
|
7
|
-
font-size: 100%;
|
8
|
-
padding: 5px;
|
9
|
-
}
|
10
|
-
|
11
|
-
.formtastic button {
|
12
|
-
margin: 0;
|
13
|
-
padding: 0 20px 0 0;
|
14
|
-
}
|
15
|
-
.formtastic button:hover {
|
16
|
-
text-shadow: #FFFFFF -1px -1px 0px;
|
17
|
-
}
|