solidus_slider 1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +1 -0
- data/.rvmrc +1 -0
- data/Gemfile +26 -0
- data/LICENSE +26 -0
- data/README.md +61 -0
- data/README.textile +71 -0
- data/Rakefile +21 -0
- data/Versionfile +5 -0
- data/app/assets/javascripts/spree/backend/slide_location_picker.js +53 -0
- data/app/assets/javascripts/spree/backend/solidus_slider.js +1 -0
- data/app/controllers/spree/admin/slide_locations_controller.rb +19 -0
- data/app/controllers/spree/admin/slides_controller.rb +57 -0
- data/app/models/spree/product_decorator.rb +8 -0
- data/app/models/spree/slide.rb +49 -0
- data/app/models/spree/slide_location.rb +8 -0
- data/app/models/spree/slide_slide_location.rb +8 -0
- data/app/overrides/spree/admin/configurations/index/add_slides_to_admin_configurations_menu.html.erb.deface +11 -0
- data/app/overrides/spree/admin/shared/_configuration_menu/add_slide_locations_to_admin_configurations_sidebar_menu.html.erb.deface +3 -0
- data/app/overrides/spree/admin/shared/_configuration_menu/add_slides_to_admin_configurations_sidebar_menu.html.erb.deface +3 -0
- data/app/overrides/spree/home/index/add_slider.html.erb.deface +5 -0
- data/app/overrides/spree/shared/_header/add_slider.html.erb.deface +3 -0
- data/app/views/spree/admin/slide_locations/_form.html.erb +10 -0
- data/app/views/spree/admin/slide_locations/edit.html.erb +18 -0
- data/app/views/spree/admin/slide_locations/index.html.erb +40 -0
- data/app/views/spree/admin/slide_locations/new.html.erb +16 -0
- data/app/views/spree/admin/slide_locations/search.json.jbuilder +4 -0
- data/app/views/spree/admin/slides/_form.html.erb +70 -0
- data/app/views/spree/admin/slides/edit.html.erb +23 -0
- data/app/views/spree/admin/slides/index.html.erb +50 -0
- data/app/views/spree/admin/slides/new.html.erb +18 -0
- data/app/views/spree/admin/slides/show.html.erb +54 -0
- data/app/views/spree/shared/_slider.html.erb +19 -0
- data/bin/rails +7 -0
- data/config/locales/de.yml +27 -0
- data/config/locales/en.yml +28 -0
- data/config/locales/es-MX.yml +33 -0
- data/config/locales/es.yml +27 -0
- data/config/locales/nl-NL.yml +27 -0
- data/config/locales/nl.yml +27 -0
- data/config/locales/pl.yml +29 -0
- data/config/locales/pt-BR.yml +36 -0
- data/config/locales/ru.yml +27 -0
- data/config/routes.rb +15 -0
- data/db/migrate/20120222184238_create_slides.rb +16 -0
- data/db/migrate/20120816192758_add_position_to_slides.rb +5 -0
- data/db/migrate/20121219124126_add_product_id_to_slides.rb +5 -0
- data/db/migrate/20150611113500_create_slider_location.rb +8 -0
- data/db/migrate/20160214061128_add_show_caption_to_slides.rb +5 -0
- data/db/migrate/20180113010348_create_spree_slide_slide_locations_table.rb +10 -0
- data/lib/generators/solidus_slider/install/install_generator.rb +24 -0
- data/lib/generators/solidus_slider/install_anything_generator.rb +31 -0
- data/lib/generators/solidus_slider/install_nivo_generator.rb +34 -0
- data/lib/generators/solidus_slider/install_simple_carousel_generator.rb +30 -0
- data/lib/generators/solidus_slider/templates/anything_slider.html.erb +23 -0
- data/lib/generators/solidus_slider/templates/nivo_slider.html.erb +37 -0
- data/lib/generators/solidus_slider/templates/simple_carousel_slider.html.erb +15 -0
- data/lib/solidus_slider.rb +4 -0
- data/lib/solidus_slider/engine.rb +22 -0
- data/lib/solidus_slider/version.rb +3 -0
- data/solidus_slider.gemspec +55 -0
- data/spec/spec_helper.rb +21 -0
- metadata +550 -0
@@ -0,0 +1,33 @@
|
|
1
|
+
es-MX:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
spree/slide: "Diapositiva"
|
5
|
+
spree:
|
6
|
+
next: "Siguiente"
|
7
|
+
previous: "Anterior"
|
8
|
+
name: "Nombre"
|
9
|
+
body: "Cuerpo"
|
10
|
+
link_url: "URL de enlace"
|
11
|
+
image: "Imagen"
|
12
|
+
image_file_name: "Nombre de la imagen"
|
13
|
+
published: "Publicado"
|
14
|
+
position: "Posición"
|
15
|
+
y: "Sí"
|
16
|
+
n: "No"
|
17
|
+
slider:
|
18
|
+
config_name: "Diapositivas"
|
19
|
+
config_description: "Configura las diapositivas de portada"
|
20
|
+
title: "Diapositivas"
|
21
|
+
new_slide: "Nueva Diapositiva"
|
22
|
+
back_to_slides: "Regresar a Diapositivas"
|
23
|
+
editing_slide: "Editando Diapositiva"
|
24
|
+
placeholder_name: "En blanco para usar el del producto"
|
25
|
+
placeholder_link_url: "En blanco para usar la del producto"
|
26
|
+
image_tip: "Si no selecciona ninguna imagen, se tomará la primera del producto"
|
27
|
+
slider_locations:
|
28
|
+
config_name: 'Locación de Diapositivas'
|
29
|
+
config_description: 'Configura las locaciones de las diapositivas'
|
30
|
+
title: 'Locación de Diapositivas'
|
31
|
+
new_location: 'Nueva Locación'
|
32
|
+
back_to_locations: 'Regresar a Locaciones'
|
33
|
+
editing_location: 'Editar Locación'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
es:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
spree/slide: "Diapositiva"
|
5
|
+
|
6
|
+
spree:
|
7
|
+
next: "Siguiente"
|
8
|
+
previous: "Anterior"
|
9
|
+
name: "Nombre"
|
10
|
+
body: "Cuerpo"
|
11
|
+
link_url: "URL de enlace"
|
12
|
+
image: "Imagen"
|
13
|
+
image_file_name: "Nombre de la imagen"
|
14
|
+
published: "Publicado"
|
15
|
+
position: "Posición"
|
16
|
+
y: "Sí"
|
17
|
+
n: "No"
|
18
|
+
|
19
|
+
slider:
|
20
|
+
config_name: "Diapositivas"
|
21
|
+
config_description: "Configura las diapositivas de portada"
|
22
|
+
title: "Diapositivas"
|
23
|
+
new_slide: "Nueva Diapositiva"
|
24
|
+
editing_slide: "Editando Diapositiva"
|
25
|
+
placeholder_name: "En blanco para usar el del producto"
|
26
|
+
placeholder_link_url: "En blanco para usar la del producto"
|
27
|
+
image_tip: "Si no selecciona ninguna imagen, se tomará la primera del producto"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
nl-NL:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
spree/slide: "Slide"
|
5
|
+
|
6
|
+
spree:
|
7
|
+
next: "Volgende"
|
8
|
+
previous: "Vorige"
|
9
|
+
name: "Naam"
|
10
|
+
body: "Lichaam"
|
11
|
+
link_url: "Link URL"
|
12
|
+
image: "Beeld"
|
13
|
+
image_file_name: "Bestandsnaam"
|
14
|
+
published: "Gepubliceerd"
|
15
|
+
position: "Positie"
|
16
|
+
y: "Ja"
|
17
|
+
n: "Geen"
|
18
|
+
|
19
|
+
slider:
|
20
|
+
config_name: "Spree Slider"
|
21
|
+
config_description: "Beheer Spree Slider inhoud"
|
22
|
+
title: "Slides"
|
23
|
+
new_slide: "Nieuwe Slide"
|
24
|
+
editing_slide: "Bewerken Van Slide"
|
25
|
+
placeholder_name: "Laat leeg om product naam te gebruiken"
|
26
|
+
placeholder_link_url: "Laat leeg om product url gebruiken"
|
27
|
+
image_tip: "Default eerste product afbeelding"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
nl:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
spree/slide: "Slide"
|
5
|
+
|
6
|
+
spree:
|
7
|
+
next: "Volgende"
|
8
|
+
previous: "Vorige"
|
9
|
+
name: "Naam"
|
10
|
+
body: "Lichaam"
|
11
|
+
link_url: "Link URL"
|
12
|
+
image: "Beeld"
|
13
|
+
image_file_name: "Bestandsnaam"
|
14
|
+
published: "Gepubliceerd"
|
15
|
+
position: "Positie"
|
16
|
+
y: "Ja"
|
17
|
+
n: "Geen"
|
18
|
+
|
19
|
+
slider:
|
20
|
+
config_name: "Spree Slider"
|
21
|
+
config_description: "Beheer Spree Slider inhoud"
|
22
|
+
title: "Slides"
|
23
|
+
new_slide: "Nieuwe Slide"
|
24
|
+
editing_slide: "Bewerken Van Slide"
|
25
|
+
placeholder_name: "Laat leeg om product naam te gebruiken"
|
26
|
+
placeholder_link_url: "Laat leeg om product url gebruiken"
|
27
|
+
image_tip: "Default eerste product afbeelding"
|
@@ -0,0 +1,29 @@
|
|
1
|
+
pl:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
spree/slide: "Slajd"
|
5
|
+
|
6
|
+
spree:
|
7
|
+
next: "Następne"
|
8
|
+
previous: "Poprzednie"
|
9
|
+
name: "Nazwa"
|
10
|
+
body: "Treść"
|
11
|
+
link_url: "Adres URL"
|
12
|
+
image: "Zdjęcie"
|
13
|
+
image_file_name: "Nazwa pliku ze zdjęciem"
|
14
|
+
published: "Opublikowany"
|
15
|
+
position: "Pozycja"
|
16
|
+
slides: "Slajdy"
|
17
|
+
product: "Produkt"
|
18
|
+
y: "Tak"
|
19
|
+
n: "Nie"
|
20
|
+
|
21
|
+
slider:
|
22
|
+
config_name: "Spree Slider"
|
23
|
+
config_description: "Zarządzaj zawartości Spree Slidera"
|
24
|
+
title: "Slajdy"
|
25
|
+
new_slide: "Nowy slajd"
|
26
|
+
editing_slide: "Edycja slajdu"
|
27
|
+
placeholder_name: "Pozostaw puste aby użyć nazwy produktu"
|
28
|
+
placeholder_link_url: "Pozostaw puste aby użyć odnośnika do produktu"
|
29
|
+
image_tip: "Domyślnie pierwsze zdjęcie produktu"
|
@@ -0,0 +1,36 @@
|
|
1
|
+
pt-BR:
|
2
|
+
next: "Próximo"
|
3
|
+
previous: "Anterior"
|
4
|
+
name: "Nome"
|
5
|
+
body: "Corpo"
|
6
|
+
link_url: "URL"
|
7
|
+
image: "Imagem"
|
8
|
+
preview: "Visualizar"
|
9
|
+
image_file_name: "Nome da Imagem"
|
10
|
+
published: "Publicado"
|
11
|
+
position: "Posição"
|
12
|
+
y: "Sim"
|
13
|
+
n: "Não"
|
14
|
+
|
15
|
+
activerecord:
|
16
|
+
models:
|
17
|
+
spree/slide: "Slide"
|
18
|
+
|
19
|
+
solidus_slider:
|
20
|
+
config_name: "Solidus Slider"
|
21
|
+
config_description: "Configurações Solidus Slider"
|
22
|
+
title: "Slides"
|
23
|
+
new_slide: "Novo Slide"
|
24
|
+
editing_slide: "Editando Slide"
|
25
|
+
back_to_slides: "Voltar para Slides"
|
26
|
+
placeholder_name: "Deixe em branco para usar o nome do produto"
|
27
|
+
placeholder_link_url: "Deixe em branco para usar a url do produto"
|
28
|
+
image_tip: "Padrão é a primeira imagem do produto"
|
29
|
+
|
30
|
+
solidus_slider_locations:
|
31
|
+
config_name: "Locais do Solidus Slider"
|
32
|
+
config_description: "Configurações de Locais do Solidus Slider"
|
33
|
+
title: "Locais do Slider"
|
34
|
+
new_location: "Novo Local"
|
35
|
+
editing_location: "Editando Local"
|
36
|
+
back_to_locations: "Voltar para Locais"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
ru:
|
2
|
+
next: "Следующий"
|
3
|
+
previous: "Предыдущий"
|
4
|
+
name: "Название"
|
5
|
+
body: "Содержимое"
|
6
|
+
link_url: "URL для ссылки"
|
7
|
+
image: "Изображение"
|
8
|
+
image_file_name: "Имя файла изображения"
|
9
|
+
published: "Опубликован"
|
10
|
+
position: "Позиция"
|
11
|
+
y: "Да"
|
12
|
+
n: "Нет"
|
13
|
+
|
14
|
+
activerecord:
|
15
|
+
models:
|
16
|
+
spree/slide: "Слайд"
|
17
|
+
|
18
|
+
solidus_slider:
|
19
|
+
config_name: "Слайды"
|
20
|
+
config_description: "Работа со слайдами"
|
21
|
+
title: "Слайды"
|
22
|
+
new_slide: "Новый Слайд"
|
23
|
+
editing_slide: "Редактирование Слайда"
|
24
|
+
back_to_slides: "Назад к Слайдам"
|
25
|
+
placeholder_name: "Оставьте пустым, чтобы использовать название выбранного продукта"
|
26
|
+
placeholder_link_url: "Оставьте пустым, чтобы использовать url продукта"
|
27
|
+
image_tip: "Изображение продукта"
|
data/config/routes.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
class CreateSlides < SolidusSupport::Migration[4.2]
|
2
|
+
def change
|
3
|
+
create_table :spree_slides do |t|
|
4
|
+
t.string :name
|
5
|
+
t.text :body
|
6
|
+
t.string :link_url
|
7
|
+
t.boolean :published
|
8
|
+
t.string :image_file_name
|
9
|
+
t.string :image_content_type
|
10
|
+
t.integer :image_file_size
|
11
|
+
t.datetime :image_updated_at
|
12
|
+
|
13
|
+
t.timestamps
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class CreateSpreeSlideSlideLocationsTable < ActiveRecord::Migration[4.2]
|
2
|
+
def change
|
3
|
+
create_table :spree_slide_slide_locations do |t|
|
4
|
+
t.integer :slide_id
|
5
|
+
t.integer :slide_location_id
|
6
|
+
end
|
7
|
+
|
8
|
+
add_index :spree_slide_slide_locations, [:slide_id, :slide_location_id]
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module SolidusSlider
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
class_option :auto_run_migrations, type: :boolean, default: false
|
5
|
+
|
6
|
+
def add_javascripts
|
7
|
+
append_file 'vendor/assets/javascripts/spree/backend/all.js', "\n//= require spree/backend/solidus_slider\n"
|
8
|
+
end
|
9
|
+
|
10
|
+
def add_migrations
|
11
|
+
run 'bundle exec rake railties:install:migrations FROM=solidus_slider'
|
12
|
+
end
|
13
|
+
|
14
|
+
def run_migrations
|
15
|
+
run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask 'Would you like to run the migrations now? [Y/n]')
|
16
|
+
if run_migrations
|
17
|
+
run 'bundle exec rake db:migrate'
|
18
|
+
else
|
19
|
+
puts 'Skipping rake db:migrate, don\'t forget to run it!'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module SolidusSlider
|
2
|
+
class InstallAnythingGenerator < Rails::Generators::Base
|
3
|
+
source_root File.expand_path("../templates", __FILE__)
|
4
|
+
|
5
|
+
def install
|
6
|
+
#copy slider partial
|
7
|
+
copy_file "anything_slider.html.erb", "app/views/spree/shared/_slider.html.erb"
|
8
|
+
|
9
|
+
#add javascripts
|
10
|
+
append_file "vendor/assets/javascripts/spree/frontend/all.js", "//= require js/jquery.anythingslider\n"
|
11
|
+
append_file "vendor/assets/javascripts/spree/frontend/all.js", "//= require js/jquery.anythingslider.fx\n"
|
12
|
+
append_file "vendor/assets/javascripts/spree/frontend/all.js", "//= require js/jquery.anythingslider.video\n"
|
13
|
+
|
14
|
+
#add stylesheets
|
15
|
+
inject_into_file "vendor/assets/stylesheets/spree/frontend/all.css", " *= require css/anythingslider\n", :before => /\*\//, :verbose => true
|
16
|
+
|
17
|
+
#copy migrations
|
18
|
+
run 'bundle exec rake railties:install:migrations FROM=solidus_slider'
|
19
|
+
|
20
|
+
#run migrations
|
21
|
+
res = ask "Would you like to run the migrations now? [Y/n]"
|
22
|
+
if res == "" || res.downcase == "y"
|
23
|
+
run 'bundle exec rake db:migrate'
|
24
|
+
else
|
25
|
+
puts "Skiping rake db:migrate, don't forget to run it!"
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module SolidusSlider
|
2
|
+
class InstallNivoGenerator < Rails::Generators::Base
|
3
|
+
source_root File.expand_path("../templates", __FILE__)
|
4
|
+
def install
|
5
|
+
#copy slider partial
|
6
|
+
copy_file "nivo_slider.html.erb", "app/views/spree/shared/_slider.html.erb"
|
7
|
+
|
8
|
+
#add javascripts
|
9
|
+
append_file "vendor/assets/javascripts/spree/frontend/all.js", "//= require jquery.nivo.slider.pack.js\n"
|
10
|
+
|
11
|
+
#add stylesheets
|
12
|
+
inject_into_file "vendor/assets/stylesheets/spree/frontend/all.css", " *= require themes/default/default\n", :before => /\*\//, :verbose => true
|
13
|
+
inject_into_file "vendor/assets/stylesheets/spree/frontend/all.css", " *= require themes/pascal/pascal\n", :before => /\*\//, :verbose => true
|
14
|
+
inject_into_file "vendor/assets/stylesheets/spree/frontend/all.css", " *= require themes/orman/orman\n", :before => /\*\//, :verbose => true
|
15
|
+
inject_into_file "vendor/assets/stylesheets/spree/frontend/all.css", " *= require nivo-slider\n", :before => /\*\//, :verbose => true
|
16
|
+
|
17
|
+
#copy migrations
|
18
|
+
run 'bundle exec rake railties:install:migrations FROM=solidus_slider'
|
19
|
+
|
20
|
+
#run migrations
|
21
|
+
res = ask "Would you like to run the migrations now? [Y/n]"
|
22
|
+
if res == "" || res.downcase == "y"
|
23
|
+
run 'bundle exec rake db:migrate'
|
24
|
+
else
|
25
|
+
puts "Skiping rake db:migrate, don't forget to run it!"
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module SolidusSlider
|
2
|
+
class InstallSimpleCarouselGenerator < Rails::Generators::Base
|
3
|
+
source_root File.expand_path("../templates", __FILE__)
|
4
|
+
|
5
|
+
def install
|
6
|
+
#copy slider partial
|
7
|
+
copy_file "simple_carousel_slider.html.erb", "app/views/spree/shared/_slider.html.erb"
|
8
|
+
|
9
|
+
#add javascripts
|
10
|
+
append_file "vendor/assets/javascripts/spree/frontend/all.js", "//= require simple.carousel\n"
|
11
|
+
append_file "vendor/assets/javascripts/spree/frontend/all.js", "//= require simple.carousel.slider\n"
|
12
|
+
|
13
|
+
|
14
|
+
#copy migrations
|
15
|
+
run 'bundle exec rake railties:install:migrations FROM=solidus_slider'
|
16
|
+
|
17
|
+
#run migrations
|
18
|
+
res = ask "Would you like to run the migrations now? [Y/n]"
|
19
|
+
if res == "" || res.downcase == "y"
|
20
|
+
run 'bundle exec rake db:migrate'
|
21
|
+
else
|
22
|
+
puts "Skiping rake db:migrate, don't forget to run it!"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<% if Spree::Slide.published.count > 0 %>
|
2
|
+
<!-- Define slider dimensions here -->
|
3
|
+
<style>
|
4
|
+
#slider { width: 680px; height: 317px; }
|
5
|
+
.slider-wrapper { margin:0 auto 50px auto; }
|
6
|
+
</style>
|
7
|
+
|
8
|
+
<!-- AnythingSlider initialization -->
|
9
|
+
<script>
|
10
|
+
// DOM Ready
|
11
|
+
$(function(){
|
12
|
+
$('#slider').anythingSlider();
|
13
|
+
});
|
14
|
+
</script>
|
15
|
+
|
16
|
+
<div class="slider-wrapper">
|
17
|
+
<ul id="slider">
|
18
|
+
<% Spree::Slide.published.order('position ASC').each do |s| %>
|
19
|
+
<li><%= link_to image_tag(s.slide_image.url, :title => '#' + s.slide_name.to_url), url_for(s.slide_link) %></li>
|
20
|
+
<% end %>
|
21
|
+
</ul>
|
22
|
+
</div>
|
23
|
+
<% end %>
|