spree_slider 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. data/.gitignore +11 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +13 -0
  4. data/Gemfile.lock +210 -0
  5. data/LICENSE +26 -0
  6. data/README.textile +43 -0
  7. data/Rakefile +1 -0
  8. data/Versionfile +10 -0
  9. data/app/controllers/spree/admin/slides_controller.rb +8 -0
  10. data/app/models/spree/slide.rb +4 -0
  11. data/app/overrides/add_slider_to_layout.rb +8 -0
  12. data/app/overrides/add_slides_to_admin_configurations_menu.rb +9 -0
  13. data/app/overrides/add_slides_to_admin_configurations_sidebar_menu.rb +7 -0
  14. data/app/views/spree/admin/slides/_form.html.erb +21 -0
  15. data/app/views/spree/admin/slides/edit.html.erb +10 -0
  16. data/app/views/spree/admin/slides/index.html.erb +35 -0
  17. data/app/views/spree/admin/slides/new.html.erb +9 -0
  18. data/app/views/spree/admin/slides/show.html.erb +41 -0
  19. data/app/views/spree/home/index.html.erb +14 -0
  20. data/config/locales/en.yml +5 -0
  21. data/config/routes.rb +5 -0
  22. data/db/migrate/20120222184238_create_slides.rb +16 -0
  23. data/lib/generators/spree_slider/install_anything_generator.rb +30 -0
  24. data/lib/generators/spree_slider/install_nivo_generator.rb +34 -0
  25. data/lib/generators/spree_slider/templates/anything_slider.html.erb +26 -0
  26. data/lib/generators/spree_slider/templates/nivo_slider.html.erb +38 -0
  27. data/lib/spree_slider/engine.rb +23 -0
  28. data/lib/spree_slider.rb +2 -0
  29. data/script/rails +5 -0
  30. data/spec/spec_helper.rb +32 -0
  31. data/spree_slider.gemspec +26 -0
  32. data/vendor/assets/anything-slider/README.textile +13 -0
  33. data/vendor/assets/anything-slider/css/anythingslider-ie.css +45 -0
  34. data/vendor/assets/anything-slider/css/anythingslider.css +204 -0
  35. data/vendor/assets/anything-slider/css/theme-construction.css +142 -0
  36. data/vendor/assets/anything-slider/css/theme-cs-portfolio.css +148 -0
  37. data/vendor/assets/anything-slider/css/theme-metallic.css +146 -0
  38. data/vendor/assets/anything-slider/css/theme-minimalist-round.css +144 -0
  39. data/vendor/assets/anything-slider/css/theme-minimalist-square.css +144 -0
  40. data/vendor/assets/anything-slider/demos/colorbox/border.png +0 -0
  41. data/vendor/assets/anything-slider/demos/colorbox/colorbox.css +62 -0
  42. data/vendor/assets/anything-slider/demos/colorbox/controls.png +0 -0
  43. data/vendor/assets/anything-slider/demos/colorbox/internet_explorer/borderBottomCenter.png +0 -0
  44. data/vendor/assets/anything-slider/demos/colorbox/internet_explorer/borderBottomLeft.png +0 -0
  45. data/vendor/assets/anything-slider/demos/colorbox/internet_explorer/borderBottomRight.png +0 -0
  46. data/vendor/assets/anything-slider/demos/colorbox/internet_explorer/borderMiddleLeft.png +0 -0
  47. data/vendor/assets/anything-slider/demos/colorbox/internet_explorer/borderMiddleRight.png +0 -0
  48. data/vendor/assets/anything-slider/demos/colorbox/internet_explorer/borderTopCenter.png +0 -0
  49. data/vendor/assets/anything-slider/demos/colorbox/internet_explorer/borderTopLeft.png +0 -0
  50. data/vendor/assets/anything-slider/demos/colorbox/internet_explorer/borderTopRight.png +0 -0
  51. data/vendor/assets/anything-slider/demos/colorbox/jquery.colorbox-min.js +4 -0
  52. data/vendor/assets/anything-slider/demos/colorbox/jquery.colorbox.js +769 -0
  53. data/vendor/assets/anything-slider/demos/colorbox/loading.gif +0 -0
  54. data/vendor/assets/anything-slider/demos/colorbox/loading_background.png +0 -0
  55. data/vendor/assets/anything-slider/demos/colorbox/overlay.png +0 -0
  56. data/vendor/assets/anything-slider/demos/css/page.css +148 -0
  57. data/vendor/assets/anything-slider/demos/images/251356.jpg +0 -0
  58. data/vendor/assets/anything-slider/demos/images/apple-touch-icon.png +0 -0
  59. data/vendor/assets/anything-slider/demos/images/favicon.ico +0 -0
  60. data/vendor/assets/anything-slider/demos/images/slide-civil-1.jpg +0 -0
  61. data/vendor/assets/anything-slider/demos/images/slide-civil-2.jpg +0 -0
  62. data/vendor/assets/anything-slider/demos/images/slide-env-1.jpg +0 -0
  63. data/vendor/assets/anything-slider/demos/images/slide-env-2.jpg +0 -0
  64. data/vendor/assets/anything-slider/demos/images/slide-tele-1.jpg +0 -0
  65. data/vendor/assets/anything-slider/demos/images/slide-tele-2.jpg +0 -0
  66. data/vendor/assets/anything-slider/demos/images/th-slide-civil-1.jpg +0 -0
  67. data/vendor/assets/anything-slider/demos/images/th-slide-civil-2.jpg +0 -0
  68. data/vendor/assets/anything-slider/demos/images/th-slide-env-1.jpg +0 -0
  69. data/vendor/assets/anything-slider/demos/images/th-slide-env-2.jpg +0 -0
  70. data/vendor/assets/anything-slider/demos/js/demo.js +132 -0
  71. data/vendor/assets/anything-slider/demos/video/movie.mp4 +0 -0
  72. data/vendor/assets/anything-slider/demos/video/movie.ogg +0 -0
  73. data/vendor/assets/anything-slider/demos/video/movie.webm +0 -0
  74. data/vendor/assets/anything-slider/demos.html +740 -0
  75. data/vendor/assets/anything-slider/expand.html +97 -0
  76. data/vendor/assets/anything-slider/images/arrows-metallic.png +0 -0
  77. data/vendor/assets/anything-slider/images/arrows-minimalist.png +0 -0
  78. data/vendor/assets/anything-slider/images/construction.gif +0 -0
  79. data/vendor/assets/anything-slider/images/cs-portfolio.png +0 -0
  80. data/vendor/assets/anything-slider/images/default.png +0 -0
  81. data/vendor/assets/anything-slider/index.html +470 -0
  82. data/vendor/assets/anything-slider/js/jquery.anythingslider.fx.js +165 -0
  83. data/vendor/assets/anything-slider/js/jquery.anythingslider.fx.min.js +6 -0
  84. data/vendor/assets/anything-slider/js/jquery.anythingslider.js +791 -0
  85. data/vendor/assets/anything-slider/js/jquery.anythingslider.min.js +7 -0
  86. data/vendor/assets/anything-slider/js/jquery.anythingslider.video.js +367 -0
  87. data/vendor/assets/anything-slider/js/jquery.anythingslider.video.min.js +8 -0
  88. data/vendor/assets/anything-slider/js/jquery.easing.1.2.js +140 -0
  89. data/vendor/assets/anything-slider/js/jquery.min.js +18 -0
  90. data/vendor/assets/anything-slider/js/swfobject.js +4 -0
  91. data/vendor/assets/anything-slider/license.txt +165 -0
  92. data/vendor/assets/anything-slider/simple.html +79 -0
  93. data/vendor/assets/anything-slider/video.html +341 -0
  94. data/vendor/assets/nivo-slider/README +1 -0
  95. data/vendor/assets/nivo-slider/demo/demo.html +39 -0
  96. data/vendor/assets/nivo-slider/demo/images/dev7logo.png +0 -0
  97. data/vendor/assets/nivo-slider/demo/images/nemo.jpg +0 -0
  98. data/vendor/assets/nivo-slider/demo/images/toystory.jpg +0 -0
  99. data/vendor/assets/nivo-slider/demo/images/up.jpg +0 -0
  100. data/vendor/assets/nivo-slider/demo/images/walle.jpg +0 -0
  101. data/vendor/assets/nivo-slider/demo/scripts/jquery-1.6.1.min.js +18 -0
  102. data/vendor/assets/nivo-slider/demo/style.css +100 -0
  103. data/vendor/assets/nivo-slider/jquery.nivo.slider.js +685 -0
  104. data/vendor/assets/nivo-slider/jquery.nivo.slider.pack.js +67 -0
  105. data/vendor/assets/nivo-slider/license.txt +22 -0
  106. data/vendor/assets/nivo-slider/nivo-slider.css +89 -0
  107. data/vendor/assets/nivo-slider/themes/default/arrows.png +0 -0
  108. data/vendor/assets/nivo-slider/themes/default/bullets.png +0 -0
  109. data/vendor/assets/nivo-slider/themes/default/default.css +74 -0
  110. data/vendor/assets/nivo-slider/themes/default/loading.gif +0 -0
  111. data/vendor/assets/nivo-slider/themes/orman/arrows.png +0 -0
  112. data/vendor/assets/nivo-slider/themes/orman/bullets.png +0 -0
  113. data/vendor/assets/nivo-slider/themes/orman/loading.gif +0 -0
  114. data/vendor/assets/nivo-slider/themes/orman/orman.css +98 -0
  115. data/vendor/assets/nivo-slider/themes/orman/readme.txt +1 -0
  116. data/vendor/assets/nivo-slider/themes/orman/ribbon.png +0 -0
  117. data/vendor/assets/nivo-slider/themes/orman/slider.png +0 -0
  118. data/vendor/assets/nivo-slider/themes/pascal/bullets.png +0 -0
  119. data/vendor/assets/nivo-slider/themes/pascal/controlnav.png +0 -0
  120. data/vendor/assets/nivo-slider/themes/pascal/featured.png +0 -0
  121. data/vendor/assets/nivo-slider/themes/pascal/loading.gif +0 -0
  122. data/vendor/assets/nivo-slider/themes/pascal/pascal.css +102 -0
  123. data/vendor/assets/nivo-slider/themes/pascal/readme.txt +1 -0
  124. data/vendor/assets/nivo-slider/themes/pascal/ribbon.png +0 -0
  125. data/vendor/assets/nivo-slider/themes/pascal/slider.png +0 -0
  126. metadata +236 -0
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ \#*
2
+ *~
3
+ .#*
4
+ .DS_Store
5
+ .idea
6
+ .project
7
+ tmp
8
+ nbproject
9
+ *.swp
10
+ spec/dummy
11
+ pkg/*
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source 'http://rubygems.org'
2
+
3
+ group :test do
4
+ gem 'ffaker'
5
+ end
6
+
7
+ if RUBY_VERSION < "1.9"
8
+ gem "ruby-debug"
9
+ else
10
+ gem "ruby-debug19"
11
+ end
12
+
13
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,210 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ spree_slider (1.0.0)
5
+ spree_core (~> 1.0.0)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ actionmailer (3.1.3)
11
+ actionpack (= 3.1.3)
12
+ mail (~> 2.3.0)
13
+ actionpack (3.1.3)
14
+ activemodel (= 3.1.3)
15
+ activesupport (= 3.1.3)
16
+ builder (~> 3.0.0)
17
+ erubis (~> 2.7.0)
18
+ i18n (~> 0.6)
19
+ rack (~> 1.3.5)
20
+ rack-cache (~> 1.1)
21
+ rack-mount (~> 0.8.2)
22
+ rack-test (~> 0.6.1)
23
+ sprockets (~> 2.0.3)
24
+ active_utils (1.0.3)
25
+ activesupport (>= 2.3.11)
26
+ i18n
27
+ activemerchant (1.20.1)
28
+ active_utils (>= 1.0.1)
29
+ activesupport (>= 2.3.11)
30
+ braintree (>= 2.0.0)
31
+ builder (>= 2.0.0)
32
+ i18n
33
+ json (>= 1.5.1)
34
+ money (<= 3.7.1)
35
+ activemodel (3.1.3)
36
+ activesupport (= 3.1.3)
37
+ builder (~> 3.0.0)
38
+ i18n (~> 0.6)
39
+ activerecord (3.1.3)
40
+ activemodel (= 3.1.3)
41
+ activesupport (= 3.1.3)
42
+ arel (~> 2.2.1)
43
+ tzinfo (~> 0.3.29)
44
+ activeresource (3.1.3)
45
+ activemodel (= 3.1.3)
46
+ activesupport (= 3.1.3)
47
+ activesupport (3.1.3)
48
+ multi_json (~> 1.0)
49
+ acts_as_list (0.1.4)
50
+ archive-tar-minitar (0.5.2)
51
+ arel (2.2.3)
52
+ braintree (2.13.4)
53
+ builder (>= 2.0.0)
54
+ builder (3.0.0)
55
+ capybara (1.0.1)
56
+ mime-types (>= 1.16)
57
+ nokogiri (>= 1.3.3)
58
+ rack (>= 1.0.0)
59
+ rack-test (>= 0.5.4)
60
+ selenium-webdriver (~> 2.0)
61
+ xpath (~> 0.1.4)
62
+ childprocess (0.3.1)
63
+ ffi (~> 1.0.6)
64
+ cocaine (0.2.1)
65
+ columnize (0.3.6)
66
+ deface (0.7.2)
67
+ nokogiri (~> 1.5.0)
68
+ rails (>= 3.0.9)
69
+ diff-lcs (1.1.3)
70
+ erubis (2.7.0)
71
+ factory_girl (2.6.0)
72
+ activesupport (>= 2.3.9)
73
+ ffaker (1.12.1)
74
+ ffi (1.0.11)
75
+ highline (1.6.8)
76
+ hike (1.2.1)
77
+ i18n (0.6.0)
78
+ jquery-rails (1.0.19)
79
+ railties (~> 3.0)
80
+ thor (~> 0.14)
81
+ json (1.6.5)
82
+ json_pure (1.6.5)
83
+ kaminari (0.13.0)
84
+ actionpack (>= 3.0.0)
85
+ activesupport (>= 3.0.0)
86
+ railties (>= 3.0.0)
87
+ linecache19 (0.5.12)
88
+ ruby_core_source (>= 0.1.4)
89
+ mail (2.3.0)
90
+ i18n (>= 0.4.0)
91
+ mime-types (~> 1.16)
92
+ treetop (~> 1.4.8)
93
+ meta_search (1.1.1)
94
+ actionpack (~> 3.1.0)
95
+ activerecord (~> 3.1.0)
96
+ activesupport (~> 3.1.0)
97
+ polyamorous (~> 0.5.0)
98
+ mime-types (1.17.2)
99
+ money (3.7.1)
100
+ i18n (~> 0.4)
101
+ multi_json (1.1.0)
102
+ nested_set (1.6.8)
103
+ activerecord (>= 3.0.0)
104
+ railties (>= 3.0.0)
105
+ nokogiri (1.5.0)
106
+ paperclip (2.5.0)
107
+ activerecord (>= 2.3.0)
108
+ activesupport (>= 2.3.2)
109
+ cocaine (>= 0.0.2)
110
+ mime-types
111
+ polyamorous (0.5.0)
112
+ activerecord (~> 3.0)
113
+ polyglot (0.3.3)
114
+ rack (1.3.6)
115
+ rack-cache (1.1)
116
+ rack (>= 0.4)
117
+ rack-mount (0.8.3)
118
+ rack (>= 1.0.0)
119
+ rack-ssl (1.3.2)
120
+ rack
121
+ rack-test (0.6.1)
122
+ rack (>= 1.0)
123
+ rails (3.1.3)
124
+ actionmailer (= 3.1.3)
125
+ actionpack (= 3.1.3)
126
+ activerecord (= 3.1.3)
127
+ activeresource (= 3.1.3)
128
+ activesupport (= 3.1.3)
129
+ bundler (~> 1.0)
130
+ railties (= 3.1.3)
131
+ railties (3.1.3)
132
+ actionpack (= 3.1.3)
133
+ activesupport (= 3.1.3)
134
+ rack-ssl (~> 1.3.2)
135
+ rake (>= 0.8.7)
136
+ rdoc (~> 3.4)
137
+ thor (~> 0.14.6)
138
+ rake (0.9.2.2)
139
+ rdoc (3.12)
140
+ json (~> 1.4)
141
+ rspec (2.8.0)
142
+ rspec-core (~> 2.8.0)
143
+ rspec-expectations (~> 2.8.0)
144
+ rspec-mocks (~> 2.8.0)
145
+ rspec-core (2.8.0)
146
+ rspec-expectations (2.8.0)
147
+ diff-lcs (~> 1.1.2)
148
+ rspec-mocks (2.8.0)
149
+ rspec-rails (2.8.1)
150
+ actionpack (>= 3.0)
151
+ activesupport (>= 3.0)
152
+ railties (>= 3.0)
153
+ rspec (~> 2.8.0)
154
+ ruby-debug-base19 (0.11.25)
155
+ columnize (>= 0.3.1)
156
+ linecache19 (>= 0.5.11)
157
+ ruby_core_source (>= 0.1.4)
158
+ ruby-debug19 (0.11.6)
159
+ columnize (>= 0.3.1)
160
+ linecache19 (>= 0.5.11)
161
+ ruby-debug-base19 (>= 0.11.19)
162
+ ruby_core_source (0.1.5)
163
+ archive-tar-minitar (>= 0.5.2)
164
+ rubyzip (0.9.6.1)
165
+ selenium-webdriver (2.13.0)
166
+ childprocess (>= 0.2.1)
167
+ ffi (~> 1.0.9)
168
+ json_pure
169
+ rubyzip
170
+ spree_core (1.0.0)
171
+ activemerchant (= 1.20.1)
172
+ acts_as_list (= 0.1.4)
173
+ deface (>= 0.7.2)
174
+ ffaker (~> 1.12.0)
175
+ highline (= 1.6.8)
176
+ jquery-rails (>= 1.0.18, <= 1.0.19)
177
+ kaminari (>= 0.13.0)
178
+ meta_search (= 1.1.1)
179
+ nested_set (= 1.6.8)
180
+ paperclip (= 2.5.0)
181
+ rails (>= 3.1.1, <= 3.1.3)
182
+ state_machine (= 1.1.1)
183
+ stringex (~> 1.3.0)
184
+ sprockets (2.0.3)
185
+ hike (~> 1.2)
186
+ rack (~> 1.0)
187
+ tilt (~> 1.1, != 1.3.0)
188
+ sqlite3 (1.3.5)
189
+ state_machine (1.1.1)
190
+ stringex (1.3.2)
191
+ thor (0.14.6)
192
+ tilt (1.3.3)
193
+ treetop (1.4.10)
194
+ polyglot
195
+ polyglot (>= 0.3.1)
196
+ tzinfo (0.3.31)
197
+ xpath (0.1.4)
198
+ nokogiri (~> 1.3)
199
+
200
+ PLATFORMS
201
+ ruby
202
+
203
+ DEPENDENCIES
204
+ capybara (= 1.0.1)
205
+ factory_girl
206
+ ffaker
207
+ rspec-rails (~> 2.7)
208
+ ruby-debug19
209
+ spree_slider!
210
+ sqlite3
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2012 R.S.A.
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
5
+ are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ * Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+ * Neither the name Spree nor the names of its contributors may be used to
13
+ endorse or promote products derived from this software without specific
14
+ prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.textile ADDED
@@ -0,0 +1,43 @@
1
+ h1. SpreeSlider
2
+
3
+ Add a slider to the homepage of your spree site
4
+
5
+ h2. Installation
6
+
7
+ To install, add spree_slider to your @Gemfile@ and run `bundle install`:
8
+
9
+ <pre>
10
+ gem 'spree_slider'
11
+ </pre>
12
+
13
+ This extension uses two sliders plugins: Nivo and Anything slider
14
+ Depending on which plugin you want to install, run the following command:
15
+
16
+ h3. Anything slider
17
+
18
+ <pre>
19
+ rails generate spree_slider:install_anything
20
+ </pre>
21
+
22
+ h3. Nivo slider
23
+
24
+ <pre>
25
+ rails generate spree_slider:install_nivo
26
+ </pre>
27
+
28
+ The slider is almost unstyled. To customize you have to add your own css and
29
+ eventually modify the partial copied into your app folder:
30
+ app/views/shared/_slider.html.erb
31
+
32
+
33
+ h2. Dynamic content management
34
+
35
+ To add dynamic content, go to the spree admin section, under 'Configuration'
36
+ and find the Spree Slider menu.
37
+
38
+
39
+ Copyright (c) 2012 "R.S.A.":http://www.rsaweb.com released under the New BSD License
40
+
41
+
42
+
43
+
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/Versionfile ADDED
@@ -0,0 +1,10 @@
1
+ # This file is used to designate compatibilty with different versions of Spree
2
+ # Please see http://spreecommerce.com/documentation/extensions.html#versionfile for details
3
+
4
+ # Examples
5
+ #
6
+ # "0.70.x" => { :branch => "master"}
7
+ # "0.60.x" => { :branch => "0-60-stable" }
8
+ # "0.40.x" => { :tag => "v1.0.0", :version => "1.0.0" }
9
+
10
+ "1.0.x" => { :branch => "master"}
@@ -0,0 +1,8 @@
1
+ class Spree::Admin::SlidesController < Spree::Admin::ResourceController
2
+ respond_to :html
3
+
4
+ def index
5
+ @slides = Spree::Slide.all
6
+ end
7
+
8
+ end
@@ -0,0 +1,4 @@
1
+ class Spree::Slide < ActiveRecord::Base
2
+ has_attached_file :image
3
+ scope :published, where(:published => true)
4
+ end
@@ -0,0 +1,8 @@
1
+ Deface::Override.new(:virtual_path => 'spree/layouts/spree_application',
2
+ :name => 'add_slider',
3
+ :insert_after => %q{#header[data-hook]},
4
+ :text => %q{
5
+ <div id='spree-slider' data-hook>
6
+ <%= yield :spree_slider %>
7
+ </div>
8
+ })
@@ -0,0 +1,9 @@
1
+ Deface::Override.new(:virtual_path => 'spree/admin/configurations/index',
2
+ :name => 'add_slides_to_admin_configurations_menu',
3
+ :insert_bottom => "[data-hook='admin_configurations_menu']",
4
+ :text => %q{
5
+ <tr>
6
+ <td><%= link_to 'Spree Slider', admin_slides_path %></td>
7
+ <td>Manage Spree Slider contents</td>
8
+ </tr> })
9
+
@@ -0,0 +1,7 @@
1
+ Deface::Override.new(:virtual_path => 'spree/admin/shared/_configuration_menu',
2
+ :name => 'add_slides_to_admin_configurations_sidebar_menu',
3
+ :insert_bottom => "[data-hook='admin_configurations_sidebar_menu']",
4
+ :text => %q{
5
+ <%= configurations_sidebar_menu_item 'Spree Slider', admin_slides_path %>
6
+ })
7
+
@@ -0,0 +1,21 @@
1
+ <%= f.field_container :name do %>
2
+ <%= f.label :name, t(:name) %><br />
3
+ <%= f.text_field :name %>
4
+ <% end %>
5
+ <%= f.field_container :body do %>
6
+ <%= f.label :body, t(:body) %><br />
7
+ <%= f.text_area :body, {:cols => 60, :rows => 4, :class => 'fullwidth'} %>
8
+ <% end %>
9
+ <%= f.field_container :link_url do %>
10
+ <%= f.label :link_url, t(:link_url) %><br />
11
+ <%= f.text_field :link_url %>
12
+ <% end %>
13
+ <%= f.field_container :image do %>
14
+ <%= f.label :image, t(:image) %><br />
15
+ <%= f.file_field :image %>
16
+ <% end %>
17
+ <%= f.field_container :published do %>
18
+ <%= f.label :is_published, t(:published) %><br />
19
+ <%= f.check_box :published %>
20
+ <% end %>
21
+
@@ -0,0 +1,10 @@
1
+ <%= render :partial => 'spree/admin/shared/configuration_menu' %>
2
+
3
+ <h1>Editing Slide</h1>
4
+
5
+ <%= render 'spree/shared/error_messages', :target => @slide %>
6
+
7
+ <%= form_for [:admin, @slide], :html => { :multipart => true } do |f| %>
8
+ <%= render :partial => 'form', :locals => { :f => f } %>
9
+ <%= render :partial => 'spree/admin/shared/edit_resource_links' %>
10
+ <% end %>
@@ -0,0 +1,35 @@
1
+ <%= render :partial => 'spree/admin/shared/configuration_menu' %>
2
+
3
+ <div class="toolbar" data-hook="toolbar">
4
+ <ul class="actions">
5
+ <li>
6
+ <p><%= button_link_to 'New Slide', new_object_url, :icon => 'add', :id => 'admin_new_slide_link' %></p>
7
+ </li>
8
+ </ul>
9
+ <br class="clear" />
10
+ </div>
11
+
12
+ <h1>Slides</h1>
13
+
14
+ <table class="index" id="listing_slides" data-hook>
15
+ <thead>
16
+ <tr data-hook="admin_slides_index_headers">
17
+ <th>Name</th>
18
+ <th data-hook="admin_slides_index_header_actions"></th>
19
+ </tr>
20
+ </thead>
21
+ <tbody>
22
+ <% @slides.each do |slide|%>
23
+ <tr id="<%= dom_id slide %>" data-hook="admin_slides_index_rows">
24
+ <td width="350px" ><%=link_to slide.name, object_url(slide) %></td>
25
+ <td data-hook="admin_slides_index_row_actions">
26
+ <%= link_to_edit slide, :class => 'edit' %> &nbsp;
27
+ <%= link_to_delete slide %>
28
+ </td>
29
+ </tr>
30
+ <% end %>
31
+ </tbody>
32
+ </table>
33
+
34
+
35
+
@@ -0,0 +1,9 @@
1
+ <%= render :partial => 'spree/admin/shared/configuration_menu' %>
2
+
3
+ <h1>New Slide</h1>
4
+ <%= render 'spree/shared/error_messages', :target => @slide %>
5
+
6
+ <%= form_for [:admin, @slide] , :html => { :multipart => true } do |f| %>
7
+ <%= render :partial => 'form', :locals => { :f => f } %>
8
+ <p class="form-buttons" data-hook="buttons"><%= button t(:create) %></p>
9
+ <% end %>
@@ -0,0 +1,41 @@
1
+ <%= render :partial => 'admin/shared/configuration_menu' %>
2
+
3
+ <h1><%= t(:slide) %></h1>
4
+
5
+ <table>
6
+ <tr data-hook="name">
7
+ <th><%= t(:name) %></th>
8
+ <td>
9
+ <%= @slide.name %>
10
+ </td>
11
+ </tr>
12
+ <tr data-hook="body">
13
+ <th><%= t(:body) %></th>
14
+ <td>
15
+ <%= @slide.body %>
16
+ </td>
17
+ </tr>
18
+ <tr data-hook="link_url">
19
+ <th><%= t(:link_url) %></th>
20
+ <td>
21
+ <%= @slide.link_url %>
22
+ </td>
23
+ </tr>
24
+ <tr data-hook="published">
25
+ <th><%= t(:published) %></th>
26
+ <td>
27
+ <%= @slide.published %>
28
+ </td>
29
+ </tr>
30
+ <tr data-hook="image_file_name">
31
+ <th><%= t(:image_file_name) %></th>
32
+ <td>
33
+ <%= @slide.image_file_name %>
34
+ </td>
35
+ </tr>
36
+ </table>
37
+
38
+ <p>
39
+ <%= link_to_edit @slide, :class => 'edit_slide' %> <%= t(:or) %>
40
+ <%= link_to t(:back), collection_url %>
41
+ </p>
@@ -0,0 +1,14 @@
1
+ <% content_for :spree_slider do %>
2
+ <%= render 'shared/slider' %>
3
+ <% end %>
4
+
5
+ <% content_for :sidebar do %>
6
+ <div data-hook="homepage_sidebar_navigation">
7
+ <%= render :partial => 'spree/shared/taxonomies' %>
8
+ </div>
9
+ <% end %>
10
+
11
+ <div data-hook="homepage_products">
12
+ <%= render :partial => 'spree/shared/products', :locals => { :products => @products } %>
13
+ </div>
14
+
@@ -0,0 +1,5 @@
1
+ # Sample localization file for English. Add more files in this directory for other locales.
2
+ # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
+
4
+ en:
5
+ hello: "Hello world"
data/config/routes.rb ADDED
@@ -0,0 +1,5 @@
1
+ Spree::Core::Engine.routes.draw do
2
+ namespace :admin do
3
+ resources :slides
4
+ end
5
+ end
@@ -0,0 +1,16 @@
1
+ class CreateSlides < ActiveRecord::Migration
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,30 @@
1
+ module SpreeSlider
2
+ class InstallAnythingGenerator < Rails::Generators::Base
3
+ source_root File.expand_path("../templates", __FILE__)
4
+ def install
5
+ #copy slider partial
6
+ copy_file "anything_slider.html.erb", "app/views/shared/_slider.html.erb"
7
+
8
+ #add javascripts
9
+ append_file "app/assets/javascripts/store/all.js", "//= require js/jquery.anythingslider\n"
10
+ append_file "app/assets/javascripts/store/all.js", "//= require js/jquery.anythingslider.fx\n"
11
+ append_file "app/assets/javascripts/store/all.js", "//= require js/jquery.anythingslider.video\n"
12
+
13
+ #add stylesheets
14
+ inject_into_file "app/assets/stylesheets/store/all.css", " *= require css/anythingslider\n", :before => /\*\//, :verbose => true
15
+
16
+ #copy migrations
17
+ run 'bundle exec rake railties:install:migrations FROM=spree_slider'
18
+
19
+ #run migrations
20
+ res = ask "Would you like to run the migrations now? [Y/n]"
21
+ if res == "" || res.downcase == "y"
22
+ run 'bundle exec rake db:migrate'
23
+ else
24
+ puts "Skiping rake db:migrate, don't forget to run it!"
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+
@@ -0,0 +1,34 @@
1
+ module SpreeSlider
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/shared/_slider.html.erb"
7
+
8
+ #add javascripts
9
+ append_file "app/assets/javascripts/store/all.js", "//= require jquery.nivo.slider.pack.js\n"
10
+
11
+ #add stylesheets
12
+ inject_into_file "app/assets/stylesheets/store/all.css", " *= require themes/default/default\n", :before => /\*\//, :verbose => true
13
+ inject_into_file "app/assets/stylesheets/store/all.css", " *= require themes/pascal/pascal\n", :before => /\*\//, :verbose => true
14
+ inject_into_file "app/assets/stylesheets/store/all.css", " *= require themes/orman/orman\n", :before => /\*\//, :verbose => true
15
+ inject_into_file "app/assets/stylesheets/store/all.css", " *= require nivo-slider\n", :before => /\*\//, :verbose => true
16
+
17
+ #copy migrations
18
+ run 'bundle exec rake railties:install:migrations FROM=spree_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,26 @@
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.each do |s| %>
19
+ <li><%= link_to image_tag(s.image.url, :title => '#' + s.name.to_url), s.link_url %></li>
20
+ <% end %>
21
+ </ul>
22
+ </div>
23
+ <% end %>
24
+
25
+
26
+
@@ -0,0 +1,38 @@
1
+ <% if Spree::Slide.published.count > 0 %>
2
+ <style type="text/css">
3
+ .theme-default #slider {
4
+ margin:0 auto 0 auto;
5
+ width:618px; /* Make sure your images are the same size */
6
+ height:246px; /* Make sure your images are the same size */
7
+ }
8
+ .slider-wrapper {
9
+ margin:0 auto 50px auto;
10
+ }
11
+ </style>
12
+
13
+ <div class="slider-wrapper theme-default">
14
+ <div class="ribbon"></div>
15
+ <div id="slider" class="nivoSlider">
16
+ <% Spree::Slide.published.each do |s| %>
17
+ <% if s.body != "" %>
18
+ <%= link_to image_tag(s.image.url, :title => '#' + s.name.to_url), s.link_url %>
19
+ <% else %>
20
+ <%= link_to image_tag(s.image.url), s.link_url %>
21
+ <% end %>
22
+ <% end %>
23
+ </div>
24
+
25
+ <% Spree::Slide.published.each do |s| %>
26
+ <div id='<%= s.name.to_url %>' class='nivo-html-caption'>
27
+ <%= s.body.html_safe %>
28
+ </div>
29
+ <% end %>
30
+ </div>
31
+
32
+ <script type="text/javascript">
33
+ $(window).load(function() {
34
+ $('#slider').nivoSlider();
35
+ });
36
+ </script>
37
+ <% end %>
38
+