caboose-cms 0.5.53 → 0.5.54
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.
- checksums.yaml +8 -8
- data/app/controllers/caboose/products_controller.rb +12 -8
- data/app/models/caboose/block.rb +22 -4
- data/app/views/caboose/blocks/_product_category.html.erb +1 -0
- data/app/views/caboose/blocks/_product_crumbtrail.html.erb +1 -0
- data/app/views/caboose/blocks/_product_details.html.erb +2 -0
- data/app/views/caboose/blocks/_products.html.erb +10 -0
- data/app/views/caboose/products/details.html.erb +0 -438
- data/app/views/caboose/products/index.html.erb +0 -46
- data/app/views/layouts/caboose/application.html.erb +24 -23
- data/lib/caboose/version.rb +1 -1
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzE3ZmY5M2U0OTYyOWE1YTNlOGQ2Y2VmYTk1ODQ3MTY4ODExMzYxYg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MDU4ZjM3NTBlYjU0NjZlNmJmZTZmYzc1MzlmNDZhMzM3Y2ExYzE4MQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZjNiODQxOGQ1Y2Q2Y2U5MDBiMjk3ZmE3M2MyYzljYjQ4OTBiNjA4NTc2OTJj
|
10
|
+
Y2FjODQ4OTRhMjgzZDkyZTY1Njk3Yjk4ZGIwNWZkZTM1YWFkNzE4Mzk4MDNm
|
11
|
+
OGJhOThmZGVmNWIyODEyMjJhZTA4NDU2YmQwYzkxOWMzYmIxMTU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
N2FkYTQxZGQ1ZmYwYjIwZGY5N2MwZGY0ZjljYjM2YzI1ZDNiYTYyNzY5ZmQy
|
14
|
+
ZWU3NjNkNDE4NjFiYzBjODdkMTQ5MDUzZTliODUyZmFiNzdkMzY0YWYzZmUy
|
15
|
+
ZDg1MzY4ZjY1Yjg2NjE4NzBiNTZhYTg4NGUyOGJjNWEzZDFlNDY=
|
@@ -7,8 +7,8 @@ module Caboose
|
|
7
7
|
end
|
8
8
|
|
9
9
|
module Caboose
|
10
|
-
class ProductsController < Caboose::ApplicationController
|
11
|
-
|
10
|
+
class ProductsController < Caboose::ApplicationController
|
11
|
+
|
12
12
|
# GET /products || GET /products/:id
|
13
13
|
def index
|
14
14
|
|
@@ -22,20 +22,24 @@ module Caboose
|
|
22
22
|
@reviews = Review.where(:product_id => @product.id).limit(10).order("id DESC") || nil
|
23
23
|
@logged_in_user = logged_in_user
|
24
24
|
|
25
|
-
render 'caboose/products/details' and return
|
25
|
+
render 'caboose/products/details' and return
|
26
26
|
end
|
27
27
|
|
28
28
|
# Filter params from url
|
29
29
|
url_without_params = request.fullpath.split('?').first
|
30
30
|
|
31
31
|
# Find the category
|
32
|
-
|
33
|
-
|
32
|
+
cat = Category.where(:site_id => @site.id, :url => url_without_params).first
|
33
|
+
if cat.nil?
|
34
|
+
cat = Category.where(:site_id => @site.id, :url => '/products').first
|
35
|
+
cat = Category.create(:site_id => @site.id, :url => '/products') if cat.nil?
|
36
|
+
end
|
37
|
+
|
34
38
|
# Set category ID
|
35
|
-
params['category_id'] =
|
39
|
+
params['category_id'] = cat.id
|
36
40
|
|
37
41
|
# If this is the top-most category, collect all it's immediate children IDs
|
38
|
-
params['category_id'] =
|
42
|
+
params['category_id'] = cat.children.collect { |child| child.id } if cat.id == 1
|
39
43
|
|
40
44
|
# Shove the original category ID into the first position if the param is an array
|
41
45
|
params['category_id'].unshift(category.id) if params['category_id'].is_a?(Array)
|
@@ -90,7 +94,7 @@ module Caboose
|
|
90
94
|
@products = @pager.items
|
91
95
|
@category = if @filter['category_id'] then Category.find(@filter['category_id'].to_i) else nil end
|
92
96
|
|
93
|
-
@pager.set_item_count
|
97
|
+
@pager.set_item_count
|
94
98
|
end
|
95
99
|
|
96
100
|
def show
|
data/app/models/caboose/block.rb
CHANGED
@@ -212,7 +212,7 @@ class Caboose::Block < ActiveRecord::Base
|
|
212
212
|
end
|
213
213
|
return msg
|
214
214
|
end
|
215
|
-
|
215
|
+
|
216
216
|
def render_from_function(options)
|
217
217
|
self.create_children
|
218
218
|
#locals = OpenStruct.new(:block => self, :empty_text => empty_text, :editing => editing)
|
@@ -232,14 +232,32 @@ class Caboose::Block < ActiveRecord::Base
|
|
232
232
|
options2[:block] = self
|
233
233
|
|
234
234
|
view = ActionView::Base.new(ActionController::Base.view_paths)
|
235
|
+
site = options[:site]
|
236
|
+
|
235
237
|
begin
|
236
|
-
str = view.render(:partial => "
|
237
|
-
rescue
|
238
|
-
|
238
|
+
str = view.render(:partial => "../../sites/#{site.name}/blocks/#{name}", :locals => options2)
|
239
|
+
rescue ActionView::MissingTemplate => ex
|
240
|
+
begin
|
241
|
+
str = view.render(:partial => "caboose/blocks/#{name}", :locals => options2)
|
242
|
+
rescue
|
243
|
+
Caboose.log("Partial caboose/blocks/#{name} doesn't exist.")
|
244
|
+
str = "<p class='note error'>#{self.partial_message(block, ex)}</p>"
|
245
|
+
end
|
239
246
|
end
|
247
|
+
|
240
248
|
return str
|
241
249
|
end
|
242
250
|
|
251
|
+
def partial_message(name, ex)
|
252
|
+
msg = "Error with partial #{name}:\n"
|
253
|
+
if ex.is_a?(String)
|
254
|
+
Caboose.log("#{msg}#{ex}")
|
255
|
+
else
|
256
|
+
Caboose.log("#{msg}#{ex.message}\n#{ex.backtrace.join("\n")}")
|
257
|
+
end
|
258
|
+
return msg
|
259
|
+
end
|
260
|
+
|
243
261
|
#def child_block_link
|
244
262
|
# return "<div class='new_block' id='new_block_#{self.id}'>New Block</div>"
|
245
263
|
#end
|
@@ -0,0 +1 @@
|
|
1
|
+
<p>This is a category.</p>
|
@@ -0,0 +1 @@
|
|
1
|
+
<p>Product crumbtrail.</p>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<div id='block_<%= block.id %>'>
|
2
|
+
|
3
|
+
<%= block.partial('product_crumbtrail', local_assigns) %>
|
4
|
+
<% if @product %>
|
5
|
+
<%= block.partial('product_details', local_assigns) %>
|
6
|
+
<% else %>
|
7
|
+
<%= block.partial('product_category', local_assigns) %>
|
8
|
+
<% end %>
|
9
|
+
|
10
|
+
</div>
|
@@ -1,438 +0,0 @@
|
|
1
|
-
<style type='text/css'>
|
2
|
-
.heads {
|
3
|
-
display: none;
|
4
|
-
}
|
5
|
-
#easy_zoom img { min-width: 1200px; }
|
6
|
-
#easy_zoom {
|
7
|
-
width:550px;
|
8
|
-
height:400px;
|
9
|
-
border:5px solid #eee;
|
10
|
-
background:#fff;
|
11
|
-
color:#333;
|
12
|
-
position:absolute;
|
13
|
-
top:148px;
|
14
|
-
left:635px;
|
15
|
-
overflow:hidden;
|
16
|
-
-moz-box-shadow:0 0 10px #777;
|
17
|
-
-webkit-box-shadow:0 0 10px #777;
|
18
|
-
box-shadow:0 0 10px #777;
|
19
|
-
/* vertical and horizontal alignment used for preloader text */
|
20
|
-
line-height:400px;
|
21
|
-
text-align:center;
|
22
|
-
}
|
23
|
-
#login-btn { cursor: pointer; }
|
24
|
-
.thumbnail {
|
25
|
-
width: 60px !important;
|
26
|
-
height: 60px !important;
|
27
|
-
overflow: hidden !important;
|
28
|
-
padding: 1px !important;
|
29
|
-
background-color: #ccc !important;
|
30
|
-
}
|
31
|
-
#itemsingle .carousel-indicators li:nth-child(3n) {
|
32
|
-
margin-right: 13px !important;
|
33
|
-
}
|
34
|
-
a.zoom-image {
|
35
|
-
position: relative;
|
36
|
-
display: block;
|
37
|
-
}
|
38
|
-
a.zoom-image .fullsize-loading {
|
39
|
-
position:absolute;
|
40
|
-
z-index:150;
|
41
|
-
}
|
42
|
-
div.product_thumb_image {
|
43
|
-
overflow: hidden;
|
44
|
-
}
|
45
|
-
div.product_thumb_image img {
|
46
|
-
margin: 0 auto;
|
47
|
-
}
|
48
|
-
ol.carousel-indicators li.thumbnail {
|
49
|
-
width: 100px;
|
50
|
-
height: 100px;
|
51
|
-
}
|
52
|
-
.product-review {
|
53
|
-
list-style:none;
|
54
|
-
margin-left:0;
|
55
|
-
padding:15px;
|
56
|
-
}
|
57
|
-
.product-review:nth-child(odd) {
|
58
|
-
background-color: rgb(240, 240, 240);
|
59
|
-
}
|
60
|
-
</style>
|
61
|
-
<% p = @product %>
|
62
|
-
|
63
|
-
<div class="page-content">
|
64
|
-
<div class="container">
|
65
|
-
<div class="row-fluid">
|
66
|
-
<div class="span12">
|
67
|
-
<ul class="breadcrumb">
|
68
|
-
<li><a href="/">Home</a>
|
69
|
-
<% if p.categories[1] %>
|
70
|
-
<span class="divider">/</span></li>
|
71
|
-
<% p.categories[1].ancestry.each do |c| %>
|
72
|
-
<% if c != p.categories[1] %>
|
73
|
-
<li><a href="<%= c.url %>"><%= c.name %></a> <span class="divider">/</span></li>
|
74
|
-
<% else %>
|
75
|
-
<li><a href="<%= c.url %>"><%= c.name %></a></li>
|
76
|
-
<% end %>
|
77
|
-
<% end %>
|
78
|
-
<% else %>
|
79
|
-
</li>
|
80
|
-
<% end %>
|
81
|
-
</ul>
|
82
|
-
</div>
|
83
|
-
</div>
|
84
|
-
|
85
|
-
<div class="row-fluid">
|
86
|
-
<div class="span12 single-item">
|
87
|
-
<div class="row-fluid">
|
88
|
-
<div class="span5">
|
89
|
-
<div id="itemsingle" class="carousel slide clearfix">
|
90
|
-
<div class="carousel-inner">
|
91
|
-
<% if p.product_images != [] %>
|
92
|
-
<% p.product_images.each_index do |i| %>
|
93
|
-
<% if i == 0 %>
|
94
|
-
<div class="item active" id="img_<%= p.product_images[i].id %>" style='position: relative;'>
|
95
|
-
<% else %>
|
96
|
-
<div class="item" id="img_<%= p.product_images[i].id %>" style='position: relative;'>
|
97
|
-
<% end %>
|
98
|
-
<a href="<%= p.product_images[i].url(:huge) %>" class="zoom-image" title="<%= p.title %>">
|
99
|
-
<img src="<%= p.product_images[i].url(:large) %>" title="<%= p.title %>" />
|
100
|
-
</a>
|
101
|
-
</div>
|
102
|
-
<% end %>
|
103
|
-
</div>
|
104
|
-
|
105
|
-
<ol class="carousel-indicators">
|
106
|
-
<% p.product_images.each_index do |i| %>
|
107
|
-
<li class='thumbnail' id="thumb_<%= p.product_images[i].id %>" data-target="#itemsingle" data-slide-to="<%= i %>">
|
108
|
-
<div class='product_thumb_image' style="<%= square_image(p.product_images[i]) %> height:100px; background-size:100px;"></div>
|
109
|
-
</li>
|
110
|
-
<% end %>
|
111
|
-
</ol>
|
112
|
-
<% else %>
|
113
|
-
<div class="item active" style='position: relative;'>
|
114
|
-
<img src="https://dmwwflw4i3miv.cloudfront.net/placeholder.jpg" title="<%= p.title %>" />
|
115
|
-
</div>
|
116
|
-
</div>
|
117
|
-
<% end
|
118
|
-
# end p.product_images
|
119
|
-
%>
|
120
|
-
|
121
|
-
</div>
|
122
|
-
</div>
|
123
|
-
<div class="span7">
|
124
|
-
<h3><%= p.title %></h3>
|
125
|
-
<div class="row-fluid">
|
126
|
-
<div class="span6">
|
127
|
-
<% if @average > 0 %>
|
128
|
-
<span class="rateit" data-rateit-value="<%= @average %>" data-rateit-ispreset="true" data-rateit-readonly="true" style="margin-bottom:10px;"></span>
|
129
|
-
<% end %>
|
130
|
-
<% if p.option1 && p.option1.strip.length > 0 %>
|
131
|
-
<% default = p.default1 ? p.default1 : p.variants[0].option1 %>
|
132
|
-
<select name='option1' id='option1'>
|
133
|
-
<optgroup label="Select a <%= p.option1 %>">
|
134
|
-
<% p.variants.where(:status => 'Active').collect{|v| v.option1}.reject{|str| str.nil? }.uniq.sort.each do |v| %>
|
135
|
-
<option value="<%= v %>"<%= raw v == default ? " selected='true'" : '' %>><%= v %></option>
|
136
|
-
<% end %>
|
137
|
-
</optgroup>
|
138
|
-
</select>
|
139
|
-
<br>
|
140
|
-
<% end %>
|
141
|
-
<% if p.option2 && p.option2.strip.length > 0 %>
|
142
|
-
<% default = p.default2 ? p.default2 : p.variants[0].option2 %>
|
143
|
-
<select name='option2' id='option2'>
|
144
|
-
<optgroup label="Select a <%= p.option2 %>">
|
145
|
-
<% p.variants.where(:status => 'Active').collect{|v| v.option2}.compact.uniq.sort.each do |v| %>
|
146
|
-
<option value="<%= v %>"<%= raw v == default ? " selected='true'" : '' %>><%= v %></option>
|
147
|
-
<% end %>
|
148
|
-
</optgroup>
|
149
|
-
</select>
|
150
|
-
<br>
|
151
|
-
<% end %>
|
152
|
-
<% if p.option3 && p.option3.strip.length > 0 %>
|
153
|
-
<% default = p.default3 ? p.default3 : p.variants[0].option3 %>
|
154
|
-
<select name='option3' id='option3'>
|
155
|
-
<optgroup label="Select a <%= p.option3 %>">
|
156
|
-
<% p.variants.where(:status => 'Active').collect{|v| v.option3}.reject{|str| str.nil?}.uniq.sort.each do |v| %>
|
157
|
-
<option value="<%= v %>"<%= raw v == default ? " selected='true'" : '' %>><%= v %></option>
|
158
|
-
<% end %>
|
159
|
-
</optgroup>
|
160
|
-
</select>
|
161
|
-
<br>
|
162
|
-
<% end %>
|
163
|
-
<span id='variant_qty'></span>
|
164
|
-
</div>
|
165
|
-
<div class="span6">
|
166
|
-
<h4>$<span id="variant_price"><%= p.most_popular_variant.price %></span></h4>
|
167
|
-
<p id="add_cart_btn"><a href="#" class="btn btn-warning btn-large"><i class="icon-shopping-cart"></i> Add to Cart</a></p>
|
168
|
-
<p class="btn btn-warning btn-large" id="sold_out_btn" style="display:none;"><i class="icon-shopping-cart"></i> Sold Out</p>
|
169
|
-
</div>
|
170
|
-
</div>
|
171
|
-
<br><br>
|
172
|
-
<p><%= strip_tags(p.description) %></p>
|
173
|
-
</div>
|
174
|
-
</div>
|
175
|
-
|
176
|
-
<div class="row-fluid">
|
177
|
-
<div class="span12">
|
178
|
-
<div class="tabbable">
|
179
|
-
<ul class="nav nav-tabs">
|
180
|
-
<li class="active"><a href="#tab1" data-toggle="tab">Product Features</a></li>
|
181
|
-
<li class=""><a href="#tab2" data-toggle="tab">Recent Reviews</a></li>
|
182
|
-
<li class=""><a href="#tab3" data-toggle="tab">Related Items</a></li>
|
183
|
-
</ul>
|
184
|
-
<div class="tab-content">
|
185
|
-
<div class="tab-pane active" id="tab1">
|
186
|
-
<p><%= strip_tags(p.description) %></p>
|
187
|
-
</div>
|
188
|
-
<div class="tab-pane" id="tab2">
|
189
|
-
<ul>
|
190
|
-
<% if @reviews.present? %>
|
191
|
-
<% @reviews.each do |r| %>
|
192
|
-
<li class='product-review'>
|
193
|
-
<% if r.rating && r.rating != 0 %>
|
194
|
-
<div class="rateit" data-rateit-value="<%= r.rating %>" data-rateit-ispreset="true" data-rateit-readonly="true" style="margin-right:10px;"></div>
|
195
|
-
<% end %>
|
196
|
-
<span style="font-weight:bold;"><%= r.name %></span>
|
197
|
-
<p><%= r.content %></p>
|
198
|
-
</li>
|
199
|
-
<%
|
200
|
-
end # @reviews.each do |r|
|
201
|
-
%>
|
202
|
-
<% else %>
|
203
|
-
<p>No reviews yet.</p>
|
204
|
-
<%
|
205
|
-
end # if @reviews.present?
|
206
|
-
%>
|
207
|
-
</ul>
|
208
|
-
<span id="message"></span>
|
209
|
-
<div id="add-new-review">
|
210
|
-
<hr style="display:block !important;"/>
|
211
|
-
Submit Your Review
|
212
|
-
<br>
|
213
|
-
<div class="rateit" id="new-rating"></div>
|
214
|
-
<br>
|
215
|
-
<form id="new_review">
|
216
|
-
<textarea name="content" cols="90" rows="3"></textarea>
|
217
|
-
<input type="hidden" name="product_id" value='<%= p.id %>' />
|
218
|
-
</form>
|
219
|
-
<button id="submit_review">Submit</button>
|
220
|
-
<br>
|
221
|
-
<br>
|
222
|
-
</div>
|
223
|
-
<div id="login-section">
|
224
|
-
<p>To submit a review, please <a id='login-btn'>log in</a>.</p>
|
225
|
-
</div>
|
226
|
-
</div>
|
227
|
-
<div class="tab-pane" id="tab3">
|
228
|
-
<div class="row-fluid">
|
229
|
-
<% if p.related_items && p.related_items.count > 0 %>
|
230
|
-
<ul class="thumbnails">
|
231
|
-
<% p.related_items.each do |p2| %>
|
232
|
-
<li class="span4">
|
233
|
-
<div class="thumbnail">
|
234
|
-
<div class="caption-details">
|
235
|
-
<h5><%= p2.title %></h5>
|
236
|
-
<span class="price"><%= raw product_price(p2) %></span>
|
237
|
-
</div>
|
238
|
-
</div>
|
239
|
-
</li>
|
240
|
-
<% end %>
|
241
|
-
</ul>
|
242
|
-
<% else %>
|
243
|
-
<p>This product doesn't have any related items yet.</p>
|
244
|
-
<% end %>
|
245
|
-
</div>
|
246
|
-
</div>
|
247
|
-
</div>
|
248
|
-
</div>
|
249
|
-
</div>
|
250
|
-
</div>
|
251
|
-
</div>
|
252
|
-
<!--break-->
|
253
|
-
</div>
|
254
|
-
</div>
|
255
|
-
</div>
|
256
|
-
|
257
|
-
<%= content_for :caboose_js do %>
|
258
|
-
<%= javascript_include_tag 'caboose/modules/cart' %>
|
259
|
-
<%= javascript_include_tag 'caboose/modules/product' %>
|
260
|
-
<script type='text/javascript'>
|
261
|
-
|
262
|
-
var option1 = <%= raw p.option1 ? p.option1.to_json : false %>;
|
263
|
-
var option2 = <%= raw p.option2 ? p.option2.to_json : false %>;
|
264
|
-
var option3 = <%= raw p.option3 ? p.option3.to_json : false %>;
|
265
|
-
var default1 = <%= raw p.default1 ? p.default1.to_json : false %>;
|
266
|
-
var default2 = <%= raw p.default2 ? p.default2.to_json : false %>;
|
267
|
-
var default3 = <%= raw p.default3 ? p.default3.to_json : false %>;
|
268
|
-
var variants = <%= raw Caboose.json(p.variants) %>;
|
269
|
-
|
270
|
-
var quantities = {};
|
271
|
-
|
272
|
-
function get_variant_for_options()
|
273
|
-
{
|
274
|
-
var v1 = option1 ? $('#option1').val() : false;
|
275
|
-
var v2 = option2 ? $('#option2').val() : false;
|
276
|
-
var v3 = option3 ? $('#option3').val() : false;
|
277
|
-
|
278
|
-
var variant = false;
|
279
|
-
$.each(variants, function(i, v) {
|
280
|
-
if (v.option1 == v1 && (!option2 || (v.option2 == v2 && (!option3 || v.option3 == v3))))
|
281
|
-
{
|
282
|
-
variant = v;
|
283
|
-
return false;
|
284
|
-
}
|
285
|
-
});
|
286
|
-
return variant;
|
287
|
-
}
|
288
|
-
|
289
|
-
function show_variant_image() {
|
290
|
-
var v = get_variant_for_options();
|
291
|
-
if (!v) return;
|
292
|
-
|
293
|
-
var rurl = "/variant-images/" + v.id;
|
294
|
-
$.ajax({
|
295
|
-
type: 'get',
|
296
|
-
url: rurl,
|
297
|
-
success: function(img) {
|
298
|
-
if(img) {
|
299
|
-
var image = "#img_" + img.id;
|
300
|
-
var thumb = "#thumb_" + img.id;
|
301
|
-
$(".item").removeClass("active");
|
302
|
-
$(".thumbnail").removeClass("active");
|
303
|
-
$(image).addClass("active");
|
304
|
-
$(thumb).addClass("active");
|
305
|
-
}
|
306
|
-
}
|
307
|
-
});
|
308
|
-
}
|
309
|
-
|
310
|
-
function set_status()
|
311
|
-
{
|
312
|
-
var v = get_variant_for_options();
|
313
|
-
if (!v || v.quantity_in_stock == 0)
|
314
|
-
{
|
315
|
-
$("#variant_qty").html("Sold Out").css("color","red");
|
316
|
-
$("#add_cart_btn").hide();
|
317
|
-
$("#sold_out_btn").show();
|
318
|
-
if (v && v.price > 0) $("#variant_price").html(v.price);
|
319
|
-
}
|
320
|
-
else
|
321
|
-
{
|
322
|
-
$("#variant_qty").html("In Stock").css("color","green");
|
323
|
-
$("#add_cart_btn").show();
|
324
|
-
$("#sold_out_btn").hide();
|
325
|
-
if (v && v.price > 0) $("#variant_price").html(v.price);
|
326
|
-
}
|
327
|
-
}
|
328
|
-
|
329
|
-
function add_to_cart()
|
330
|
-
{
|
331
|
-
var v = get_variant_for_options();
|
332
|
-
if (!v) return;
|
333
|
-
|
334
|
-
$.colorbox({
|
335
|
-
href: '/cart/add/' + v.id,
|
336
|
-
iframe: true,
|
337
|
-
initialWidth: 400,
|
338
|
-
initialHeight: 200,
|
339
|
-
innerWidth: 400,
|
340
|
-
innerHeight: 200,
|
341
|
-
scrolling: false,
|
342
|
-
transition: 'fade',
|
343
|
-
closeButton: false,
|
344
|
-
onComplete: fix_colorbox,
|
345
|
-
opacity: 0.50
|
346
|
-
});
|
347
|
-
}
|
348
|
-
|
349
|
-
// Added to application footer
|
350
|
-
//function fix_colorbox() {
|
351
|
-
// var padding = 21; // 21 is default
|
352
|
-
// $("#cboxTopLeft" ).css('background', '#111');
|
353
|
-
// $("#cboxTopRight" ).css('background', '#111');
|
354
|
-
// $("#cboxBottomLeft" ).css('background', '#111');
|
355
|
-
// $("#cboxBottomRight" ).css('background', '#111');
|
356
|
-
// $("#cboxMiddleLeft" ).css('background', '#111');
|
357
|
-
// $("#cboxMiddleRight" ).css('background', '#111');
|
358
|
-
// $("#cboxTopCenter" ).css('background', '#111');
|
359
|
-
// $("#cboxBottomCenter" ).css('background', '#111');
|
360
|
-
// $("#cboxClose" ).hide();
|
361
|
-
//
|
362
|
-
// //var p = (padding-21)*2;
|
363
|
-
// //$("#cboxWrapper" ).css('padding', '0 ' + p + ' ' + p + ' 0');
|
364
|
-
// //$('#cboxLoadedContent').css('margin-bottom', 0);
|
365
|
-
// //h = $('#cboxLoadedContent').height();
|
366
|
-
// //$('#cboxLoadedContent').css('height', ''+(h+28)+'px');
|
367
|
-
//}
|
368
|
-
|
369
|
-
$(document).ready(function() {
|
370
|
-
show_variant_image();
|
371
|
-
if (option1) $('#option1').change(function() { set_status(); show_variant_image(); });
|
372
|
-
if (option2) $('#option2').change(function() { set_status(); show_variant_image(); });
|
373
|
-
if (option3) $('#option3').change(function() { set_status(); show_variant_image(); });
|
374
|
-
set_status();
|
375
|
-
$('.zoom-image').each( function() { $(this).easyZoom(); });
|
376
|
-
$('#add_cart_btn a').click(function(e) {
|
377
|
-
e.preventDefault();
|
378
|
-
add_to_cart();
|
379
|
-
});
|
380
|
-
});
|
381
|
-
|
382
|
-
|
383
|
-
</script>
|
384
|
-
|
385
|
-
<% if @is_logged_in %>
|
386
|
-
<script type='text/javascript'>
|
387
|
-
$("#login-section").hide();
|
388
|
-
$("#submit_review").click( function() {
|
389
|
-
var info = $("#new_review").serialize();
|
390
|
-
info += "&rating=" + $("#new-rating").rateit("value") + "&name=" + "<%= @first_name %>" + "+" + "<%= @last_name %>";
|
391
|
-
$.post("/reviews/add", info, function(data, status) { window.location.reload(true); });
|
392
|
-
$("#add-new-review").slideUp();
|
393
|
-
$("#message").html("<p class='note success'>Review added successfully</p>");
|
394
|
-
});
|
395
|
-
|
396
|
-
</script>
|
397
|
-
|
398
|
-
|
399
|
-
<% else %>
|
400
|
-
<script type='text/javascript'>
|
401
|
-
$("#add-new-review").hide();
|
402
|
-
$("#login-btn").click( function() {
|
403
|
-
open_colorbox();
|
404
|
-
});
|
405
|
-
|
406
|
-
function open_colorbox() {
|
407
|
-
$.colorbox({
|
408
|
-
href: '/login?return_url=/products/<%= p.id %>',
|
409
|
-
iframe: true,
|
410
|
-
innerWidth: 200,
|
411
|
-
innerHeight: 50,
|
412
|
-
scrolling: false,
|
413
|
-
transition: 'fade',
|
414
|
-
closeButton: false,
|
415
|
-
onComplete: fix_colorbox,
|
416
|
-
opacity: 0.50,
|
417
|
-
// onClosed: function() { open_colorbox(); }
|
418
|
-
});
|
419
|
-
}
|
420
|
-
|
421
|
-
function fix_colorbox() {
|
422
|
-
$("#cboxTopLeft" ).css('background', '#111');
|
423
|
-
$("#cboxTopRight" ).css('background', '#111');
|
424
|
-
$("#cboxBottomLeft" ).css('background', '#111');
|
425
|
-
$("#cboxBottomRight" ).css('background', '#111');
|
426
|
-
$("#cboxMiddleLeft" ).css('background', '#111');
|
427
|
-
$("#cboxMiddleRight" ).css('background', '#111');
|
428
|
-
$("#cboxTopCenter" ).css('background', '#111');
|
429
|
-
$("#cboxBottomCenter" ).css('background', '#111');
|
430
|
-
$("#cboxClose" ).hide();
|
431
|
-
}
|
432
|
-
|
433
|
-
</script>
|
434
|
-
<% end %>
|
435
|
-
|
436
|
-
|
437
|
-
<% end %>
|
438
|
-
|
@@ -1,46 +0,0 @@
|
|
1
|
-
|
2
|
-
<div id="catalogue">
|
3
|
-
<div class="container">
|
4
|
-
<div class="row-fluid">
|
5
|
-
<div class="span12">
|
6
|
-
<ul class="breadcrumb">
|
7
|
-
<li><a href="/">Home</a><span class="divider">/</span></li>
|
8
|
-
|
9
|
-
<% @category.ancestry.each do |c| %>
|
10
|
-
<% if c != @category %>
|
11
|
-
<li><a href="<%= c.url %>"><%= c.name %></a> <span class="divider">/</span></li>
|
12
|
-
<% else %>
|
13
|
-
<li><a href="<%= c.url %>"><%= c.name %></a></li>
|
14
|
-
<% end %>
|
15
|
-
<% end %>
|
16
|
-
</ul>
|
17
|
-
</div>
|
18
|
-
</div>
|
19
|
-
|
20
|
-
<div class="row-fluid">
|
21
|
-
<div class="span12">
|
22
|
-
<h2><%= @category.name %></h2>
|
23
|
-
<ul class="thumbs">
|
24
|
-
|
25
|
-
<% if @category.children && @category.children.count > 0 %>
|
26
|
-
<% @category.children.each do |cat| %>
|
27
|
-
<% if cat.id != 32 && cat.products != [] %>
|
28
|
-
<%= render partial: 'category_thumb', locals: {category: cat} %>
|
29
|
-
<% end %>
|
30
|
-
<% end %>
|
31
|
-
<% end %>
|
32
|
-
|
33
|
-
<% if @category.products && @category.products.count > 0 %>
|
34
|
-
<% @category.products.each do |p| %>
|
35
|
-
<% if p.status == "Active" && p.variants != [] %>
|
36
|
-
<%= render partial: 'product_thumb', locals: {product: p} %>
|
37
|
-
<% end %>
|
38
|
-
<% end %>
|
39
|
-
<% end %>
|
40
|
-
|
41
|
-
</ul>
|
42
|
-
</div>
|
43
|
-
</div>
|
44
|
-
</div>
|
45
|
-
</div>
|
46
|
-
|
@@ -17,7 +17,8 @@
|
|
17
17
|
<%= yield :caboose_css %>
|
18
18
|
<% end %>
|
19
19
|
<%
|
20
|
-
b = @page.block
|
20
|
+
b = @page.block
|
21
|
+
Caboose.log(@page.block.inspect)
|
21
22
|
if b.nil?
|
22
23
|
bt = Caboose::BlockType.where(:name => 'layout_basic').first
|
23
24
|
Caboose::Block.create(:page_id => @page.id, :block_type_id => bt.id)
|
@@ -41,28 +42,28 @@
|
|
41
42
|
}
|
42
43
|
|
43
44
|
str = nil
|
44
|
-
if @use_page_cache
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
end
|
45
|
+
#if @use_page_cache
|
46
|
+
# pc = Caboose::PageCache.where(:page_id => @page.id).first
|
47
|
+
# if pc # If the page is cached, send it to the user
|
48
|
+
#
|
49
|
+
# require_dependency "#{Caboose.root}/app/models/caboose/block_cache.rb"
|
50
|
+
# require_dependency "#{Caboose.root}/app/models/caboose/block_cache_file.rb"
|
51
|
+
# require_dependency "#{Caboose.root}/app/models/caboose/block_cache_image.rb"
|
52
|
+
#
|
53
|
+
# @block = Marshal.load(pc.block)
|
54
|
+
# @view = options[:view ]
|
55
|
+
# @controller_view_content = options[:controller_view_content ]
|
56
|
+
# @modal = options[:modal ]
|
57
|
+
# @empty_text = options[:empty_text ]
|
58
|
+
# @editing = options[:editing ]
|
59
|
+
# @css = options[:css ]
|
60
|
+
# @js = options[:js ]
|
61
|
+
# @csrf_meta_tags = options[:csrf_meta_tags ]
|
62
|
+
# @csrf_meta_tags2 = options[:csrf_meta_tags2 ]
|
63
|
+
#
|
64
|
+
# str = render(:inline => pc.render_function)
|
65
|
+
# end
|
66
|
+
#end
|
66
67
|
|
67
68
|
# Render the blocks if we don't have it cached
|
68
69
|
str = b.render(b, options) if str.nil?
|
data/lib/caboose/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.54
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
@@ -625,6 +625,10 @@ files:
|
|
625
625
|
- app/views/caboose/blocks/_layout_right_sidebar_footer.html.erb
|
626
626
|
- app/views/caboose/blocks/_layout_right_sidebar_header.html.erb
|
627
627
|
- app/views/caboose/blocks/_layout_right_sidebar_sidebar.html.erb
|
628
|
+
- app/views/caboose/blocks/_product_category.html.erb
|
629
|
+
- app/views/caboose/blocks/_product_crumbtrail.html.erb
|
630
|
+
- app/views/caboose/blocks/_product_details.html.erb
|
631
|
+
- app/views/caboose/blocks/_products.html.erb
|
628
632
|
- app/views/caboose/blocks/_render_function.html.erb
|
629
633
|
- app/views/caboose/blocks/_richtext.html.erb
|
630
634
|
- app/views/caboose/blocks/_ruby_block.rb
|