spree_frontend 3.6.6 → 3.7.0.rc1
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/spree/frontend.js +8 -0
- data/app/assets/javascripts/spree/frontend/api_tokens.js +17 -0
- data/app/assets/javascripts/spree/frontend/cart.js +59 -0
- data/app/assets/javascripts/spree/frontend/checkout.js +19 -0
- data/app/assets/javascripts/spree/frontend/checkout/address.js +102 -0
- data/app/assets/javascripts/spree/frontend/checkout/payment.js +57 -0
- data/app/assets/javascripts/spree/frontend/checkout/shipment.js +47 -0
- data/app/assets/javascripts/spree/frontend/coupon_manager.js +45 -0
- data/app/assets/javascripts/spree/frontend/product.js +104 -51
- data/app/controllers/spree/checkout_controller.rb +7 -13
- data/app/controllers/spree/locale_controller.rb +1 -3
- data/app/controllers/spree/orders_controller.rb +25 -10
- data/app/controllers/spree/store_controller.rb +12 -0
- data/app/helpers/spree/frontend_helper.rb +8 -12
- data/app/views/spree/checkout/_payment.html.erb +3 -3
- data/app/views/spree/checkout/edit.html.erb +1 -1
- data/app/views/spree/orders/edit.html.erb +1 -2
- data/app/views/spree/products/_cart_form.html.erb +10 -4
- data/app/views/spree/products/_properties.html.erb +1 -1
- data/app/views/spree/products/_thumbnails.html.erb +4 -2
- data/config/routes.rb +3 -0
- data/lib/generators/spree/frontend/copy_views/copy_views_generator.rb +1 -1
- data/spree_frontend.gemspec +2 -2
- metadata +18 -23
- data/app/assets/javascripts/spree/frontend/cart.js.coffee +0 -28
- data/app/assets/javascripts/spree/frontend/checkout.js.coffee +0 -16
- data/app/assets/javascripts/spree/frontend/checkout/address.js.coffee +0 -81
- data/app/assets/javascripts/spree/frontend/checkout/payment.js.coffee +0 -57
- data/app/assets/javascripts/spree/frontend/checkout/shipment.js.coffee +0 -41
- data/app/assets/javascripts/spree/frontend/coupon_manager.js.coffee +0 -37
@@ -104,9 +104,7 @@ module Spree
|
|
104
104
|
|
105
105
|
def set_state_if_present
|
106
106
|
if params[:state]
|
107
|
-
if @order.can_go_to_state?(params[:state]) && !skip_state_validation?
|
108
|
-
redirect_to checkout_state_path(@order.state)
|
109
|
-
end
|
107
|
+
redirect_to checkout_state_path(@order.state) if @order.can_go_to_state?(params[:state]) && !skip_state_validation?
|
110
108
|
@order.state = params[:state]
|
111
109
|
end
|
112
110
|
end
|
@@ -155,18 +153,16 @@ module Spree
|
|
155
153
|
packages = @order.shipments.map(&:to_package)
|
156
154
|
@differentiator = Spree::Stock::Differentiator.new(@order, packages)
|
157
155
|
@differentiator.missing.each do |variant, quantity|
|
158
|
-
@order
|
156
|
+
Spree::Cart::RemoveItem.call(order: @order, variant: variant, quantity: quantity)
|
159
157
|
end
|
160
158
|
end
|
161
159
|
|
162
|
-
|
163
|
-
@payment_sources = try_spree_current_user.payment_sources
|
164
|
-
end
|
160
|
+
@payment_sources = try_spree_current_user.payment_sources if try_spree_current_user&.respond_to?(:payment_sources)
|
165
161
|
end
|
166
162
|
|
167
163
|
def add_store_credit_payments
|
168
164
|
if params.key?(:apply_store_credit)
|
169
|
-
@order
|
165
|
+
Spree::Checkout::AddStoreCredit.call(order: @order)
|
170
166
|
|
171
167
|
# Remove other payment method parameters.
|
172
168
|
params[:order].delete(:payments_attributes)
|
@@ -174,15 +170,13 @@ module Spree
|
|
174
170
|
params.delete(:payment_source)
|
175
171
|
|
176
172
|
# Return to the Payments page if additional payment is needed.
|
177
|
-
if @order.payments.valid.sum(:amount) < @order.total
|
178
|
-
redirect_to checkout_state_path(@order.state) and return
|
179
|
-
end
|
173
|
+
redirect_to checkout_state_path(@order.state) and return if @order.payments.valid.sum(:amount) < @order.total
|
180
174
|
end
|
181
175
|
end
|
182
176
|
|
183
177
|
def remove_store_credit_payments
|
184
178
|
if params.key?(:remove_store_credit)
|
185
|
-
@order
|
179
|
+
Spree::Checkout::RemoveStoreCredit.call(order: @order)
|
186
180
|
redirect_to checkout_state_path(@order.state) and return
|
187
181
|
end
|
188
182
|
end
|
@@ -194,7 +188,7 @@ module Spree
|
|
194
188
|
end
|
195
189
|
|
196
190
|
def check_authorization
|
197
|
-
authorize!(:edit, current_order, cookies.signed[:
|
191
|
+
authorize!(:edit, current_order, cookies.signed[:token])
|
198
192
|
end
|
199
193
|
end
|
200
194
|
end
|
@@ -1,9 +1,7 @@
|
|
1
1
|
module Spree
|
2
2
|
class LocaleController < Spree::StoreController
|
3
3
|
def set
|
4
|
-
|
5
|
-
session['user_return_to'] = request.referer
|
6
|
-
end
|
4
|
+
session['user_return_to'] = request.referer if request.referer&.starts_with?('http://' + request.host)
|
7
5
|
if params[:locale] && I18n.available_locales.map(&:to_s).include?(params[:locale])
|
8
6
|
session[:locale] = I18n.locale = params[:locale]
|
9
7
|
flash.notice = Spree.t(:locale_changed)
|
@@ -14,7 +14,7 @@ module Spree
|
|
14
14
|
|
15
15
|
def update
|
16
16
|
@variant = Spree::Variant.find(params[:variant_id]) if params[:variant_id]
|
17
|
-
if @order
|
17
|
+
if Cart::Update.call(order: @order, params: order_params).success?
|
18
18
|
respond_with(@order) do |format|
|
19
19
|
format.html do
|
20
20
|
if params.key?(:checkout)
|
@@ -34,12 +34,18 @@ module Spree
|
|
34
34
|
def edit
|
35
35
|
@order = current_order || Order.incomplete.
|
36
36
|
includes(line_items: [variant: [:images, :option_values, :product]]).
|
37
|
-
find_or_initialize_by(
|
37
|
+
find_or_initialize_by(token: cookies.signed[:token])
|
38
38
|
associate_user
|
39
39
|
end
|
40
40
|
|
41
41
|
# Adds a new item to the order (creating a new order if none already exists)
|
42
42
|
def populate
|
43
|
+
ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
|
44
|
+
OrdersController#populate is deprecated and will be removed in Spree 4.0.
|
45
|
+
Please use `/api/v2/storefront/cart/add_item` endpoint instead.
|
46
|
+
See documentation: https://github.com/spree/spree/blob/master/api/docs/v2/storefront/index.yaml#L42
|
47
|
+
DEPRECATION
|
48
|
+
|
43
49
|
order = current_order(create_order_if_necessary: true)
|
44
50
|
variant = Spree::Variant.find(params[:variant_id])
|
45
51
|
quantity = params[:quantity].to_i
|
@@ -48,10 +54,14 @@ module Spree
|
|
48
54
|
# 2,147,483,647 is crazy. See issue #2695.
|
49
55
|
if quantity.between?(1, 2_147_483_647)
|
50
56
|
begin
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
57
|
+
result = Spree::Cart::AddItem.call(order: order, variant: variant, quantity: quantity, options: options)
|
58
|
+
if result.failure?
|
59
|
+
error = result.value.errors.full_messages.join(', ')
|
60
|
+
else
|
61
|
+
order.update_line_item_prices!
|
62
|
+
order.create_tax_charge!
|
63
|
+
order.update_with_updater!
|
64
|
+
end
|
55
65
|
rescue ActiveRecord::RecordInvalid => e
|
56
66
|
error = e.record.errors.full_messages.join(', ')
|
57
67
|
end
|
@@ -70,6 +80,11 @@ module Spree
|
|
70
80
|
end
|
71
81
|
|
72
82
|
def populate_redirect
|
83
|
+
ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
|
84
|
+
OrdersController#populate is deprecated and will be removed in Spree 4.0.
|
85
|
+
Please use `/api/v2/storefront/cart/add_item` endpoint instead.
|
86
|
+
See documentation: https://github.com/spree/spree/blob/master/api/docs/v2/storefront/index.yaml#L42
|
87
|
+
DEPRECATION
|
73
88
|
flash[:error] = Spree.t(:populate_get_error)
|
74
89
|
redirect_to cart_path
|
75
90
|
end
|
@@ -83,7 +98,7 @@ module Spree
|
|
83
98
|
private
|
84
99
|
|
85
100
|
def accurate_title
|
86
|
-
if @order
|
101
|
+
if @order&.completed?
|
87
102
|
Spree.t(:order_number, number: @order.number)
|
88
103
|
else
|
89
104
|
Spree.t(:shopping_cart)
|
@@ -92,12 +107,12 @@ module Spree
|
|
92
107
|
|
93
108
|
def check_authorization
|
94
109
|
order = Spree::Order.find_by(number: params[:id]) if params[:id].present?
|
95
|
-
order
|
110
|
+
order ||= current_order
|
96
111
|
|
97
112
|
if order && action_name.to_sym == :show
|
98
|
-
authorize! :show, order, cookies.signed[:
|
113
|
+
authorize! :show, order, cookies.signed[:token]
|
99
114
|
elsif order
|
100
|
-
authorize! :edit, order, cookies.signed[:
|
115
|
+
authorize! :edit, order, cookies.signed[:token]
|
101
116
|
else
|
102
117
|
authorize! :create, Spree::Order
|
103
118
|
end
|
@@ -3,6 +3,7 @@ module Spree
|
|
3
3
|
include Spree::Core::ControllerHelpers::Order
|
4
4
|
|
5
5
|
skip_before_action :set_current_order, only: :cart_link
|
6
|
+
skip_before_action :verify_authenticity_token, only: :ensure_cart
|
6
7
|
|
7
8
|
def forbidden
|
8
9
|
render 'spree/shared/forbidden', layout: Spree::Config[:layout], status: 403
|
@@ -17,6 +18,17 @@ module Spree
|
|
17
18
|
fresh_when(simple_current_order)
|
18
19
|
end
|
19
20
|
|
21
|
+
def api_tokens
|
22
|
+
render json: {
|
23
|
+
order_token: current_order&.token,
|
24
|
+
oauth_token: current_oauth_token&.token
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
def ensure_cart
|
29
|
+
render json: current_order(create_order_if_necessary: true) # force creation of order if doesn't exists
|
30
|
+
end
|
31
|
+
|
20
32
|
protected
|
21
33
|
|
22
34
|
def config_locale
|
@@ -7,6 +7,7 @@ module Spree
|
|
7
7
|
|
8
8
|
def spree_breadcrumbs(taxon, separator = ' ')
|
9
9
|
return '' if current_page?('/') || taxon.nil?
|
10
|
+
|
10
11
|
separator = raw(separator)
|
11
12
|
crumbs = [content_tag(:li, content_tag(:span, link_to(content_tag(:span, Spree.t(:home), itemprop: 'name'), spree.root_path, itemprop: 'url') + separator, itemprop: 'item'), itemscope: 'itemscope', itemtype: 'https://schema.org/ListItem', itemprop: 'itemListElement')]
|
12
13
|
if taxon
|
@@ -20,14 +21,6 @@ module Spree
|
|
20
21
|
content_tag(:nav, crumb_list, id: 'breadcrumbs', class: 'col-md-12')
|
21
22
|
end
|
22
23
|
|
23
|
-
def breadcrumbs(taxon, separator = ' ')
|
24
|
-
ActiveSupport::Deprecation.warn(<<-EOS, caller)
|
25
|
-
Spree::FrontendHelper#breadcrumbs was renamed to Spree::FrontendHelper#spree_breadcrumbs
|
26
|
-
and will be removed in Spree 3.6. Please update your code to avoid problems after update
|
27
|
-
EOS
|
28
|
-
spree_breadcrumbs(taxon, separator)
|
29
|
-
end
|
30
|
-
|
31
24
|
def checkout_progress(numbers: false)
|
32
25
|
states = @order.checkout_steps
|
33
26
|
items = states.each_with_index.map do |state, i|
|
@@ -62,9 +55,7 @@ module Spree
|
|
62
55
|
ignore_types = ['order_completed'].concat(Array(opts[:ignore_types]).map(&:to_s) || [])
|
63
56
|
|
64
57
|
flash.each do |msg_type, text|
|
65
|
-
unless ignore_types.include?(msg_type)
|
66
|
-
concat(content_tag(:div, text, class: "alert alert-#{msg_type}"))
|
67
|
-
end
|
58
|
+
concat(content_tag(:div, text, class: "alert alert-#{msg_type}")) unless ignore_types.include?(msg_type)
|
68
59
|
end
|
69
60
|
nil
|
70
61
|
end
|
@@ -86,13 +77,18 @@ module Spree
|
|
86
77
|
|
87
78
|
def taxons_tree(root_taxon, current_taxon, max_level = 1)
|
88
79
|
return '' if max_level < 1 || root_taxon.leaf?
|
80
|
+
|
89
81
|
content_tag :div, class: 'list-group' do
|
90
82
|
taxons = root_taxon.children.map do |taxon|
|
91
|
-
css_class = current_taxon
|
83
|
+
css_class = current_taxon&.self_and_ancestors&.include?(taxon) ? 'list-group-item active' : 'list-group-item'
|
92
84
|
link_to(taxon.name, seo_url(taxon), class: css_class) + taxons_tree(taxon, current_taxon, max_level - 1)
|
93
85
|
end
|
94
86
|
safe_join(taxons, "\n")
|
95
87
|
end
|
96
88
|
end
|
89
|
+
|
90
|
+
def set_image_alt(image, size)
|
91
|
+
image.alt.present? ? image.alt : image_alt(main_app.url_for(image.url(size)))
|
92
|
+
end
|
97
93
|
end
|
98
94
|
end
|
@@ -21,12 +21,12 @@
|
|
21
21
|
<tbody>
|
22
22
|
<% @payment_sources.each do |card| %>
|
23
23
|
<tr id="<%= dom_id(card,'spree')%>" class="<%= cycle('even', 'odd') %>">
|
24
|
-
<td><%= card.name %></td>
|
25
|
-
<td><%= card.display_number %></td>
|
26
|
-
<td><%= card.month %> / <%= card.year %></td>
|
27
24
|
<td>
|
28
25
|
<%= radio_button_tag "order[existing_card]", card.id, (card == @payment_sources.first), { class: "existing-cc-radio" } %>
|
29
26
|
</td>
|
27
|
+
<td><%= card.name %></td>
|
28
|
+
<td><%= card.display_number %></td>
|
29
|
+
<td><%= card.month %> / <%= card.year %></td>
|
30
30
|
</tr>
|
31
31
|
<% end %>
|
32
32
|
</tbody>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<%= form_for :order,
|
1
|
+
<%= form_for :order, html: { id: 'add-to-cart-form' } do |f| %>
|
2
2
|
<div class="row" id="inside-product-cart-form" data-hook="inside_product_cart_form" itemprop="offers" itemscope itemtype="https://schema.org/Offer">
|
3
3
|
<% if @product.variants_and_option_values(current_currency).any? %>
|
4
4
|
<div id="product-variants" class="col-md-6">
|
@@ -8,11 +8,12 @@
|
|
8
8
|
<li>
|
9
9
|
<%= radio_button_tag "variant_id", variant.id, index == 0,
|
10
10
|
'data-price' => variant.price_in(current_currency).money,
|
11
|
-
'data-in-stock' => variant.can_supply
|
11
|
+
'data-in-stock' => variant.can_supply?,
|
12
|
+
'data-backordered' => variant.backordered?
|
12
13
|
%>
|
13
14
|
<%= label_tag "variant_id_#{ variant.id }" do %>
|
14
15
|
<span class="variant-description">
|
15
|
-
<%=
|
16
|
+
<%= variant.options_text %>
|
16
17
|
</span>
|
17
18
|
<% if variant_price variant %>
|
18
19
|
<span class="price diff"><%= variant_price variant %></span>
|
@@ -46,6 +47,11 @@
|
|
46
47
|
<br />
|
47
48
|
<span class="out-of-stock"><%= Spree.t(:out_of_stock) %></span>
|
48
49
|
<% end %>
|
50
|
+
<% if @product.backordered? %>
|
51
|
+
<div class="alert alert-warning" id="cart-backordered-info">
|
52
|
+
<%= Spree.t(:backordered_info) %>
|
53
|
+
</div>
|
54
|
+
<% end %>
|
49
55
|
</div>
|
50
56
|
|
51
57
|
<% if @product.can_supply? %>
|
@@ -54,7 +60,7 @@
|
|
54
60
|
<div class="input-group">
|
55
61
|
<%= number_field_tag :quantity, 1, class: 'title form-control', min: 1 %>
|
56
62
|
<span class="input-group-btn">
|
57
|
-
<%= button_tag class: 'btn btn-success', id: 'add-to-cart-button', type: :submit do %>
|
63
|
+
<%= button_tag class: 'btn btn-success', id: 'add-to-cart-button', type: :submit, disabled: true do %>
|
58
64
|
<%= Spree.t(:add_to_cart) %>
|
59
65
|
<% end %>
|
60
66
|
</span>
|
@@ -3,7 +3,8 @@
|
|
3
3
|
<ul id="product-thumbnails" class="thumbnails list-inline" data-hook>
|
4
4
|
<% @product.images.each do |i| %>
|
5
5
|
<li class='tmb-all tmb-<%= i.viewable.id %>'>
|
6
|
-
|
6
|
+
<% img_tag = image_tag(main_app.url_for(i.url(:mini)), class: "thumbnail", alt: set_image_alt(i, :mini)) %>
|
7
|
+
<%= link_to(img_tag, main_app.url_for(i.url(:product))) %>
|
7
8
|
</li>
|
8
9
|
<% end %>
|
9
10
|
|
@@ -11,7 +12,8 @@
|
|
11
12
|
<% @product.variant_images.each do |i| %>
|
12
13
|
<% next if @product.images.include?(i) %>
|
13
14
|
<li class='vtmb tmb-<%= i.viewable.id %>'>
|
14
|
-
|
15
|
+
<% img_tag = image_tag(main_app.url_for(i.url(:mini)), class: "thumbnail", alt: set_image_alt(i, :mini)) %>
|
16
|
+
<%= link_to(img_tag, main_app.url_for(i.url(:product))) %>
|
15
17
|
</li>
|
16
18
|
<% end %>
|
17
19
|
<% end %>
|
data/config/routes.rb
CHANGED
@@ -27,4 +27,7 @@ Spree::Core::Engine.add_routes do
|
|
27
27
|
get '/content/cvv', to: 'content#cvv', as: :cvv
|
28
28
|
get '/content/test', to: 'content#test'
|
29
29
|
get '/cart_link', to: 'store#cart_link', as: :cart_link
|
30
|
+
|
31
|
+
get '/api_tokens', to: 'store#api_tokens'
|
32
|
+
post '/ensure_cart', to: 'store#ensure_cart'
|
30
33
|
end
|
data/spree_frontend.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.summary = 'Frontend e-commerce functionality for the Spree project.'
|
9
9
|
s.description = s.summary
|
10
10
|
|
11
|
-
s.required_ruby_version = '>= 2.
|
11
|
+
s.required_ruby_version = '>= 2.3.0'
|
12
12
|
|
13
13
|
s.author = 'Sean Schofield'
|
14
14
|
s.email = 'sean@spreecommerce.com'
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.add_dependency 'spree_api', s.version
|
23
23
|
s.add_dependency 'spree_core', s.version
|
24
24
|
|
25
|
-
s.add_dependency 'bootstrap-sass', '
|
25
|
+
s.add_dependency 'bootstrap-sass', '~> 3.4'
|
26
26
|
s.add_dependency 'canonical-rails', '~> 0.2.3'
|
27
27
|
s.add_dependency 'jquery-rails', '~> 4.3'
|
28
28
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_frontend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.7.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Schofield
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree_api
|
@@ -16,46 +16,40 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.
|
19
|
+
version: 3.7.0.rc1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.
|
26
|
+
version: 3.7.0.rc1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: spree_core
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.
|
33
|
+
version: 3.7.0.rc1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 3.
|
40
|
+
version: 3.7.0.rc1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bootstrap-sass
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 3.3.5.1
|
48
|
-
- - "<"
|
45
|
+
- - "~>"
|
49
46
|
- !ruby/object:Gem::Version
|
50
47
|
version: '3.4'
|
51
48
|
type: :runtime
|
52
49
|
prerelease: false
|
53
50
|
version_requirements: !ruby/object:Gem::Requirement
|
54
51
|
requirements:
|
55
|
-
- - "
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: 3.3.5.1
|
58
|
-
- - "<"
|
52
|
+
- - "~>"
|
59
53
|
- !ruby/object:Gem::Version
|
60
54
|
version: '3.4'
|
61
55
|
- !ruby/object:Gem::Dependency
|
@@ -136,12 +130,13 @@ files:
|
|
136
130
|
- app/assets/images/favicon.ico
|
137
131
|
- app/assets/images/logo/spree_50.png
|
138
132
|
- app/assets/javascripts/spree/frontend.js
|
139
|
-
- app/assets/javascripts/spree/frontend/
|
140
|
-
- app/assets/javascripts/spree/frontend/
|
141
|
-
- app/assets/javascripts/spree/frontend/checkout
|
142
|
-
- app/assets/javascripts/spree/frontend/checkout/
|
143
|
-
- app/assets/javascripts/spree/frontend/checkout/
|
144
|
-
- app/assets/javascripts/spree/frontend/
|
133
|
+
- app/assets/javascripts/spree/frontend/api_tokens.js
|
134
|
+
- app/assets/javascripts/spree/frontend/cart.js
|
135
|
+
- app/assets/javascripts/spree/frontend/checkout.js
|
136
|
+
- app/assets/javascripts/spree/frontend/checkout/address.js
|
137
|
+
- app/assets/javascripts/spree/frontend/checkout/payment.js
|
138
|
+
- app/assets/javascripts/spree/frontend/checkout/shipment.js
|
139
|
+
- app/assets/javascripts/spree/frontend/coupon_manager.js
|
145
140
|
- app/assets/javascripts/spree/frontend/product.js
|
146
141
|
- app/assets/stylesheets/spree/frontend.css
|
147
142
|
- app/assets/stylesheets/spree/frontend/_variables.scss
|
@@ -239,12 +234,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
239
234
|
requirements:
|
240
235
|
- - ">="
|
241
236
|
- !ruby/object:Gem::Version
|
242
|
-
version: 2.
|
237
|
+
version: 2.3.0
|
243
238
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
244
239
|
requirements:
|
245
|
-
- - "
|
240
|
+
- - ">"
|
246
241
|
- !ruby/object:Gem::Version
|
247
|
-
version:
|
242
|
+
version: 1.3.1
|
248
243
|
requirements:
|
249
244
|
- none
|
250
245
|
rubyforge_project:
|