nimbleshop_simply 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (24) hide show
  1. data/app/assets/javascripts/nimbleshop_simply/load_states.js.coffee +10 -26
  2. data/app/assets/javascripts/nimbleshop_simply/mobile.simply.js +4 -0
  3. data/app/assets/javascripts/nimbleshop_simply/order.js.coffee +1 -1
  4. data/app/assets/javascripts/nimbleshop_simply/shipping_address_same_as_billing_address.js.coffee +2 -2
  5. data/app/assets/stylesheets/nimbleshop_simply/cart.css.scss +4 -0
  6. data/app/assets/stylesheets/nimbleshop_simply/mobile.simply.css +7 -0
  7. data/app/assets/stylesheets/nimbleshop_simply/mobile_simply.css +4 -0
  8. data/app/controllers/nimbleshop_simply/carts_controller.rb +0 -6
  9. data/app/controllers/nimbleshop_simply/checkout/payments_controller.rb +1 -0
  10. data/app/views/layouts/simply.mobile.erb +30 -0
  11. data/app/views/nimbleshop_simply/checkout/shipping_addresses/_billing_address.html.erb +0 -7
  12. data/app/views/nimbleshop_simply/checkout/shipping_addresses/_shipping_address.html.erb +1 -8
  13. data/app/views/nimbleshop_simply/checkout/shipping_methods/_no_shipping_method.html.erb +5 -4
  14. data/app/views/nimbleshop_simply/products/_product.mobile.erb +0 -0
  15. data/app/views/nimbleshop_simply/products/_products.mobile.erb +15 -0
  16. data/app/views/nimbleshop_simply/products/index.mobile.erb +15 -0
  17. data/app/views/nimbleshop_simply/shared/_order_summary.html.erb +1 -1
  18. data/app/views/nimbleshop_simply/shared/_order_summary_shipping_address.html.erb +1 -1
  19. data/app/views/nimbleshop_simply/shared/_order_summary_shipping_method.html.erb +1 -1
  20. data/app/views/nimbleshop_simply/shared/_shipping_and_tax_info.html.erb +1 -1
  21. data/config/initializers/add_mime_type.rb +1 -0
  22. data/test/integration/checkout/cart_acceptance_test.rb +23 -0
  23. data/test/integration/checkout/shipping_method_acceptance_test.rb +13 -0
  24. metadata +12 -4
@@ -1,40 +1,24 @@
1
- window.App = window.App || {}
1
+ window.NimbleshopSimply = window.NimbleshopSimply || {}
2
2
 
3
- class window.App.toggleStates
3
+ class NimbleshopSimply.manageStates
4
4
 
5
- toggleVisibility: (country) ->
6
- if @hasRegions country
7
- @stateNameField(country).val('').parents('.control-group').hide()
8
- @stateCodeField(country).val('').parents('.control-group').show()
9
- else
10
- @stateNameField(country).val('').parents('.control-group').show()
11
- @stateCodeField(country).val('').parents('.control-group').hide()
12
-
13
- hasRegions: ($element) ->
14
- window.countryStateCodes[$element.val()].length > 0
15
-
16
- stateNameField: ($element) ->
17
- $element.parents("div.well").find("[name$='[state_name]']")
18
-
19
- stateCodeField: ($element) ->
20
- $element.parents("div.well").find("[name$='[state_code]']")
5
+ stateCodeField: ($country) ->
6
+ $country.parents("div.well").find("[name$='[state_code]']")
21
7
 
22
8
  createOption: (state) ->
23
9
  ($ "<option />", text: state[0], value: state[1])
24
10
 
25
- updateStates: ($element) ->
26
- $stateCode = @stateCodeField($element).html('')
27
- for state in window.countryStateCodes[$element.val()]
11
+ updateStates: ($country) ->
12
+ $stateCode = @stateCodeField($country).html('')
13
+ for state in window.countryStateCodes[$country.val()]
28
14
  $stateCode.append @createOption(state)
29
15
 
30
16
  handler: (evt) =>
31
17
  $country = $(evt.target)
32
- if @hasRegions $country
33
- @updateStates $country
34
- @toggleVisibility $country
18
+ @updateStates $country
35
19
  false
36
20
 
37
21
  constructor: ->
38
22
  ($ "select[name$='[country_code]']").bind('change', @handler)
39
- for country in ($ "select[name$='[country_code]']")
40
- $(country).triggerHandler 'change'
23
+ #for country in ($ "select[name$='[country_code]']")
24
+ #$(country).triggerHandler 'change'
@@ -0,0 +1,4 @@
1
+ //= require jquery
2
+ //= require jquery_ujs
3
+ //= require jquery.mobile
4
+
@@ -1,2 +1,2 @@
1
1
  $ ->
2
- new window.App.toggleStates()
2
+ new window.NimbleshopSimply.manageStates()
@@ -1,10 +1,10 @@
1
- window.NimbleshopSimply = {} if typeof(NimbleshopSimply) == 'undefined'
1
+ window.NimbleshopSimply = window.NimbleshopSimply || {}
2
2
 
3
3
  NimbleshopSimply.toggleBillingAddress = class ToggleBillingAddress
4
4
  constructor: ->
5
5
  @handleToggleCheckBox()
6
6
  $("#order_shipping_address_attributes_use_for_billing").on 'click', =>
7
- this.handleToggleCheckBox()
7
+ @handleToggleCheckBox()
8
8
 
9
9
  handleToggleCheckBox: ->
10
10
  if $("#order_shipping_address_attributes_use_for_billing").is(':checked')
@@ -51,3 +51,7 @@ $bottomColorLight: opacify($bottomColor, 0.5);
51
51
  text-decoration: none;
52
52
  }
53
53
  }
54
+
55
+ .light-link {
56
+ color: #999;
57
+ }
@@ -0,0 +1,7 @@
1
+ p {
2
+ color: red;
3
+ }
4
+
5
+ p.price {
6
+ color: red;
7
+ }
@@ -0,0 +1,4 @@
1
+ p.price {
2
+ margin-top: 10px;
3
+ font-size: 16px;
4
+ }
@@ -3,12 +3,6 @@ module NimbleshopSimply
3
3
 
4
4
  respond_to :html
5
5
 
6
- # this is mostly used for development purpose
7
- def reset
8
- reset_session
9
- redirect_to root_url
10
- end
11
-
12
6
  def show
13
7
  @line_items = current_order.blank? ? [] : current_order.line_items(include: :product).order('id')
14
8
  respond_with @line_items
@@ -8,6 +8,7 @@ module NimbleshopSimply
8
8
  def new
9
9
  @page_sub_title = 'All payments are secure and encrypted. We never store your credit card information.'
10
10
  @creditcard = Creditcard.new
11
+ @show_shipping_and_tax_info = true
11
12
  render text: 'No payment method has been setup. Please setup atleast one payment method.' if PaymentMethod.count == 0
12
13
  end
13
14
 
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title> <%= display_page_title %> </title>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
7
+ <%= stylesheet_link_tag 'nimbleshop_simply/mobile_simply' %>
8
+ <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
9
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
10
+ <script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
11
+
12
+ <%= csrf_meta_tag %>
13
+ </head>
14
+
15
+ <body>
16
+ <div data-role="page">
17
+ <div data-role="header">
18
+ <h1>nimbleShop</h1>
19
+ </div>
20
+
21
+ <%= yield %>
22
+
23
+
24
+ <div data-role="footer">
25
+ <h4>Page Footer</h4>
26
+ </div>
27
+ </div>
28
+
29
+ </body>
30
+ </html>
@@ -49,13 +49,6 @@
49
49
  </div>
50
50
  </div>
51
51
 
52
- <div class='control-group state-name'>
53
- <%= billing_form.label :state_name, 'State/Province', class: 'control-label' %>
54
- <div class='controls'>
55
- <%= billing_form.text_field :state_name, class: 'input-xlarge' %>
56
- </div>
57
- </div>
58
-
59
52
  <div class='control-group state-code'>
60
53
  <%= billing_form.label :state_code, class: 'control-label' %>
61
54
  <div class='controls'>
@@ -55,13 +55,6 @@
55
55
  </div>
56
56
  </div>
57
57
 
58
- <div class='control-group'>
59
- <%= shipping_form.label :state_name, class: 'control-label' %>
60
- <div class='controls'>
61
- <%= shipping_form.text_field :state_name, class: 'input-xlarge' %>
62
- </div>
63
- </div>
64
-
65
58
  <div class='control-group'>
66
59
  <%= shipping_form.label :zipcode, class: 'control-label' %>
67
60
  <div class='controls'>
@@ -72,7 +65,7 @@
72
65
  <div class='control-group'>
73
66
  <div class='controls'>
74
67
  <label class='checkbox'>
75
- <%= shipping_form.check_box :use_for_billing %>
68
+ <%= shipping_form.check_box :use_for_billing %>
76
69
  Use this address as billing address too
77
70
  </label>
78
71
  </div>
@@ -1,4 +1,5 @@
1
- <div class="well" style="margin-top:20px;text-align: center;">
2
- <h4> unable to complete your order (no shipping method available)</h4>
3
- <%= link_to "Edit Shipping Address", [:edit, current_order]%>
4
- </div>
1
+ <h4> No shipping method is available for the shipping address you have chosen</h4>
2
+ <br />
3
+ <p>
4
+ <%= link_to "Change shipping address", new_checkout_shipping_address_path %>
5
+ </p>
@@ -0,0 +1,15 @@
1
+ <div class='span10'>
2
+ <% products.in_groups_of(3) do |group| %>
3
+ <ul class="unstyled row">
4
+ <% group.each do |product| %>
5
+ <% if product.blank? %>
6
+ &nbsp;
7
+ <% else %>
8
+ <li class="span3">
9
+ <%= render 'nimbleshop_simply/products/product', product: product %>
10
+ </li>
11
+ <% end %>
12
+ <% end %>
13
+ </ul>
14
+ <% end %>
15
+ </div>
@@ -0,0 +1,15 @@
1
+ <div data-role="content" data-theme="d">
2
+ <ul data-role="listview">
3
+ <% @products.each do |product| %>
4
+ <li>
5
+ <%= link_to product do %>
6
+ <%= product_main_picture(product, :small_plus) %>
7
+ <%= truncate(product.name, length: 50) %>
8
+ <p class='price'>
9
+ <%= number_to_currency(product.price) %>
10
+ </p>
11
+ <% end %>
12
+ </li>
13
+ <% end %>
14
+ </ul>
15
+ </div>
@@ -3,7 +3,7 @@
3
3
  <h3>
4
4
  Order summary
5
5
  <small>
6
- <%= link_to 'Edit', cart_path, id: 'edit_cart', title: 'edit cart' %>
6
+ <%= link_to 'change', cart_path, id: 'edit_cart', title: 'edit cart', class: 'light-link' %>
7
7
  </small>
8
8
  </h3>
9
9
 
@@ -4,7 +4,7 @@
4
4
  <h3>
5
5
  Shipping address
6
6
  <small>
7
- <%= link_to 'Edit', new_checkout_shipping_address_path, title: 'Edit Shipping Address', id: 'edit_shipping_address' %>
7
+ <%= link_to 'change', new_checkout_shipping_address_path, title: 'Edit Shipping Address', id: 'edit_shipping_address', class: 'light-link' %>
8
8
  </small>
9
9
  </h3>
10
10
  <address class='shipping-address'>
@@ -4,7 +4,7 @@
4
4
  <h3>
5
5
  Shipping method
6
6
  <small>
7
- <%= link_to 'Edit', new_checkout_shipping_method_path, id: 'edit_shipping_method', title: 'edit shipping method' %>
7
+ <%= link_to 'change', new_checkout_shipping_method_path, id: 'edit_shipping_method', title: 'edit shipping method', class: 'light-link' %>
8
8
  </small>
9
9
  </h3>
10
10
  <address class='shipping-method'>
@@ -1,4 +1,4 @@
1
- <% if params[:controller] == 'checkout/payments' %>
1
+ <% if @show_shipping_and_tax_info %>
2
2
  <tr>
3
3
  <td>
4
4
  <div class='lhs order-shipping-cost-amount'>
@@ -0,0 +1 @@
1
+ Mime::Type.register_alias "text/html", :mobile
@@ -111,3 +111,26 @@ class CartWithOrderExpiredAcceptanceTest < ActionDispatch::IntegrationTest
111
111
  assert page.has_content?('powered by')
112
112
  end
113
113
  end
114
+
115
+ class CartWithOrderAlreadyAuthorizedAcceptanceTest < ActionDispatch::IntegrationTest
116
+ include ::ShippingMethodTestHelper
117
+ include ::CheckoutTestHelper
118
+
119
+ setup do
120
+ create(:product, name: 'Bracelet Set', price: 25)
121
+ create(:product, name: 'Necklace Set', price: 14)
122
+ create(:country_shipping_method)
123
+ end
124
+
125
+ test 'on cart page' do
126
+ visit root_path
127
+ add_item_to_cart('Bracelet Set')
128
+ assert_equal 1, Order.last.line_items.size
129
+ old_order_id = Order.last.id
130
+ Order.last.update_column(:payment_status, 'authorized')
131
+ add_item_to_cart('Bracelet Set')
132
+ assert_equal 1, Order.last.line_items.size
133
+ refute old_order_id == Order.last.id
134
+ end
135
+
136
+ end
@@ -27,6 +27,19 @@ class ShippingMethodAcceptanceTest < ActionDispatch::IntegrationTest
27
27
  assert page.has_content?('Please select a shipping method')
28
28
  end
29
29
 
30
+ test 'no shipping method available message' do
31
+ visit root_path
32
+ add_item_to_cart('Bracelet Set')
33
+ click_link 'Checkout'
34
+
35
+ enter_valid_email_address
36
+ enter_valid_shipping_address
37
+ ShippingMethod.delete_all
38
+ click_button 'Submit'
39
+
40
+ assert page.has_content?('No shipping method is available for the shipping address you have chosen')
41
+ end
42
+
30
43
  test "ability to change shipping method" do
31
44
  visit root_path
32
45
  add_item_to_cart('Bracelet Set')
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.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-08-10 00:00:00.000000000 Z
13
+ date: 2012-08-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: jquery-rails
@@ -60,6 +60,7 @@ files:
60
60
  - app/assets/images/nimbleshop_simply/twitter.png
61
61
  - app/assets/javascripts/nimbleshop_simply/enable_fancybox.js.coffee
62
62
  - app/assets/javascripts/nimbleshop_simply/load_states.js.coffee
63
+ - app/assets/javascripts/nimbleshop_simply/mobile.simply.js
63
64
  - app/assets/javascripts/nimbleshop_simply/order.js.coffee
64
65
  - app/assets/javascripts/nimbleshop_simply/remove_item_from_cart.js.coffee
65
66
  - app/assets/javascripts/nimbleshop_simply/shipping_address_same_as_billing_address.js.coffee
@@ -68,6 +69,8 @@ files:
68
69
  - app/assets/stylesheets/nimbleshop_simply/cart.css.scss
69
70
  - app/assets/stylesheets/nimbleshop_simply/cart_button.css.scss
70
71
  - app/assets/stylesheets/nimbleshop_simply/custom.css.scss
72
+ - app/assets/stylesheets/nimbleshop_simply/mobile.simply.css
73
+ - app/assets/stylesheets/nimbleshop_simply/mobile_simply.css
71
74
  - app/assets/stylesheets/nimbleshop_simply/override_bootstrap.css
72
75
  - app/assets/stylesheets/nimbleshop_simply/simply.css
73
76
  - app/assets/stylesheets/nimbleshop_simply/themed_bootstrap_and_overrides.css.less
@@ -88,6 +91,7 @@ files:
88
91
  - app/views/layouts/_twitter.html.erb
89
92
  - app/views/layouts/nimbleshop_simply/mailer.text.erb
90
93
  - app/views/layouts/simply.html.erb
94
+ - app/views/layouts/simply.mobile.erb
91
95
  - app/views/nimbleshop_simply/carts/_empty_cart.html.erb
92
96
  - app/views/nimbleshop_simply/carts/_line_item.html.erb
93
97
  - app/views/nimbleshop_simply/carts/show.html.erb
@@ -117,15 +121,19 @@ files:
117
121
  - app/views/nimbleshop_simply/products/_breadcrumb.html.erb
118
122
  - app/views/nimbleshop_simply/products/_link_group.html.erb
119
123
  - app/views/nimbleshop_simply/products/_product.html.erb
124
+ - app/views/nimbleshop_simply/products/_product.mobile.erb
120
125
  - app/views/nimbleshop_simply/products/_products.html.erb
126
+ - app/views/nimbleshop_simply/products/_products.mobile.erb
121
127
  - app/views/nimbleshop_simply/products/_sidebar.html.erb
122
128
  - app/views/nimbleshop_simply/products/index.html.erb
129
+ - app/views/nimbleshop_simply/products/index.mobile.erb
123
130
  - app/views/nimbleshop_simply/products/show.html.erb
124
131
  - app/views/nimbleshop_simply/shared/_order_summary.html.erb
125
132
  - app/views/nimbleshop_simply/shared/_order_summary_line_items.html.erb
126
133
  - app/views/nimbleshop_simply/shared/_order_summary_shipping_address.html.erb
127
134
  - app/views/nimbleshop_simply/shared/_order_summary_shipping_method.html.erb
128
135
  - app/views/nimbleshop_simply/shared/_shipping_and_tax_info.html.erb
136
+ - config/initializers/add_mime_type.rb
129
137
  - config/routes.rb
130
138
  - lib/nimbleshop_simply/engine.rb
131
139
  - lib/nimbleshop_simply.rb
@@ -154,7 +162,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
154
162
  version: '0'
155
163
  segments:
156
164
  - 0
157
- hash: -1282583842987372000
165
+ hash: 1098292971187762910
158
166
  required_rubygems_version: !ruby/object:Gem::Requirement
159
167
  none: false
160
168
  requirements:
@@ -163,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
171
  version: '0'
164
172
  segments:
165
173
  - 0
166
- hash: -1282583842987372000
174
+ hash: 1098292971187762910
167
175
  requirements: []
168
176
  rubyforge_project:
169
177
  rubygems_version: 1.8.24