caboose-cms 0.5.191 → 0.5.192

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Njk3ZjJmN2RiZjc0MjYwMmU1MWRhNWI3Y2I5YjdlNTI1MmI0Y2NhMQ==
4
+ YzFhZWU3NWRkNDk3NzhiMzM5ZDA2ZDdjZWU3YjgyOTFjMTdkODI4MA==
5
5
  data.tar.gz: !binary |-
6
- ZmVmYTdlYTM4NmE4ODRkM2FmOTc1ZDIzM2JhODI2MDc4MmZiZmM0OQ==
6
+ YWIzZmZkM2Q2ODE0Y2Q1MDAyOTc4MTUwNjIwZWFmNDQ0ZTVmMDJjMw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZTUwN2U0ZTgyMTg3NjE0OThlN2QwNDVkY2JhMWFlN2FlM2Y1NjQ4ZGM5OGRi
10
- Zjg2OWRiNWJhNGYwZWM2NzcwNmZiMGQxYTBhZTc5ZjBiNjdlNzVmYTIwYjQz
11
- OWQzZmUyMTcxZGI1MDhkNzJlNmMyNDJkZmY2NTBhMDFjYTUyNjQ=
9
+ YTMxZDUzZDU2ZTkwZTc1NjM2ZGY5MGZhYjdmZDY3NTgzMmQ0MWZkOTcyNzc5
10
+ NWIzYTgyMTZiNTFmOGJkMTczMTNmNjA5OTVmYTBmZmM3ZDkzOTA5YTJjN2Y4
11
+ NjlmM2Y1MTBmMmRmYWFjN2JkNTRhZmQ2ZDcxMjA0NGJmYmI4MTU=
12
12
  data.tar.gz: !binary |-
13
- NjIzOTU5NDMzMDU3ZjA1MDg0ZTA2ZTE3YmY3MzNlMjU1YmM5MmYwMmM2MWFi
14
- MGIxMzM1NjIzMDBmZjgyNWM4ODdhNTRjODAwZmQ4YWY4NmY4MThiMzdhNzJi
15
- ODI2M2UzMDcyOTMyODU5NjE3ODNhMjc3YzM0NGY5MTVkNjkzYTY=
13
+ MjcyODM0MmExYjBlOGVjZTJjZDE3M2NkYTA1NjQwYmE4MGI0NjQ0MTBkMDYx
14
+ M2EzYTI3YjU0Yzg5NWExZDdjNTc5ODI1ZTIwMjVjMTkzMjgwZDcxYTFlOGJj
15
+ MTZkMjIxYTJhYWJhNDMyMjEwN2ZlMDkzY2Y3NTY4NDNkNzAxNGE=
@@ -1,305 +1,306 @@
1
-
2
- var ProductController = function(params) { this.init(params); };
3
-
4
- ProductController.prototype = {
5
-
6
- product: false,
7
- option_values: [[], [], []],
8
-
9
- init: function() {
10
- self.$price = self.$product.find('#product-price');
11
- $("<span id='percent-off'></span").insertAfter(self.$price);
12
- $("<span id='sale-price'></span").insertBefore(self.$price);
13
- if (!self.$product.length) return false;
14
- },
15
-
16
- refresh: function(after)
17
- {
18
- var that = this;
19
- $.ajax({
20
- url: '/products/' + that.product.id + '/info',
21
- type: 'get',
22
- success: function(resp) {
23
- that.product = resp.product;
24
- that.option_values = [that.option1_values, that.option2_values, that.option3_values];
25
- that.render();
26
- that.set_variant(self.get_initial_variant());
27
- that.set_options_from_variant(self.variant);
28
- }
29
- );
30
- },
31
-
32
- render: function()
33
- {
34
- var that = this;
35
- that.render_images();
36
- that.render_options();
37
- $('#message').empty();
38
- },
39
-
40
- initalize_zoom: function(image_url)
41
- {
42
- var big_image = $("#product-images").children("figure").first();
43
- big_image.data("zoom-image",image_url);
44
- big_image.elevateZoom();
45
- },
46
-
47
- render_images: function()
48
- {
49
- var that = this;
50
- var div = $('<div/>').append($('<figure/>').attr('id', 'main_image').click(function(e) {
51
- window.location = $(e.target).css('background-image').match(/^url\("(.*)"\)$/)[1];
52
- }));
53
-
54
- if (that.product.images.length > 0)
55
- {
56
- var ul = $('<ul/>');
57
- $.each(product.images, function(i, image) {
58
- ul.append(
59
- $('<li/>').data('id', image.id).append(
60
- $('<figure/>')
61
- .data('url-large', image.urls.large)
62
- .data('url-huge' , image.urls.huge)
63
- .css('background-image', "url(" + image.urls.thumb + ")")
64
- .click(function(e) {
65
- $('#main_image').css('background-image', 'url(' + $(this).data('url-large') + ')');
66
- that.initalize_zoom($(this).data('url-huge'));
67
- })
68
- )
69
- );
70
- });
71
- div.append(ul);
72
- }
73
- else
74
- {
75
- div.append($('<p/>').html("This product doesn't have any images yet."));
76
- }
77
- $('#product-images').empty().append(div);
78
- },
79
-
80
- render_options: function()
81
- {
82
- var that = this;
83
- var div = $('<div/>');
84
-
85
- if (that.product.options.length > 0)
86
- {
87
- $.each(that.product.options, function(i, option) {
88
- div.append($('<h3>').html(option));
89
- var ul = $('<ul/>').attr('id', 'option' + (i + 1)).data('name', option);
90
- $.each(that.option_values[i], function(j, option_value) {
91
- ul.append($('<li/>')
92
- .attr('id', 'option_' + i + '_' + j)
93
- .data('i', i).data('j', j).data('value', option_value)
94
- .html(option_value)
95
- .click(function(e) {
96
- that.select_option($(this).data('i'), $(this).data('value'));
97
- })
98
- );
99
- });
100
- div.append(ul);
101
- });
102
- }
103
- else
104
- {
105
- div.append($('<p/>').html("This product doesn't have any options."));
106
- }
107
- $('#product-options').empty().append(div);
108
- },
109
-
110
- selected_options: false,
111
-
112
- select_option: function(option_index, value)
113
- {
114
- var that = this;
115
- that.selected_options[option_index] = (that.selected_options[option_index] == value ? false : value);
116
- $('#product-options li').removeClass('available').removeClass('unavailable').removeClass('selected');
117
-
118
- if (that.product.options.length > 0)
119
- {
120
- $.each(that.product.options, function(i, option) {
121
- $.each(that.option_values[i], function(j, option_value) {
122
- var el = $('#option_' + i + '_' + j);
123
- if (that.variant_is_available(i, option_value))
124
- {
125
- el.addClass('available');
126
- if (that.selected_options[i] == option_value)
127
- el.addClass('selected');
128
- }
129
- else
130
- {
131
- el.addClass('unavailable');
132
- }
133
- });
134
- });
135
- }
136
- //self.set_variant(self.get_variant_from_options(self.get_current_options()));
137
- },
138
-
139
- variant_is_available: function(option_index, option_value)
140
- {
141
- var that = this;
142
- var exists = true;
143
-
144
- var options_array = [];
145
- $.each(that.product.options, function(i, option) {
146
- if (that.selected_option[i] == false) // Any option will work
147
- {
148
- options_array[i] = that.option_values[i];
149
- }
150
- else if (i == option_index) // Only the given option_value will work
151
- {
152
- options_array[i] = [option_value];
153
- }
154
- else // Only the previously selected option will work
155
- {
156
- options_array[i] = [that.selected_option[i]];
157
- }
158
- });
159
-
160
- var found_it = false;
161
- $.each(that.product.variants, function(i, v) {
162
- var matches = true;
163
- $.each(options_array, function(j, option_values) {
164
- if (option_values.index_of(v['option'+j]) != -1)
165
- {
166
- matches = false;
167
- return false;
168
- }
169
- });
170
- if (matches)
171
- {
172
- found_it = true;
173
- return false;
174
- }
175
- });
176
- return found_it;
177
- },
178
-
179
- variant_for_options: function()
180
- {
181
- var that = this;
182
- var exists = true;
183
-
184
- var options_array = [];
185
- $.each(that.product.options, function(i, option) {
186
- options_array[i] = that.selected_option[i];
187
- });
188
-
189
- var matching_variant = false;
190
- $.each(that.product.variants, function(i, v) {
191
- var matches = true;
192
- $.each(options_array, function(j, option_value) {
193
- if (option_value != v['option'+j]) { matches = false; return false; }
194
- });
195
- if (matches) { matching_variant = v; return false; }
196
- });
197
- return matching_variant;
198
- },
199
-
200
- //
201
- // Variant Methods
202
- //
203
-
204
- initial_variant: function ()
205
- {
206
- var that = this;
207
- var available_variants = $.grep(that.product.variants, function(v) { return v.quantity_in_stock > 0; });
208
-
209
- if (!available_variants)
210
- $('#add-to-cart').after($('<p/>').addClass('message error').text('Out of Stock')).remove();
211
-
212
- variant = available_variants ? available_variants[0] : that.product.variants[0];
213
- return variant;
214
- },
215
-
216
- self.set_variant = function(variant) {
217
- self.variant = variant;
218
- Caboose.Store.Modules.Cart.set_variant(variant);
219
- if (variant) self.set_image_from_variant(variant);
220
- if (variant && self.$price.length) self.$price.empty().text('$' + parseFloat((variant.price * 100) / 100).toFixed(2));
221
- if (variant && self.variant_on_sale(variant)) {
222
- self.$price.addClass("on-sale");
223
- var percent = 100 - ((variant.sale_price / variant.price) * 100).toFixed(0);
224
- $("#percent-off").text("SALE! Save " + percent + "%");
225
- $("#sale-price").text('$' + parseFloat((variant.sale_price * 100) / 100).toFixed(2));
226
- }
227
- else {
228
- self.$price.removeClass("on-sale");
229
- $("#percent-off").text('');
230
- $("#sale-price").text('');
231
- }
232
- },
233
-
234
- variant_on_sale: function(variant)
235
- {
236
- if (variant.sale_price != "" && variant.sale_price != 0)
237
- {
238
- var d = new Date();
239
- if (variant.date_sale_starts && d < variant.date_sale_starts) return false;
240
- if (variant.date_sale_ends && d > variant.date_sale_ends) return false;
241
- return true;
242
- }
243
- return false;
244
- },
245
-
246
- get_variant: function(variant_id)
247
- {
248
- for (var v in this.product.variants)
249
- if (v.id == variant_id)
250
- return v;
251
- return false;
252
- },
253
-
254
- //
255
- // Option Methods
256
- //
257
-
258
- self.get_option_attribute = function(option)
259
- {
260
- optionName = _.isObject(option) ? option.name : option;
261
- if (self.product.option1 == optionName) { return 'option1'; }
262
- else if (self.product.option2 == optionName) { return 'option2'; }
263
- else if (self.product.option3 == optionName) { return 'option3'; }
264
- },
265
-
266
- self.get_current_options = function()
267
- {
268
- var options = [];
269
-
270
- self.$options.children('ul').each(function(index, element) {
271
- var $option = $(element);
272
-
273
- options.push({
274
- name: $option.data('name'),
275
- value: $option.children('.selected').first().data('value')
276
- });
277
- });
278
-
279
- return options;
280
- },
281
-
282
- //
283
- // Image Methods
284
- //
285
-
286
- set_image_from_variant: function(variant)
287
- {
288
- if (!variant || !variant.images || variant.images.length == 0 || !variant.images[0]) return;
289
-
290
- $('#main_image').css('background-image', 'url(' + $(this).data('url-large') + ')');
291
- that.initalize_zoom($(this).data('url-huge'));
292
-
293
- var $figure = self.$images.children('figure');
294
- if (variant.images && variant.images.length > 0 && variant.images[0]) {
295
- $figure.css('background-image', 'url(' + variant.images[0].urls.large + ')');
296
- self.initalize_zoom(variant.images[0].urls.huge);
297
- } else if ($figure.css('background-image').toLowerCase() == 'none') {
298
- $figure.css('background-image', 'url(' + _.first(self.product.images).urls.large + ')');
299
- self.initalize_zoom(_.first(self.product.images).urls.huge);
300
- }
301
-
302
- };
303
-
304
- return self;
305
- }).call(Caboose.Store);
1
+ //
2
+ //var ProductController = function(params) { this.init(params); };
3
+ //
4
+ //ProductController.prototype = {
5
+ //
6
+ // product: false,
7
+ // option_values: [[], [], []],
8
+ //
9
+ // init: function() {
10
+ // self.$price = self.$product.find('#product-price');
11
+ // $("<span id='percent-off'></span").insertAfter(self.$price);
12
+ // $("<span id='sale-price'></span").insertBefore(self.$price);
13
+ // if (!self.$product.length) return false;
14
+ // },
15
+ //
16
+ // refresh: function(after)
17
+ // {
18
+ // var that = this;
19
+ // $.ajax({
20
+ // url: '/products/' + that.product.id + '/info',
21
+ // type: 'get',
22
+ // success: function(resp) {
23
+ // that.product = resp.product;
24
+ // that.option_values = [that.option1_values, that.option2_values, that.option3_values];
25
+ // that.render();
26
+ // that.set_variant(self.get_initial_variant());
27
+ // that.set_options_from_variant(self.variant);
28
+ // }
29
+ // );
30
+ // },
31
+ //
32
+ // render: function()
33
+ // {
34
+ // var that = this;
35
+ // that.render_images();
36
+ // that.render_options();
37
+ // $('#message').empty();
38
+ // },
39
+ //
40
+ // initalize_zoom: function(image_url)
41
+ // {
42
+ // var big_image = $("#product-images").children("figure").first();
43
+ // big_image.data("zoom-image",image_url);
44
+ // big_image.elevateZoom();
45
+ // },
46
+ //
47
+ // render_images: function()
48
+ // {
49
+ // var that = this;
50
+ // var div = $('<div/>').append($('<figure/>').attr('id', 'main_image').click(function(e) {
51
+ // window.location = $(e.target).css('background-image').match(/^url\("(.*)"\)$/)[1];
52
+ // }));
53
+ //
54
+ // if (that.product.images.length > 0)
55
+ // {
56
+ // var ul = $('<ul/>');
57
+ // $.each(product.images, function(i, image) {
58
+ // ul.append(
59
+ // $('<li/>').data('id', image.id).append(
60
+ // $('<figure/>')
61
+ // .data('url-large', image.urls.large)
62
+ // .data('url-huge' , image.urls.huge)
63
+ // .css('background-image', "url(" + image.urls.thumb + ")")
64
+ // .click(function(e) {
65
+ // $('#main_image').css('background-image', 'url(' + $(this).data('url-large') + ')');
66
+ // that.initalize_zoom($(this).data('url-huge'));
67
+ // })
68
+ // )
69
+ // );
70
+ // });
71
+ // div.append(ul);
72
+ // }
73
+ // else
74
+ // {
75
+ // div.append($('<p/>').html("This product doesn't have any images yet."));
76
+ // }
77
+ // $('#product-images').empty().append(div);
78
+ // },
79
+ //
80
+ // render_options: function()
81
+ // {
82
+ // var that = this;
83
+ // var div = $('<div/>');
84
+ //
85
+ // if (that.product.options.length > 0)
86
+ // {
87
+ // $.each(that.product.options, function(i, option) {
88
+ // div.append($('<h3>').html(option));
89
+ // var ul = $('<ul/>').attr('id', 'option' + (i + 1)).data('name', option);
90
+ // $.each(that.option_values[i], function(j, option_value) {
91
+ // ul.append($('<li/>')
92
+ // .attr('id', 'option_' + i + '_' + j)
93
+ // .data('i', i).data('j', j).data('value', option_value)
94
+ // .html(option_value)
95
+ // .click(function(e) {
96
+ // that.select_option($(this).data('i'), $(this).data('value'));
97
+ // })
98
+ // );
99
+ // });
100
+ // div.append(ul);
101
+ // });
102
+ // }
103
+ // else
104
+ // {
105
+ // div.append($('<p/>').html("This product doesn't have any options."));
106
+ // }
107
+ // $('#product-options').empty().append(div);
108
+ // },
109
+ //
110
+ // selected_options: false,
111
+ //
112
+ // select_option: function(option_index, value)
113
+ // {
114
+ // var that = this;
115
+ // that.selected_options[option_index] = (that.selected_options[option_index] == value ? false : value);
116
+ // $('#product-options li').removeClass('available').removeClass('unavailable').removeClass('selected');
117
+ //
118
+ // if (that.product.options.length > 0)
119
+ // {
120
+ // $.each(that.product.options, function(i, option) {
121
+ // $.each(that.option_values[i], function(j, option_value) {
122
+ // var el = $('#option_' + i + '_' + j);
123
+ // if (that.variant_is_available(i, option_value))
124
+ // {
125
+ // el.addClass('available');
126
+ // if (that.selected_options[i] == option_value)
127
+ // el.addClass('selected');
128
+ // }
129
+ // else
130
+ // {
131
+ // el.addClass('unavailable');
132
+ // }
133
+ // });
134
+ // });
135
+ // }
136
+ // //self.set_variant(self.get_variant_from_options(self.get_current_options()));
137
+ // },
138
+ //
139
+ // variant_is_available: function(option_index, option_value)
140
+ // {
141
+ // var that = this;
142
+ // var exists = true;
143
+ //
144
+ // var options_array = [];
145
+ // $.each(that.product.options, function(i, option) {
146
+ // if (that.selected_option[i] == false) // Any option will work
147
+ // {
148
+ // options_array[i] = that.option_values[i];
149
+ // }
150
+ // else if (i == option_index) // Only the given option_value will work
151
+ // {
152
+ // options_array[i] = [option_value];
153
+ // }
154
+ // else // Only the previously selected option will work
155
+ // {
156
+ // options_array[i] = [that.selected_option[i]];
157
+ // }
158
+ // });
159
+ //
160
+ // var found_it = false;
161
+ // $.each(that.product.variants, function(i, v) {
162
+ // var matches = true;
163
+ // $.each(options_array, function(j, option_values) {
164
+ // if (option_values.index_of(v['option'+j]) != -1)
165
+ // {
166
+ // matches = false;
167
+ // return false;
168
+ // }
169
+ // });
170
+ // if (matches)
171
+ // {
172
+ // found_it = true;
173
+ // return false;
174
+ // }
175
+ // });
176
+ // return found_it;
177
+ // },
178
+ //
179
+ // variant_for_options: function()
180
+ // {
181
+ // var that = this;
182
+ // var exists = true;
183
+ //
184
+ // var options_array = [];
185
+ // $.each(that.product.options, function(i, option) {
186
+ // options_array[i] = that.selected_option[i];
187
+ // });
188
+ //
189
+ // var matching_variant = false;
190
+ // $.each(that.product.variants, function(i, v) {
191
+ // var matches = true;
192
+ // $.each(options_array, function(j, option_value) {
193
+ // if (option_value != v['option'+j]) { matches = false; return false; }
194
+ // });
195
+ // if (matches) { matching_variant = v; return false; }
196
+ // });
197
+ // return matching_variant;
198
+ // },
199
+ //
200
+ // //
201
+ // // Variant Methods
202
+ // //
203
+ //
204
+ // initial_variant: function ()
205
+ // {
206
+ // var that = this;
207
+ // var available_variants = $.grep(that.product.variants, function(v) { return v.quantity_in_stock > 0; });
208
+ //
209
+ // if (!available_variants)
210
+ // $('#add-to-cart').after($('<p/>').addClass('message error').text('Out of Stock')).remove();
211
+ //
212
+ // variant = available_variants ? available_variants[0] : that.product.variants[0];
213
+ // return variant;
214
+ // },
215
+ //
216
+ // self.set_variant = function(variant) {
217
+ // self.variant = variant;
218
+ // Caboose.Store.Modules.Cart.set_variant(variant);
219
+ // if (variant) self.set_image_from_variant(variant);
220
+ // if (variant && self.$price.length) self.$price.empty().text('$' + parseFloat((variant.price * 100) / 100).toFixed(2));
221
+ // if (variant && self.variant_on_sale(variant)) {
222
+ // self.$price.addClass("on-sale");
223
+ // var percent = 100 - ((variant.sale_price / variant.price) * 100).toFixed(0);
224
+ // $("#percent-off").text("SALE! Save " + percent + "%");
225
+ // $("#sale-price").text('$' + parseFloat((variant.sale_price * 100) / 100).toFixed(2));
226
+ // }
227
+ // else {
228
+ // self.$price.removeClass("on-sale");
229
+ // $("#percent-off").text('');
230
+ // $("#sale-price").text('');
231
+ // }
232
+ // },
233
+ //
234
+ // variant_on_sale: function(variant)
235
+ // {
236
+ // if (variant.sale_price != "" && variant.sale_price != 0)
237
+ // {
238
+ // var d = new Date();
239
+ // if (variant.date_sale_starts && d < variant.date_sale_starts) return false;
240
+ // if (variant.date_sale_ends && d > variant.date_sale_ends) return false;
241
+ // return true;
242
+ // }
243
+ // return false;
244
+ // },
245
+ //
246
+ // get_variant: function(variant_id)
247
+ // {
248
+ // for (var v in this.product.variants)
249
+ // if (v.id == variant_id)
250
+ // return v;
251
+ // return false;
252
+ // },
253
+ //
254
+ // //
255
+ // // Option Methods
256
+ // //
257
+ //
258
+ // self.get_option_attribute = function(option)
259
+ // {
260
+ // optionName = _.isObject(option) ? option.name : option;
261
+ // if (self.product.option1 == optionName) { return 'option1'; }
262
+ // else if (self.product.option2 == optionName) { return 'option2'; }
263
+ // else if (self.product.option3 == optionName) { return 'option3'; }
264
+ // },
265
+ //
266
+ // self.get_current_options = function()
267
+ // {
268
+ // var options = [];
269
+ //
270
+ // self.$options.children('ul').each(function(index, element) {
271
+ // var $option = $(element);
272
+ //
273
+ // options.push({
274
+ // name: $option.data('name'),
275
+ // value: $option.children('.selected').first().data('value')
276
+ // });
277
+ // });
278
+ //
279
+ // return options;
280
+ // },
281
+ //
282
+ // //
283
+ // // Image Methods
284
+ // //
285
+ //
286
+ // set_image_from_variant: function(variant)
287
+ // {
288
+ // if (!variant || !variant.images || variant.images.length == 0 || !variant.images[0]) return;
289
+ //
290
+ // $('#main_image').css('background-image', 'url(' + $(this).data('url-large') + ')');
291
+ // that.initalize_zoom($(this).data('url-huge'));
292
+ //
293
+ // var $figure = self.$images.children('figure');
294
+ // if (variant.images && variant.images.length > 0 && variant.images[0]) {
295
+ // $figure.css('background-image', 'url(' + variant.images[0].urls.large + ')');
296
+ // self.initalize_zoom(variant.images[0].urls.huge);
297
+ // } else if ($figure.css('background-image').toLowerCase() == 'none') {
298
+ // $figure.css('background-image', 'url(' + _.first(self.product.images).urls.large + ')');
299
+ // self.initalize_zoom(_.first(self.product.images).urls.huge);
300
+ // }
301
+ //
302
+ // };
303
+ //
304
+ // return self;
305
+ //}).call(Caboose.Store);
306
+ //
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.5.191'
2
+ VERSION = '0.5.192'
3
3
  end
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.191
4
+ version: 0.5.192
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry