caboose-cms 0.9.29 → 0.9.30
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/caboose/checkout/checkout_controller.js +19 -15
- data/app/assets/javascripts/caboose/checkout/shipping_address_controller.js +20 -19
- data/app/assets/javascripts/caboose/checkout/shipping_method_controller.js +29 -9
- data/app/assets/javascripts/caboose/checkout/stripe_payment_method_controller.js +6 -6
- data/lib/caboose/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb82d8896301aa81a5dd5c31515e674a8d94ca3e
|
4
|
+
data.tar.gz: a99eeebf6c56d93dc437fd3ec6126e57f8ea360d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91bfbab79102337d1f8faa9e7ddd389d27a88a4e0e0286c41a196976d8deea9bcb42d29c335a1c6897839cecc367c873de0d6de8a90264c5b7275f7614e63ac9
|
7
|
+
data.tar.gz: 409be109f1ab404760d03222a93b180e97c099d878604cd508d310e9419b1428eb04d90aa2317e2d9f89656d628882f78fffb96fb778c6306ca4bf28c1269a1e
|
@@ -81,7 +81,7 @@ CheckoutController.prototype = {
|
|
81
81
|
success: function(resp) {
|
82
82
|
that.invoice = resp;
|
83
83
|
$.each(that.invoice.invoice_packages, function(i, op) {
|
84
|
-
that.invoice.invoice_packages[i].shipping_method_controller = new ShippingMethodController({ cc: that, invoice_package_id: op.id });
|
84
|
+
that.invoice.invoice_packages[i].shipping_method_controller = new ShippingMethodController({ cc: that, invoice_package_id: op.id, package_number: i });
|
85
85
|
});
|
86
86
|
if (!that.invoice.shipping_address) that.invoice.shipping_address = that.empty_address();
|
87
87
|
//if (!that.invoice.billing_address) that.invoice.billing_address = that.empty_address();
|
@@ -188,31 +188,35 @@ CheckoutController.prototype = {
|
|
188
188
|
|
189
189
|
print_ready_message: function()
|
190
190
|
{
|
191
|
-
var that = this;
|
192
|
-
var
|
193
|
-
if (!that.
|
194
|
-
|
191
|
+
var that = this;
|
192
|
+
var msg = that.shipping_address_controller.ready_error();
|
193
|
+
if (!msg && that.invoice.payment_terms == 'pia') msg = that.payment_method_controller.ready_error()
|
194
|
+
$.each(that.invoice.invoice_packages, function(i, op) {
|
195
|
+
if (!msg) msg = that.invoice.invoice_packages[i].shipping_method_controller.ready_error();
|
196
|
+
});
|
195
197
|
|
196
|
-
if (
|
198
|
+
if (msg)
|
197
199
|
{
|
198
|
-
$('#message').empty().append($('<p/>').
|
199
|
-
that.print(true);
|
200
|
-
})));
|
200
|
+
$('#message').empty().append($('<p/>').addClass('note warning').append(msg));
|
201
201
|
}
|
202
202
|
else
|
203
203
|
{
|
204
|
-
$('#message').empty().append($('<p/>').
|
204
|
+
$('#message').empty().append($('<p/>').append($('<input/>').attr('type', 'button').val('Continue to Confirmation').click(function(e) {
|
205
|
+
that.print(true);
|
206
|
+
})));
|
205
207
|
}
|
206
208
|
},
|
207
209
|
|
208
210
|
print_confirm_message: function()
|
209
211
|
{
|
210
212
|
var that = this;
|
211
|
-
var
|
212
|
-
if (!that.
|
213
|
-
|
214
|
-
|
215
|
-
|
213
|
+
var msg = that.shipping_address_controller.ready_error();
|
214
|
+
if (!msg && that.invoice.payment_terms == 'pia') msg = that.payment_method_controller.ready_error();
|
215
|
+
$.each(that.invoice.invoice_packages, function(i, op) {
|
216
|
+
if (!msg) msg = that.invoice.invoice_packages[i].shipping_method_controller.ready_error();
|
217
|
+
});
|
218
|
+
|
219
|
+
if (msg)
|
216
220
|
{
|
217
221
|
that.refresh_and_print();
|
218
222
|
return;
|
@@ -83,33 +83,34 @@ ShippingAddressController.prototype = {
|
|
83
83
|
update_url: '/checkout/shipping-address',
|
84
84
|
authenticity_token: that.cc.authenticity_token,
|
85
85
|
attributes: [
|
86
|
-
{ name: 'first_name' , wrapper_class: 'first_name' , nice_name: 'First Name' , type: 'text' , value: sa.first_name , width: '50%' , fixed_placeholder: false },
|
87
|
-
{ name: 'last_name' , wrapper_class: 'last_name' , nice_name: 'Last Name' , type: 'text' , value: sa.last_name , width: '50%' , fixed_placeholder: false },
|
88
|
-
{ name: 'company' , wrapper_class: 'company' , nice_name: 'Company' , type: 'text' , value: sa.company , width: '100%' , fixed_placeholder: false },
|
89
|
-
{ name: 'address1' , wrapper_class: 'address1' , nice_name: 'Address 1' , type: 'text' , value: sa.address1 , width: '100%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function()
|
90
|
-
{ name: 'address2' , wrapper_class: 'address2' , nice_name: 'Address 2' , type: 'text' , value: sa.address2 , width: '100%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function()
|
91
|
-
{ name: 'city' , wrapper_class: 'city' , nice_name: 'City' , type: 'text' , value: sa.city , width: '25%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function()
|
92
|
-
{ name: 'zip' , wrapper_class: 'zip' , nice_name: 'Zip' , type: 'text' , value: sa.zip , width: '25%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function()
|
93
|
-
{ name: 'state' , wrapper_class: 'state' , nice_name: 'State' , type: 'select' , value: sa.state , width: '25%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function()
|
86
|
+
{ name: 'first_name' , wrapper_class: 'first_name' , nice_name: 'First Name' , type: 'text' , value: sa.first_name , width: '50%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function() { that.cc.invoice.shipping_address.first_name = this.value; that.cc.print_ready_message(); }},
|
87
|
+
{ name: 'last_name' , wrapper_class: 'last_name' , nice_name: 'Last Name' , type: 'text' , value: sa.last_name , width: '50%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function() { that.cc.invoice.shipping_address.last_name = this.value; that.cc.print_ready_message(); }},
|
88
|
+
{ name: 'company' , wrapper_class: 'company' , nice_name: 'Company' , type: 'text' , value: sa.company , width: '100%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function() { that.cc.invoice.shipping_address.company = this.value; that.cc.print_ready_message(); }},
|
89
|
+
{ name: 'address1' , wrapper_class: 'address1' , nice_name: 'Address 1' , type: 'text' , value: sa.address1 , width: '100%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function() { that.cc.invoice.shipping_address.address1 = this.value; if (this.value != this.value_old) that.cc.refresh_cart(function() { that.cc.print_ready_message(); }); }},
|
90
|
+
{ name: 'address2' , wrapper_class: 'address2' , nice_name: 'Address 2' , type: 'text' , value: sa.address2 , width: '100%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function() { that.cc.invoice.shipping_address.address2 = this.value; if (this.value != this.value_old) that.cc.refresh_cart(function() { that.cc.print_ready_message(); }); }},
|
91
|
+
{ name: 'city' , wrapper_class: 'city' , nice_name: 'City' , type: 'text' , value: sa.city , width: '25%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function() { that.cc.invoice.shipping_address.city = this.value; if (this.value != this.value_old) that.cc.refresh_cart(function() { that.cc.print_ready_message(); }); }},
|
92
|
+
{ name: 'zip' , wrapper_class: 'zip' , nice_name: 'Zip' , type: 'text' , value: sa.zip , width: '25%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function() { that.cc.invoice.shipping_address.zip = this.value; if (this.value != this.value_old) that.cc.refresh_cart(function() { that.cc.print_ready_message(); }); }},
|
93
|
+
{ name: 'state' , wrapper_class: 'state' , nice_name: 'State' , type: 'select' , value: sa.state , width: '25%' , fixed_placeholder: false , before_update: function() { this.value_old = this.value_clean; }, after_update: function() { that.cc.invoice.shipping_address.state = this.value; if (this.value != this.value_old) that.cc.refresh_cart(function() { that.cc.print_ready_message(); }); }, options_url: '/checkout/state-options', show_empty_option: true, empty_text: '-- State --' }
|
94
94
|
]
|
95
95
|
});
|
96
96
|
},
|
97
97
|
|
98
|
-
|
98
|
+
ready_error: function()
|
99
99
|
{
|
100
100
|
var that = this;
|
101
|
-
if (that.cc.allow_instore_pickup && that.cc.invoice.instore_pickup) return
|
102
|
-
if (that.cc.all_downloadable()) return
|
103
|
-
if (that.cc.is_empty_address(that.cc.invoice.shipping_address))
|
101
|
+
if (that.cc.allow_instore_pickup && that.cc.invoice.instore_pickup) return null;
|
102
|
+
if (that.cc.all_downloadable()) return null;
|
103
|
+
if (that.cc.is_empty_address(that.cc.invoice.shipping_address))
|
104
|
+
return "Please enter your shipping address";
|
104
105
|
|
105
106
|
var sa = that.cc.invoice.shipping_address;
|
106
|
-
if (!sa.first_name || sa.first_name.length == 0) return
|
107
|
-
if (!sa.last_name || sa.last_name.length == 0) return
|
108
|
-
if (!sa.address1 || sa.address1.length == 0) return
|
109
|
-
if (!sa.city || sa.city.length == 0) return
|
110
|
-
if (!sa.state || sa.state.length == 0) return
|
111
|
-
if (!sa.zip || sa.zip.length == 0) return
|
107
|
+
if (!sa.first_name || sa.first_name.length == 0) return "Please enter your shipping address first name";
|
108
|
+
if (!sa.last_name || sa.last_name.length == 0) return "Please enter your shipping address last name";
|
109
|
+
if (!sa.address1 || sa.address1.length == 0) return "Please enter your shipping address";
|
110
|
+
if (!sa.city || sa.city.length == 0) return "Please enter your shipping address city";
|
111
|
+
if (!sa.state || sa.state.length == 0) return "Please enter your shipping address state";
|
112
|
+
if (!sa.zip || sa.zip.length == 0) return "Please enter your shipping address zip";
|
112
113
|
|
113
|
-
return
|
114
|
+
return null;
|
114
115
|
}
|
115
116
|
};
|
@@ -5,12 +5,15 @@ ShippingMethodController.prototype = {
|
|
5
5
|
|
6
6
|
cc: false, // CheckoutController
|
7
7
|
invoice_package_id: false,
|
8
|
+
invoice_package: false,
|
9
|
+
package_number: false,
|
8
10
|
|
9
11
|
init: function(params)
|
10
12
|
{
|
11
13
|
var that = this;
|
12
14
|
for (var i in params)
|
13
15
|
that[i] = params[i];
|
16
|
+
that.invoice_package = that.cc.invoice_package_for_id(that.invoice_package_id);
|
14
17
|
},
|
15
18
|
|
16
19
|
print: function()
|
@@ -19,7 +22,7 @@ ShippingMethodController.prototype = {
|
|
19
22
|
var div = $('<div/>');
|
20
23
|
|
21
24
|
var sa = that.cc.invoice.shipping_address;
|
22
|
-
var op = that.
|
25
|
+
var op = that.invoice_package;
|
23
26
|
var sm = op && op.shipping_method ? op.shipping_method : false;
|
24
27
|
|
25
28
|
if (!op)
|
@@ -53,7 +56,7 @@ ShippingMethodController.prototype = {
|
|
53
56
|
{
|
54
57
|
var that = this;
|
55
58
|
var div = $('<div/>').append($('<p/>').addClass('loading').html("Getting rates..."));
|
56
|
-
var op = that.
|
59
|
+
var op = that.invoice_package;
|
57
60
|
|
58
61
|
$('#invoice_package_' + that.invoice_package_id + '_shipping_method').empty().append(div);
|
59
62
|
|
@@ -91,7 +94,7 @@ ShippingMethodController.prototype = {
|
|
91
94
|
});
|
92
95
|
select.change(function(e) {
|
93
96
|
var opt = $(this).find('option').filter(':selected');
|
94
|
-
that.update(opt.val(), opt.data('total'));
|
97
|
+
that.update(opt.val(), opt.data('total'));
|
95
98
|
});
|
96
99
|
}
|
97
100
|
div = $('<div/>')
|
@@ -103,9 +106,7 @@ ShippingMethodController.prototype = {
|
|
103
106
|
},
|
104
107
|
|
105
108
|
update: function(shipping_method_id, total)
|
106
|
-
{
|
107
|
-
//console.log('shipping_method_id = ' + shipping_method_id);
|
108
|
-
//console.log('total = ' + total);
|
109
|
+
{
|
109
110
|
var that = this;
|
110
111
|
$.ajax({
|
111
112
|
url: '/checkout/shipping',
|
@@ -115,10 +116,29 @@ ShippingMethodController.prototype = {
|
|
115
116
|
shipping_method_id: shipping_method_id,
|
116
117
|
total: total
|
117
118
|
},
|
118
|
-
success: function(resp) {
|
119
|
+
success: function(resp) {
|
119
120
|
if (resp.error) $('#invoice_package_' + that.invoice_package_id + '_message').html("<p class='note error'>" + resp.error + "</p>");
|
120
|
-
if (resp.success)
|
121
|
+
if (resp.success)
|
122
|
+
{
|
123
|
+
that.invoice_package.shipping_method_id = shipping_method_id;
|
124
|
+
that.invoice_package.total = total;
|
125
|
+
that.cc.refresh_totals();
|
126
|
+
}
|
127
|
+
that.cc.print_ready_message();
|
121
128
|
}
|
122
129
|
});
|
123
|
-
}
|
130
|
+
},
|
131
|
+
|
132
|
+
ready_error: function()
|
133
|
+
{
|
134
|
+
var that = this;
|
135
|
+
if (that.cc.allow_instore_pickup && that.cc.invoice.instore_pickup) return null;
|
136
|
+
if (that.cc.all_downloadable()) return null;
|
137
|
+
|
138
|
+
var op = that.invoice_package;
|
139
|
+
if (!op) return "Please select a shipping method for package " + (that.package_number + 1);
|
140
|
+
if (!op.shipping_method_id) return "Please select a shipping method for package " + (that.package_number + 1);
|
141
|
+
|
142
|
+
return null;
|
143
|
+
}
|
124
144
|
};
|
@@ -212,13 +212,13 @@ StripePaymentMethodController.prototype = {
|
|
212
212
|
});
|
213
213
|
},
|
214
214
|
|
215
|
-
|
215
|
+
ready_error: function()
|
216
216
|
{
|
217
217
|
var that = this;
|
218
|
-
if (that.cc.invoice.total <= 0.00) return
|
219
|
-
if (!that.customer_id ) return
|
220
|
-
if (!that.card_brand ) return
|
221
|
-
if (!that.card_last4 ) return
|
222
|
-
return
|
218
|
+
if (that.cc.invoice.total <= 0.00) return null;
|
219
|
+
if (!that.customer_id ) return "Please enter your credit card information.";
|
220
|
+
if (!that.card_brand ) return "Please enter your credit card information.";
|
221
|
+
if (!that.card_last4 ) return "Please enter your credit card information.";
|
222
|
+
return null;
|
223
223
|
}
|
224
224
|
};
|
data/lib/caboose/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.30
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|