spree_multi_slideshow 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. data/README.md +3 -3
  2. data/app/assets/images/store/slides/pagination.png +0 -0
  3. data/app/assets/javascripts/store/spree_multi_slideshow.js +537 -213
  4. data/app/assets/stylesheets/store/spree_multi_slideshow.css +45 -55
  5. data/app/controllers/spree/admin/slides_controller.rb +3 -3
  6. data/app/controllers/spree/admin/slideshow_types_controller.rb +5 -1
  7. data/app/helpers/spree/slideshow_types_helper.rb +45 -50
  8. data/app/models/spree/slide.rb +2 -0
  9. data/app/models/spree/slideshow_type.rb +2 -7
  10. data/app/views/spree/admin/shared/_slideshow_type_tabs.html.erb +8 -6
  11. data/app/views/spree/admin/slides/edit.html.erb +1 -1
  12. data/app/views/spree/admin/slides/index.html.erb +31 -32
  13. data/app/views/spree/admin/slides/new.html.erb +1 -1
  14. data/app/views/spree/admin/slideshow_types/_form.html.erb +48 -8
  15. data/app/views/spree/admin/slideshow_types/edit.html.erb +6 -7
  16. data/app/views/spree/admin/slideshow_types/index.html.erb +30 -29
  17. data/app/views/spree/admin/slideshow_types/new.html.erb +51 -5
  18. data/app/views/spree/admin/slideshow_types/new.js.erb +2 -0
  19. data/config/locales/en.yml +1 -0
  20. data/config/locales/it.yml +1 -0
  21. data/db/migrate/20120116081431_create_slideshow_types.rb +1 -1
  22. data/db/migrate/20130114150224_add_enable_pagination.rb +5 -0
  23. data/lib/generators/spree_multi_slideshow/install/install_generator.rb +0 -9
  24. metadata +5 -22
  25. data/app/assets/images/store/slides/bg-gallery.png +0 -0
  26. data/app/assets/images/store/slides/bg-text02.png +0 -0
  27. data/app/controllers/spree/slides_controller.rb +0 -5
  28. data/app/controllers/spree/slideshow_types_controller.rb +0 -5
@@ -2,60 +2,50 @@
2
2
  *= require store/spree_core
3
3
  */
4
4
 
5
- .gallery {
5
+ #slides {
6
+ margin-bottom: 25px;
7
+ }
8
+ .slides_container {
9
+ width: 720px;
10
+ height: 287px;
11
+ }
12
+ .slides_container .slide_list {
13
+ width: 720px;
14
+ height: 287px;
15
+ display: block;
16
+ position: relative;
17
+ }
18
+ .text-holder {
19
+ position: absolute;
20
+ right: 0px;
21
+ top: 0px;
22
+ height: 271px;
23
+ padding: 8px;
24
+ width: 200px;
25
+ background: #EFEFEF;
26
+ }
27
+ .pagination {
28
+ margin: 6px 0 0;
29
+ float: right;
30
+ list-style: none;
31
+ }
32
+ .pagination li {
33
+ float: left;
34
+ margin: 0 1px;
35
+ }
36
+ .pagination li a {
37
+ display: block;
38
+ width: 13px;
39
+ height: 0;
40
+ padding-top: 13px;
41
+ background-image: url(slides/pagination.png);
42
+ background-position: 0 0;
43
+ float: left;
6
44
  overflow: hidden;
7
- z-index:0;
8
- color:#fff;
9
- background:url(/assets/images/bg-gallery.png) no-repeat 20px 0;
10
- }
11
- .gallery .frame {
12
- position:relative;
13
- }
14
- .gallery .frame ul {
15
- position:absolute;
16
- margin:0;
17
- padding:0;
18
- list-style:none;
19
- }
20
- .gallery .frame li {
21
- position:absolute;
22
- top:0;
23
- left:0;
24
- background:#f1f1f1;
25
- }
26
- .gallery .frame li.active {z-index:2;}
27
- .gallery img {
28
- display:block;
29
- }
30
- .gallery .prev,
31
- .gallery .next {
32
- /*position:absolute;
33
- top:160px;
34
- left:47px;
35
- background:url(/assets/images/sprite01.png) no-repeat;
36
- width:39px;
37
- height:39px;*/
38
- text-indent:-9999px;
39
- overflow:hidden;
40
- z-index:3;
41
- }
42
- .gallery .next {
43
- right:56px;
44
- left:auto;
45
- background-position: 0 -43px;
46
- }
47
- .gallery .text-holder {
48
- background:url(/assets/images/bg-text02.png) no-repeat;
49
- width: 234px;
50
- height:98px;
51
- padding:45px 0 0 50px;
52
- position:absolute;
53
- right:1px;
54
- bottom:1px;
55
- font:bold 33px/40px 'Candrb', Arial, Helvetica, sans-serif;
56
- text-align:center;
57
- }
58
- .gallery .text-holder strong span {
59
- font-size:52px;
60
- display:block;
45
+ }
46
+ .pagination li a:hover {
47
+ background-position: 0 -26px;
48
+ }
49
+ .pagination li.current a, .pagination li.current a:hover {
50
+ background-position: 0 -13px;
61
51
  }
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  module Admin
3
3
  class SlidesController < ResourceController
4
- before_filter :load_data, :only => [:index, :new, :show, :edit]
4
+ before_filter :load_data, :except => [:destroy]
5
5
 
6
6
  def update_positions
7
7
  params[:positions].each do |id, index|
@@ -16,11 +16,11 @@ module Spree
16
16
 
17
17
  protected
18
18
  def location_after_save
19
- admin_slideshow_type_slides_url(@slideshow_type)
19
+ edit_admin_slideshow_type_url(@slideshow_type)
20
20
  end
21
21
 
22
22
  def load_data
23
- @slideshow_type = Spree::SlideshowType.find(params[:slideshow_type_id].to_i)
23
+ @slideshow_type = Spree::SlideshowType.find(params[:slideshow_type_id])
24
24
  end
25
25
 
26
26
  end
@@ -1,7 +1,11 @@
1
1
  module Spree
2
2
  module Admin
3
3
  class SlideshowTypesController < ResourceController
4
-
4
+
5
+ def show
6
+ redirect_to( :action => :edit )
7
+ end
8
+
5
9
  def location_after_save
6
10
  edit_admin_slideshow_type_url(@slideshow_type)
7
11
  end
@@ -1,60 +1,55 @@
1
+ # encoding: UTF-8
2
+
1
3
  module Spree
2
4
  module SlideshowTypesHelper
3
-
5
+
4
6
  def insert_slideshow(params={})
5
- @content_for_head_added ||= false
6
- if not @content_for_head_added
7
- content_for(:head) { stylesheet_link_tag 'spree_multi_slideshow.css' }
8
- content_for(:head) { javascript_include_tag 'spree_multi_slideshow.js' }
9
- @content_for_head_added = true
10
- end
11
- if slide_images(params)
12
- navigation = enable_navigation(params)
13
- content_tag(:div, navigation[:prev] + content_tag(:div, content_tag(:ul, raw(slide_images(params))), :class => "frame") + navigation[:succ], :class => "gallery #{params[:class]}", :style => "width: #{Spree::SlideshowType.enable(params[:category] || "home").first.slide_width}px; height: #{Spree::SlideshowType.enable(params[:category] || "home").first.slide_height}px;")
14
- end
15
- end
16
-
17
- def slide_images(params)
18
- category = params[:category] || "home"
19
- style = params[:style] || "custom"
20
- slideshow = Spree::SlideshowType.enable(category)
21
- if !slideshow.blank?
22
- max = slideshow.first.slide_number || 4
23
- slides = Spree::Slide.where("slideshow_type_id = ?", slideshow.first.id).limit(max).sort_by { |slide| slide.position }
24
-
25
- slides.map do |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
- end.join
28
- else
29
- false
7
+ params[:id] ||= "slides"
8
+ params[:class] ||= "my_slide"
9
+ params[:category] ||= "home"
10
+ @@slideshow = Spree::SlideshowType.enable.find_by_category(params[:category])
11
+ if @@slideshow.blank? || (!@@slideshow.blank? && @@slideshow.slides.empty?)
12
+ return ''
30
13
  end
14
+ params[:pagination_class] ||= "pagination"
15
+ params[:slide_speed] ||= 350
16
+ res = []
17
+
18
+ res << content_tag(:div, content_tag(:div, slide_images(params, @@slideshow), :class => "slides_container"), :id => params[:id], :class => params[:class])
19
+ res << "<script type='text/javascript'>
20
+ $(function() {
21
+ $('##{params[:id]}').slides({
22
+ play: 100000,
23
+ preload: true,
24
+ generateNextPrev: #{@@slideshow.enable_navigation},
25
+ generatePagination: #{@@slideshow.enable_pagination},
26
+ paginationClass: '#{params[:pagination_class]}',
27
+ slideSpeed: #{params[:slide_speed]}
28
+ });
29
+ });
30
+ </script>"
31
+
32
+ res.join.html_safe
31
33
  end
32
34
 
33
- def enable_navigation(params)
34
- container_nav = params[:container_navigation] || nil
35
- cl_nav_container = params[:class_navigation_container].split(",") || nil
36
- cl_nav_link = params[:class_navigation_link].split(",") || nil
37
- category = params[:category] || "home"
38
- slideshow = Spree::SlideshowType.enable(category)
39
- if !slideshow.blank?
40
- if slideshow.first.enable_navigation
41
- prev = link_to("prev", "#", :class => "prev #{cl_nav_link[0]}")
42
- succ = link_to("next", "#", :class => "next #{cl_nav_link[1]}")
43
- else
44
- prev = ""
45
- succ = ""
35
+ def slide_images(params, slideshow)
36
+ params[:style] ||= "custom"
37
+ params[:show_content] ||= false
38
+ max = slideshow.slide_number || slideshow.slides.count
39
+ slides = slideshow.slides.limit(max).sort_by { |slide| slide.position }
40
+
41
+ slides.map do |slide|
42
+ content_tag(:div, :class => "slide_list") do
43
+ divs = []
44
+
45
+ divs << link_to(image_tag(slide.attachment.url(params[:style].to_sym)), (slide.url.blank? ? "javascript: void(0)" : slide.url), { :title => slide.title })
46
+ if params[:show_content]
47
+ divs << content_tag(:div, content_tag(:strong, raw(slide.title)) + content_tag(:p, raw(slide.content)), :class => "text-holder")
48
+ end
49
+
50
+ divs.join.html_safe
46
51
  end
47
-
48
- unless container_nav.blank?
49
- prev = content_tag(container_nav.to_sym, prev, :class => cl_nav_container[0])
50
- succ = content_tag(container_nav.to_sym, succ, :class => cl_nav_container[1])
51
- end
52
-
53
- res = Hash.new()
54
- res[:prev] = prev
55
- res[:succ] = succ
56
- return res
57
- end
52
+ end.join.html_safe
58
53
  end
59
54
 
60
55
  end
@@ -29,6 +29,8 @@ module Spree
29
29
  validates_attachment_presence :attachment
30
30
  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
31
 
32
+ default_scope order("position ASC")
33
+
32
34
  # Load S3 settings
33
35
  if ( FileTest.exist?(Rails.root.join('config', 's3.yml')) && !YAML.load_file(Rails.root.join('config', 's3.yml'))[Rails.env].blank?)
34
36
  S3_OPTIONS = {
@@ -2,17 +2,12 @@ module Spree
2
2
  class SlideshowType < ActiveRecord::Base
3
3
  has_many :slides
4
4
 
5
- attr_accessible :category, :slide_width, :slide_height, :slide_number, :enable_navigation, :enabled
5
+ attr_accessible :category, :slide_width, :slide_height, :slide_number, :enable_navigation, :enabled, :enable_pagination
6
6
 
7
7
  validates :slide_number, :slide_width, :slide_height, :presence => true
8
8
  validates_uniqueness_of :category
9
9
  validates_numericality_of :slide_number, :only_integer => true
10
10
 
11
- scope :enable, lambda { |category| {:conditions => {:enabled => true, :category => category}} }
12
-
13
- def initialize(*args)
14
- super(*args)
15
- end
16
-
11
+ scope :enable, where("enabled IS NOT NULL AND enabled = 1")
17
12
  end
18
13
  end
@@ -1,14 +1,16 @@
1
+ <h1><%= t(:editing_slideshow_type) %> &ldquo;<%= @slideshow_type.category %>&rdquo;</h1>
2
+
1
3
  <% content_for :sidebar do %>
2
4
 
3
- <h3><%= t("slideshow_type.sidebar") %></h3>
5
+ <h3><%= @slideshow_type.category %></h3>
4
6
  <br class="clear" />
5
7
 
6
8
  <ul class="sidebar slide-menu" data-hook="admin_slide_tabs">
7
- <li<%== ' class="active"' if current == 'Slideshow_type Details' %>>
8
- <%= link_to t("slideshow_type.detail"), edit_admin_slideshow_type_url(@slideshow_type) %>
9
- </li>
10
- <li<%== ' class="active"' if current == 'Slide Image' %>>
11
- <%= link_to t("slideshow_type.slide.many"), admin_slideshow_type_slides_path(@slideshow_type) %>
9
+ <li<%== ' class="active"' if current == 'Slideshow_type Details' %>>
10
+ <%= link_to t(:slideshow_type_details), edit_admin_slideshow_type_url(@slideshow_type) %>
11
+ </li>
12
+ <li<%== ' class="active"' if current == 'Slide Images' %>>
13
+ <%= link_to t(:slides), admin_slideshow_type_slides_path(@slideshow_type) %>
12
14
  </li>
13
15
  </ul>
14
16
  <br class="clear" />
@@ -2,7 +2,7 @@
2
2
  <h1><%= t("slideshow_type.slide.editing_page") %></h1>
3
3
  <%= render 'spree/shared/error_messages', :target => @slide %>
4
4
 
5
- <%= semantic_form_for [:admin, @slideshow_type, @slide], :html => { :multipart => true } do |f| %>
5
+ <%= form_for [:admin, @slideshow_type, @slide], :html => { :multipart => true } do |f| %>
6
6
  <table class="basic-table" data-hook="edit_image">
7
7
  <tr data-hook="thumbnail">
8
8
  <td><%= t(:thumbnail) %>:</td>
@@ -1,35 +1,34 @@
1
- <%= render :partial => 'spree/admin/shared/slideshow_type_tabs', :locals => {:current => 'Slide Image'} %>
1
+ <%= render :partial => 'spree/admin/shared/slideshow_type_tabs', :locals => {:current => 'Slide Images'} %>
2
2
 
3
- <%= javascript_include_tag 'admin/slides/index.js' %>
4
- <div id="slides" data-hook></div>
5
- <p data-hook="links">
6
- <%= link_to icon('add') + ' ' + t("slideshow_type.slide.new_page"), new_admin_slideshow_type_slide_url(@slideshow_type), :id => 'new_slide_link' %>
7
- </p>
8
-
9
- <table class="index sortable" data-hook="slide_table" data-hook data-sortable-link="<%= update_positions_admin_slideshow_type_slides_url %>">
10
- <tr data-hook="images_header">
11
- <th><%= t("slideshow_type.slide.thumbnail") %></th>
12
- <th><%= t("slideshow_type.slide.title") %></th>
13
- <th><%= t("slideshow_type.slide.position") %></th>
14
- <th><%= t("slideshow_type.slide.url") %></th>
15
- <th><%= t(:action) %></th>
16
- </tr>
3
+ <table class="index sortable" data-hook="slide_table" data-sortable-link="<%= update_positions_admin_slideshow_type_slides_url(@slideshow_type) %>">
4
+ <tr data-hook="images_header">
5
+ <th><%= t(:thumbnail) %></th>
6
+ <th><%= t(:title) %></th>
7
+ <th><%= t(:url) %></th>
8
+ <th><%= t(:action) %></th>
9
+ </tr>
17
10
 
18
- <% Spree::Slide.where("slideshow_type_id = ?", @slideshow_type.id).order("position ASC").each do |slide| %>
19
- <tr id="<%= dom_id(slide) %>" data-hook="images_row">
20
- <td>
21
- <span class="handle"></span>
22
- <%= link_to image_tag(slide.attachment.url(:thumbnail)), slide.attachment.url(:medium) %>
23
- </td>
24
- <td><%= slide.title %></td>
25
- <td><%= slide.position %></td>
26
- <td><%= slide.url %></td>
27
- <td class="actions">
28
- <%= link_to_with_icon 'edit', t(:edit), edit_admin_slideshow_type_slide_url(@slideshow_type, slide), :class => 'edit' %>
29
- &nbsp;
30
- <%= link_to_delete slide, {:url => admin_slideshow_type_slide_url(@slideshow_type, slide) }%>
31
- </td>
32
- </tr>
33
- <% end %>
11
+ <tbody>
12
+ <% @slideshow_type.slides.each do |slide| %>
13
+ <tr id="<%= spree_dom_id slide %>" data-hook="images_row">
14
+ <td>
15
+ <span class="handle"></span>
16
+ <%= link_to image_tag(slide.attachment.url(:thumbnail)), slide.attachment.url(:medium) %>
17
+ </td>
18
+ <td><%= slide.title %></td>
19
+ <td><%= slide.url %></td>
20
+ <td class="actions">
21
+ <%= link_to_with_icon 'edit', t(:edit), edit_admin_slideshow_type_slide_url(@slideshow_type, slide), :class => 'edit' %>
22
+ &nbsp;
23
+ <%= link_to_delete image, { :url => admin_slideshow_type_slide_url(@slideshow_type, slide) }%>
24
+ </td>
25
+ </tr>
26
+ <% end %>
27
+ </tbody>
28
+ </table>
34
29
 
35
- </table>
30
+ <div id="images" data-hook></div>
31
+ <br />
32
+ <p data-hook="links">
33
+ <%= link_to icon('add') + ' ' + t(:new_slide), new_admin_slideshow_type_slide_url(@slideshow_type), :id => 'new_slide_link' %>
34
+ </p>
@@ -1,5 +1,5 @@
1
1
  <h4><%= t("slideshow_type.slide.new_page") %></h4>
2
- <%= semantic_form_for [:admin, @slideshow_type, @slide], :html => { :multipart => true } do |f| %>
2
+ <%= form_for [:admin, @slideshow_type, @slide], :html => { :multipart => true } do |f| %>
3
3
  <table class="basic-table" data-hook="new_slide">
4
4
  <%= render :partial => 'form', :locals => { :f => f } %>
5
5
  </table>
@@ -1,8 +1,48 @@
1
- <%= f.inputs do %>
2
- <%= f.input :category %>
3
- <%= f.input :slide_width %>
4
- <%= f.input :slide_height %>
5
- <%= f.input :slide_number %>
6
- <%= f.input :enable_navigation %>
7
- <%= f.input :enabled %>
8
- <% end %>
1
+ <div data-hook="admin_slideshow_form_fields">
2
+ <div class="clearfix">
3
+ <div class="left" data-hook="admin_product_form_left">
4
+ <%= f.field_container :category do %>
5
+ <%= f.label :category, t(:category) %> <span class="required">*</span><br />
6
+ <%= f.text_field :category, :class => 'fullwidth title' %>
7
+ <%= f.error_message_on :category %>
8
+ <% end %>
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
+ <%= f.field_container :enable_navigation do %>
30
+ <%= f.label :enable_navigation, t(:enable_navigation) %><br />
31
+ <%= f.check_box :enable_navigation %>
32
+ <%= f.error_message_on :enable_navigation %>
33
+ <% end %>
34
+
35
+ <%= f.field_container :enable_pagination do %>
36
+ <%= f.label :enable_pagination, t(:enable_pagination) %><br />
37
+ <%= f.check_box :enable_pagination %>
38
+ <%= f.error_message_on :enable_pagination %>
39
+ <% end %>
40
+
41
+ <%= f.field_container :enabled do %>
42
+ <%= f.label :enabled, t(:enabled) %><br />
43
+ <%= f.check_box :enabled %>
44
+ <%= f.error_message_on :enabled %>
45
+ <% end %>
46
+ </div>
47
+ </div>
48
+ </div>
@@ -1,8 +1,7 @@
1
- <h1><%= t("slideshow_type.editing_page") %></h1>
2
- <%= render :partial => 'spree/admin/shared/slideshow_type_tabs', :locals => {:current => 'Slideshow_type Details'} %>
3
- <%= render "spree/shared/error_messages", :target => @slideshow_type %>
1
+ <%= render :partial => 'spree/admin/shared/slideshow_type_tabs', :locals => { :current => 'Slideshow_type Details' } %>
2
+ <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @product } %>
4
3
 
5
- <%= semantic_form_for([:admin, @slideshow_type]) do |f| %>
6
- <%= render :partial => "form", :locals => { :f => f } %>
7
- <%= render :partial => 'spree/admin/shared/edit_resource_links' %>
8
- <% end %>
4
+ <%= form_for([:admin, @slideshow_type], :html => { :multipart => true }) do |f| %>
5
+ <%= render :partial => 'form', :locals => { :f => f } %>
6
+ <%= render :partial => 'spree/admin/shared/edit_resource_links' %>
7
+ <% end %>
@@ -1,32 +1,33 @@
1
- <div class='toolbar'>
2
- <ul class='actions'>
3
- <li id="new_product_link">
4
- <%= button_link_to t("slideshow_type.new_page"), new_admin_slideshow_type_url, {:icon => 'add'} %>
5
- </li>
6
- </ul>
7
- <br class='clear' />
1
+ <div class="toolbar" data-hook="toolbar">
2
+ <ul class="actions">
3
+ <li id="new_slideshow_link">
4
+ <%= button_link_to t(:new_slideshow), new_object_url, {:remote => true, :icon => 'add', :id => 'admin_new_slideshow'} %>
5
+ </li>
6
+ </ul>
7
+ <br class="clear" />
8
8
  </div>
9
9
 
10
- <h1><%= t("slideshow_type.many") %></h1>
10
+ <h1><%= t(:listing_slideshows) %></h1>
11
11
 
12
- <table class="index">
13
- <tr>
14
- <th><%= t("slideshow_type.category") %></th>
15
- <th><%= t("slideshow_type.enable") %></th>
16
- <th><%= t("slideshow_type.slide_number") %></th>
17
- <th><%= t("action") %></th>
18
- </tr>
19
- <tbody>
20
- <% @slideshow_types.each do |slideshow_type| %>
21
- <tr class="<%= cycle('even', 'odd') %>" id="<%= dom_id slideshow_type %>">
22
- <td><%= slideshow_type.category %></td>
23
- <td><%= icon('tick') if slideshow_type.enabled %></td>
24
- <td><%= slideshow_type.slide_number %></td>
25
- <td>
26
- <%= link_to_edit slideshow_type %> &nbsp;
27
- <%= link_to_delete slideshow_type %>
28
- </td>
29
- </tr>
30
- <% end %>
31
- </tbody>
32
- </table>
12
+ <div id="new_slideshow" data-hook></div>
13
+
14
+ <table class="index" id="listing_products">
15
+ <tr data-hook="admin_products_index_headers">
16
+ <th><%= t(:category) %></th>
17
+ <th><%= t(:enable) %></th>
18
+ <th><%= t(:slide_number) %></th>
19
+ <th data-hook="admin_slideshows_index_header_actions"></th>
20
+ </tr>
21
+ <% @slideshow_types.each do |slideshow_type| %>
22
+ <tr id="<%= spree_dom_id slideshow_type %>" data-hook="admin_slideshow_types_index_rows">
23
+ <td><%= slideshow_type.category %></td>
24
+ <td><%= icon('tick') if slideshow_type.enabled %></td>
25
+ <td><%= slideshow_type.slide_number %></td>
26
+ <td class="actions" data-hook="admin_products_index_row_actions">
27
+ <%= link_to_edit slideshow_type, :class => 'edit' %>
28
+ &nbsp;
29
+ <%= link_to_delete slideshow_type %>
30
+ </td>
31
+ </tr>
32
+ <% end %>
33
+ </table>
@@ -1,7 +1,53 @@
1
- <h1><%= t("slideshow_type.new_page") %></h1>
2
- <%= render "spree/shared/error_messages", :target => @slideshow_type %>
1
+ <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @slideshow_type } %>
3
2
 
4
- <%= semantic_form_for([:admin, @slideshow_type], :html => { :enctype => "multipart/form-data" }) do |f| %>
5
- <%= render :partial => "form", :locals => { :f => f } %>
6
- <%= render :partial => 'spree/admin/shared/new_resource_links' %>
3
+ <%= form_for [:admin, @slideshow_type], :html => { :multipart => true } do |f| %>
4
+ <fieldset data-hook="new_slideshow_type">
5
+ <div class="clearfix" data-hook="new_product_attrs">
6
+ <div class="left">
7
+ <%= f.field_container :category do %>
8
+ <%= f.label :category, t(:category) %> <span class="required">*</span><br />
9
+ <%= f.text_field :category, :class => 'fullwidth title' %>
10
+ <%= f.error_message_on :category %>
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
+
32
+ <%= f.field_container :enable_navigation do %>
33
+ <%= f.label :enable_navigation, t(:enable_navigation) %><br />
34
+ <%= f.check_box :enable_navigation %>
35
+ <%= f.error_message_on :enable_navigation %>
36
+ <% end %>
37
+
38
+ <%= f.field_container :enable_pagination do %>
39
+ <%= f.label :enable_pagination, t(:enable_pagination) %><br />
40
+ <%= f.check_box :enable_pagination %>
41
+ <%= f.error_message_on :enable_pagination %>
42
+ <% end %>
43
+
44
+ <%= f.field_container :enabled do %>
45
+ <%= f.label :enabled, t(:enabled) %><br />
46
+ <%= f.check_box :enabled %>
47
+ <%= f.error_message_on :enabled %>
48
+ <% end %>
49
+ </div>
50
+ </div>
51
+ <%= render :partial => 'spree/admin/shared/new_resource_links' %>
52
+ </fieldset>
7
53
  <% end %>
@@ -0,0 +1,2 @@
1
+ $("#new_slideshow").html('<%= escape_javascript(render :template => "spree/admin/slideshow_types/new", :formats => [:html], :handlers => [:erb]) %>');
2
+ $("#admin_new_slideshow").parent().hide();
@@ -43,6 +43,7 @@ en:
43
43
  slide_height: Height
44
44
  slide_number: Slide Number
45
45
  enable_navigation: Next and Prev enable?
46
+ enable_pagination: "Pagination active?"
46
47
  slide:
47
48
  attributes:
48
49
  slide:
@@ -43,6 +43,7 @@ it:
43
43
  slide_height: Altezza
44
44
  slide_number: Numero Slide
45
45
  enable_navigation: Tasti navigazione attivi?
46
+ enable_pagination: "Paginazione attiva?"
46
47
  slide:
47
48
  attributes:
48
49
  slide:
@@ -6,7 +6,7 @@ class CreateSlideshowTypes < ActiveRecord::Migration
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 => true
9
+ t.boolean :enable_navigation, :default => false
10
10
 
11
11
  t.timestamps
12
12
  end
@@ -0,0 +1,5 @@
1
+ class AddEnablePagination < ActiveRecord::Migration
2
+ def change
3
+ add_column :enable_pagination, :boolean, :default => false, :after => :enable_navigation
4
+ end
5
+ end
@@ -2,15 +2,6 @@ module SpreeMultiSlideshow
2
2
  module Generators
3
3
  class InstallGenerator < Rails::Generators::Base
4
4
 
5
- def add_formtastic
6
- res = ask "Would you like to run the formtastic install now? [Y/n]"
7
- if res == "" || res.downcase == "y"
8
- run 'rails generate formtastic:install'
9
- else
10
- puts "Skiping rails generate formtastic:install, don't forget to run it!"
11
- end
12
- end
13
-
14
5
  def add_javascripts
15
6
  append_file "app/assets/javascripts/store/all.js", "//= require store/spree_multi_slideshow\n"
16
7
  #append_file "app/assets/javascripts/admin/all.js", "//= require admin/spree_multi_slideshow\n"