nimbleshop_simply 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/images/nimbleshop_simply/tick.png +0 -0
- data/app/assets/javascripts/nimbleshop_simply/creditcard.js.coffee +6 -0
- data/app/assets/javascripts/nimbleshop_simply/enable_fancybox.js.coffee +2 -0
- data/app/assets/javascripts/nimbleshop_simply/load_states.js.coffee +1 -1
- data/app/assets/javascripts/nimbleshop_simply/remove_item_from_cart.js.coffee +1 -1
- data/app/assets/javascripts/nimbleshop_simply/simply.js +2 -0
- data/app/assets/javascripts/nimbleshop_simply/thumbnail.js.coffee +1 -1
- data/app/assets/javascripts/nimbleshop_simply/vendor/jquery.creditCardValidator.coffee +130 -0
- data/app/assets/stylesheets/nimbleshop_simply/creditcard.css.scss +3 -0
- data/app/assets/stylesheets/nimbleshop_simply/simply.css +1 -0
- data/app/controllers/nimbleshop_simply/checkout/payments_controller.rb +1 -0
- data/app/mailers/nimbleshop_simply/mailer.rb +6 -1
- data/app/views/nimbleshop_simply/carts/_line_item.html.erb +1 -1
- data/app/views/nimbleshop_simply/checkout/payments/new.html.erb +1 -1
- data/app/views/nimbleshop_simply/checkout/shipping_addresses/_billing_address.html.erb +1 -1
- data/app/views/nimbleshop_simply/checkout/shipping_addresses/_shipping_address.html.erb +1 -1
- data/app/views/nimbleshop_simply/products/show.html.erb +1 -2
- metadata +10 -6
Binary file
|
@@ -3,7 +3,7 @@ window.NimbleshopSimply = window.NimbleshopSimply || {}
|
|
3
3
|
class NimbleshopSimply.manageStates
|
4
4
|
|
5
5
|
stateCodeField: ($country) ->
|
6
|
-
$country.parents(
|
6
|
+
$country.parents('[data-behavior~=well]').find("[name$='[state_code]']")
|
7
7
|
|
8
8
|
createOption: (state) ->
|
9
9
|
($ "<option />", text: state[0], value: state[1])
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# mouse enter on thumbnail displays the image on the product show page
|
2
2
|
|
3
3
|
$ ->
|
4
|
-
$(
|
4
|
+
$('[data-behavior~=product-image-thumbnail]').on 'mouseenter', ->
|
5
5
|
$this = $(this)
|
6
6
|
itemIndex = $(".thumb").index($this) + 1
|
7
7
|
$(".thumbnails li:nth-child(" + itemIndex + ")").show().siblings().hide()
|
@@ -0,0 +1,130 @@
|
|
1
|
+
###
|
2
|
+
jQuery Credit Card Validator
|
3
|
+
|
4
|
+
Copyright 2012 Pawel Decowski
|
5
|
+
|
6
|
+
This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
|
7
|
+
Unported License. To view a copy of this license, visit:
|
8
|
+
|
9
|
+
http://creativecommons.org/licenses/by-sa/3.0/
|
10
|
+
|
11
|
+
or send a letter to:
|
12
|
+
|
13
|
+
Creative Commons, 444 Castro Street, Suite 900,
|
14
|
+
Mountain View, California, 94041, USA.
|
15
|
+
###
|
16
|
+
|
17
|
+
$ = jQuery
|
18
|
+
|
19
|
+
$.fn.validateCreditCard = (callback) ->
|
20
|
+
card_types = [
|
21
|
+
{
|
22
|
+
name: 'amex'
|
23
|
+
pattern: /^3[47]/
|
24
|
+
valid_length: [ 15 ]
|
25
|
+
}
|
26
|
+
{
|
27
|
+
name: 'diners_club_carte_blanche'
|
28
|
+
pattern: /^30[0-5]/
|
29
|
+
valid_length: [ 14 ]
|
30
|
+
}
|
31
|
+
{
|
32
|
+
name: 'diners_club_international'
|
33
|
+
pattern: /^36/
|
34
|
+
valid_length: [ 14 ]
|
35
|
+
}
|
36
|
+
{
|
37
|
+
name: 'jcb'
|
38
|
+
pattern: /^35(2[89]|[3-8][0-9])/
|
39
|
+
valid_length: [ 16 ]
|
40
|
+
}
|
41
|
+
{
|
42
|
+
name: 'laser'
|
43
|
+
pattern: /^(6304|670[69]|6771)/
|
44
|
+
valid_length: [ 16..19 ]
|
45
|
+
}
|
46
|
+
{
|
47
|
+
name: 'visa_electron'
|
48
|
+
pattern: /^(4026|417500|4508|4844|491(3|7))/
|
49
|
+
valid_length: [ 16 ]
|
50
|
+
}
|
51
|
+
{
|
52
|
+
name: 'visa'
|
53
|
+
pattern: /^4/
|
54
|
+
valid_length: [ 16 ]
|
55
|
+
}
|
56
|
+
{
|
57
|
+
name: 'mastercard'
|
58
|
+
pattern: /^5[1-5]/
|
59
|
+
valid_length: [ 16 ]
|
60
|
+
}
|
61
|
+
{
|
62
|
+
name: 'maestro'
|
63
|
+
pattern: /^(5018|5020|5038|6304|6759|676[1-3])/
|
64
|
+
valid_length: [ 12..19 ]
|
65
|
+
}
|
66
|
+
{
|
67
|
+
name: 'discover'
|
68
|
+
pattern: /^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)/
|
69
|
+
valid_length: [ 16 ]
|
70
|
+
}
|
71
|
+
]
|
72
|
+
|
73
|
+
get_card_type = (number) ->
|
74
|
+
for card_type in card_types
|
75
|
+
if number.match card_type.pattern
|
76
|
+
return card_type
|
77
|
+
|
78
|
+
null
|
79
|
+
|
80
|
+
is_valid_luhn = (number) ->
|
81
|
+
sum = 0
|
82
|
+
|
83
|
+
for digit, n in number.split('').reverse()
|
84
|
+
digit = +digit # the + casts the string to int
|
85
|
+
if n % 2
|
86
|
+
digit *= 2
|
87
|
+
if digit < 10 then sum += digit else sum += digit - 9
|
88
|
+
else
|
89
|
+
sum += digit
|
90
|
+
|
91
|
+
sum % 10 == 0
|
92
|
+
|
93
|
+
is_valid_length = (number, card_type) ->
|
94
|
+
number.length in card_type.valid_length
|
95
|
+
|
96
|
+
validate_number = (number) ->
|
97
|
+
card_type = get_card_type number
|
98
|
+
luhn_valid = false
|
99
|
+
length_valid = false
|
100
|
+
|
101
|
+
if card_type?
|
102
|
+
luhn_valid = is_valid_luhn number
|
103
|
+
length_valid = is_valid_length number, card_type
|
104
|
+
|
105
|
+
callback
|
106
|
+
card_type: card_type
|
107
|
+
luhn_valid: luhn_valid
|
108
|
+
length_valid: length_valid
|
109
|
+
|
110
|
+
validate = ->
|
111
|
+
number = normalize $(this).val()
|
112
|
+
validate_number number
|
113
|
+
|
114
|
+
normalize = (number) ->
|
115
|
+
number.replace /[ -]/g, ''
|
116
|
+
|
117
|
+
this.bind('input', ->
|
118
|
+
$(this).unbind('keyup') # if input event is fired (so is supported) then unbind keyup
|
119
|
+
validate.call this
|
120
|
+
)
|
121
|
+
|
122
|
+
# bind keyup in case input event isn't supported
|
123
|
+
this.bind('keyup', ->
|
124
|
+
validate.call this
|
125
|
+
)
|
126
|
+
|
127
|
+
# run validation straight away in case the card number is prefilled
|
128
|
+
validate.call this unless this.length is 0
|
129
|
+
|
130
|
+
this
|
@@ -9,6 +9,7 @@ module NimbleshopSimply
|
|
9
9
|
@page_sub_title = 'All payments are secure and encrypted. We never store your credit card information.'
|
10
10
|
@creditcard = Creditcard.new
|
11
11
|
@show_shipping_and_tax_info = true
|
12
|
+
@payment_methods = PaymentMethod.enabled.ascending
|
12
13
|
render text: 'No payment method has been setup. Please setup atleast one payment method.' if PaymentMethod.count == 0
|
13
14
|
end
|
14
15
|
|
@@ -6,7 +6,12 @@ module NimbleshopSimply
|
|
6
6
|
layout 'nimbleshop_simply/mailer'
|
7
7
|
|
8
8
|
default from: lambda { Shop.current.from_email }
|
9
|
-
|
9
|
+
|
10
|
+
# for some mysterious reason travis ci loads this file while
|
11
|
+
# generating the test app and it finds that Nimbleshop.config is nil
|
12
|
+
# and the code blows up. The temporary fix is to use respong_to?
|
13
|
+
default_url_options[:host] = Nimbleshop.respond_to?(:config) && Nimbleshop.config.bare_url_with_port
|
14
|
+
|
10
15
|
default_url_options[:protocol] = 'http'
|
11
16
|
|
12
17
|
def order_notification_to_buyer(order_number)
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<%= link_to line_item.product_name, line_item.product, title: line_item.product_name %>
|
11
11
|
</strong>
|
12
12
|
<br />
|
13
|
-
<%= link_to 'Remove', '#', title: 'Remove', class: 'delete remove-item', 'data-permalink' => line_item.product_id %>
|
13
|
+
<%= link_to 'Remove', '#', title: 'Remove', class: 'delete remove-item', 'data-permalink' => line_item.product_id, 'data-behavior' => 'remove-item-from-cart' %>
|
14
14
|
</div>
|
15
15
|
|
16
16
|
<div class="span2">
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<div class='well'>
|
6
6
|
<div class='control-group'>
|
7
7
|
<div class='controls'>
|
8
|
-
<%
|
8
|
+
<% @payment_methods.each do |payment_method| %>
|
9
9
|
<%= self.send("nimbleshop_#{payment_method.demodulized_underscore}_payment_form", current_order) %>
|
10
10
|
<% end %>
|
11
11
|
</div>
|
@@ -10,7 +10,6 @@
|
|
10
10
|
<%= link_to(image_tag(picture.picture_url(:large), alt: @product.name), picture.picture_url(:large_plus),
|
11
11
|
class: 'thumbnail fancybox',
|
12
12
|
rel: 'gallery1') %>
|
13
|
-
|
14
13
|
</li>
|
15
14
|
<% end %>
|
16
15
|
</ul>
|
@@ -24,7 +23,7 @@
|
|
24
23
|
<% if picture.blank? %>
|
25
24
|
|
26
25
|
<% else %>
|
27
|
-
<%= image_tag picture.picture_url(:small), alt: @product.name, class: 'thumb thumbnail' %>
|
26
|
+
<%= image_tag picture.picture_url(:small), alt: @product.name, class: 'thumb thumbnail', 'data-behavior' => 'product-image-thumbnail' %>
|
28
27
|
<% end %>
|
29
28
|
</td>
|
30
29
|
<% end %>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nimbleshop_simply
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,14 +10,14 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-11-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: jquery-rails
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
|
-
- -
|
20
|
+
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 2.1.1
|
23
23
|
type: :runtime
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
none: false
|
27
27
|
requirements:
|
28
|
-
- -
|
28
|
+
- - ~>
|
29
29
|
- !ruby/object:Gem::Version
|
30
30
|
version: 2.1.1
|
31
31
|
- !ruby/object:Gem::Dependency
|
@@ -57,7 +57,9 @@ files:
|
|
57
57
|
- app/assets/images/nimbleshop_simply/facebook.png
|
58
58
|
- app/assets/images/nimbleshop_simply/lock.png
|
59
59
|
- app/assets/images/nimbleshop_simply/mail.png
|
60
|
+
- app/assets/images/nimbleshop_simply/tick.png
|
60
61
|
- app/assets/images/nimbleshop_simply/twitter.png
|
62
|
+
- app/assets/javascripts/nimbleshop_simply/creditcard.js.coffee
|
61
63
|
- app/assets/javascripts/nimbleshop_simply/enable_fancybox.js.coffee
|
62
64
|
- app/assets/javascripts/nimbleshop_simply/load_states.js.coffee
|
63
65
|
- app/assets/javascripts/nimbleshop_simply/order.js.coffee
|
@@ -65,8 +67,10 @@ files:
|
|
65
67
|
- app/assets/javascripts/nimbleshop_simply/shipping_address_same_as_billing_address.js.coffee
|
66
68
|
- app/assets/javascripts/nimbleshop_simply/simply.js
|
67
69
|
- app/assets/javascripts/nimbleshop_simply/thumbnail.js.coffee
|
70
|
+
- app/assets/javascripts/nimbleshop_simply/vendor/jquery.creditCardValidator.coffee
|
68
71
|
- app/assets/stylesheets/nimbleshop_simply/cart.css.scss
|
69
72
|
- app/assets/stylesheets/nimbleshop_simply/cart_button.css.scss
|
73
|
+
- app/assets/stylesheets/nimbleshop_simply/creditcard.css.scss
|
70
74
|
- app/assets/stylesheets/nimbleshop_simply/custom.css.scss
|
71
75
|
- app/assets/stylesheets/nimbleshop_simply/mobile.simply.css
|
72
76
|
- app/assets/stylesheets/nimbleshop_simply/mobile_simply.css
|
@@ -161,7 +165,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
161
165
|
version: '0'
|
162
166
|
segments:
|
163
167
|
- 0
|
164
|
-
hash:
|
168
|
+
hash: 3798655515712139213
|
165
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
170
|
none: false
|
167
171
|
requirements:
|
@@ -170,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
170
174
|
version: '0'
|
171
175
|
segments:
|
172
176
|
- 0
|
173
|
-
hash:
|
177
|
+
hash: 3798655515712139213
|
174
178
|
requirements: []
|
175
179
|
rubyforge_project:
|
176
180
|
rubygems_version: 1.8.24
|