spree_frontend 3.7.14.1 → 4.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/app/assets/javascripts/spree/frontend/checkout/address.js +42 -14
  4. data/app/assets/javascripts/spree/frontend/checkout/address_book.js +56 -0
  5. data/app/assets/javascripts/spree/frontend/product.js +54 -39
  6. data/app/assets/javascripts/spree/frontend.js +4 -1
  7. data/app/assets/stylesheets/spree/frontend/_variables.scss +1 -1
  8. data/app/assets/stylesheets/spree/frontend/address_book.scss +8 -0
  9. data/app/assets/stylesheets/spree/frontend/frontend_bootstrap.css.scss +13 -35
  10. data/app/assets/stylesheets/spree/frontend.css +1 -0
  11. data/app/controllers/concerns/spree/checkout/address_book.rb +53 -0
  12. data/app/controllers/spree/addresses_controller.rb +72 -0
  13. data/app/controllers/spree/checkout_controller.rb +2 -0
  14. data/app/controllers/spree/orders_controller.rb +0 -55
  15. data/app/controllers/spree/products_controller.rb +5 -1
  16. data/app/controllers/spree/store_controller.rb +1 -1
  17. data/app/helpers/spree/addresses_helper.rb +36 -0
  18. data/app/helpers/spree/frontend_helper.rb +16 -15
  19. data/app/views/kaminari/{twitter-bootstrap-3 → twitter-bootstrap-4}/_first_page.html.erb +2 -2
  20. data/app/views/kaminari/{twitter-bootstrap-3 → twitter-bootstrap-4}/_gap.html.erb +5 -1
  21. data/app/views/kaminari/{twitter-bootstrap-3 → twitter-bootstrap-4}/_last_page.html.erb +2 -2
  22. data/app/views/kaminari/{twitter-bootstrap-3 → twitter-bootstrap-4}/_next_page.html.erb +2 -2
  23. data/app/views/kaminari/{twitter-bootstrap-3 → twitter-bootstrap-4}/_page.html.erb +8 -2
  24. data/app/views/kaminari/{twitter-bootstrap-3 → twitter-bootstrap-4}/_paginator.html.erb +1 -1
  25. data/app/views/kaminari/{twitter-bootstrap-3 → twitter-bootstrap-4}/_prev_page.html.erb +2 -2
  26. data/app/views/spree/address/_form.html.erb +27 -24
  27. data/app/views/spree/addresses/_form.html.erb +18 -0
  28. data/app/views/spree/addresses/destroy.js.erb +2 -0
  29. data/app/views/spree/addresses/edit.html.erb +23 -0
  30. data/app/views/spree/addresses/new.html.erb +23 -0
  31. data/app/views/spree/checkout/_address.html.erb +61 -37
  32. data/app/views/spree/checkout/_confirm.html.erb +12 -10
  33. data/app/views/spree/checkout/_delivery.html.erb +27 -15
  34. data/app/views/spree/checkout/_payment.html.erb +14 -9
  35. data/app/views/spree/checkout/_summary.html.erb +59 -57
  36. data/app/views/spree/checkout/edit.html.erb +6 -6
  37. data/app/views/spree/checkout/payment/_gateway.html.erb +43 -35
  38. data/app/views/spree/layouts/spree_application.html.erb +5 -2
  39. data/app/views/spree/orders/_form.html.erb +38 -25
  40. data/app/views/spree/orders/edit.html.erb +28 -22
  41. data/app/views/spree/orders/show.html.erb +2 -1
  42. data/app/views/spree/products/_cart_form.html.erb +28 -26
  43. data/app/views/spree/products/_product.html.erb +7 -8
  44. data/app/views/spree/products/_promotions.html.erb +13 -11
  45. data/app/views/spree/products/_properties.html.erb +10 -3
  46. data/app/views/spree/products/_thumbnails.html.erb +5 -7
  47. data/app/views/spree/products/show.html.erb +8 -8
  48. data/app/views/spree/shared/_filters.html.erb +29 -9
  49. data/app/views/spree/shared/_header.html.erb +2 -2
  50. data/app/views/spree/shared/_login_bar.html.erb +9 -3
  51. data/app/views/spree/shared/_main_nav_bar.html.erb +15 -15
  52. data/app/views/spree/shared/_nav_bar.html.erb +2 -2
  53. data/app/views/spree/shared/_order_details.html.erb +143 -89
  54. data/app/views/spree/shared/_products.html.erb +2 -2
  55. data/app/views/spree/shared/_search.html.erb +19 -12
  56. data/app/views/spree/shared/_sidebar.html.erb +1 -1
  57. data/app/views/spree/shared/_taxonomies.html.erb +7 -3
  58. data/config/routes.rb +2 -0
  59. data/lib/spree/frontend/engine.rb +4 -0
  60. data/lib/spree/frontend.rb +3 -3
  61. data/spree_frontend.gemspec +4 -3
  62. metadata +48 -25
@@ -1,18 +1,24 @@
1
1
  <div class="row steps-data">
2
2
  <% if order.has_step?("address") %>
3
- <div class="col-md-3 col-sm-3 col-xs-6" data-hook="order-bill-address">
4
- <h4><%= Spree.t(:billing_address) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:address) unless order.completed? %></h4>
3
+ <div class="col-md-3 col-6 mb-3" data-hook="order-bill-address">
4
+ <h4 class="h5">
5
+ <%= Spree.t(:billing_address) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:address) unless order.completed? %>
6
+ </h4>
5
7
  <%= render 'spree/shared/address', address: order.bill_address %>
6
8
  </div>
7
9
 
8
10
  <% if order.has_step?("delivery") %>
9
- <div class="col-md-3 col-sm-3 col-xs-6" data-hook="order-ship-address">
10
- <h4><%= Spree.t(:shipping_address) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:address) unless order.completed? %></h4>
11
+ <div class="col-md-3 col-6 mb-3" data-hook="order-ship-address">
12
+ <h4 class="h5">
13
+ <%= Spree.t(:shipping_address) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:address) unless order.completed? %>
14
+ </h4>
11
15
  <%= render 'spree/shared/address', address: order.ship_address %>
12
16
  </div>
13
17
 
14
- <div class="col-md-3 col-sm-3 col-xs-6" data-hook="order-shipment">
15
- <h4><%= Spree.t(:shipments) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:delivery) unless order.completed? %></h4>
18
+ <div class="col-md-3 col-6 mb-3" data-hook="order-shipment">
19
+ <h4 class="h5">
20
+ <%= Spree.t(:shipments) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:delivery) unless order.completed? %>
21
+ </h4>
16
22
  <div class="delivery">
17
23
  <% order.shipments.each do |shipment| %>
18
24
  <div>
@@ -26,8 +32,10 @@
26
32
  <% end %>
27
33
 
28
34
  <% if order.has_step?("payment") %>
29
- <div class="col-md-3 col-sm-3 col-xs-6" data-hook="order-payment">
30
- <h4><%= Spree.t(:payment_information) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:payment) unless order.completed? %></h4>
35
+ <div class="col-md-3 col-6 mb-3" data-hook="order-payment">
36
+ <h4 class="h5">
37
+ <%= Spree.t(:payment_information) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:payment) unless order.completed? %>
38
+ </h4>
31
39
  <div class="payment-info">
32
40
  <%= render collection: order.payments.valid, partial: 'spree/shared/payment' %>
33
41
  </div>
@@ -35,99 +43,145 @@
35
43
  <% end %>
36
44
  </div>
37
45
 
38
- <hr />
46
+ <div class="table-responsive">
47
+ <table id='line-items' class="table mt-4" data-hook="order_details">
48
+ <col width="15%" valign="middle" halign="center">
49
+ <col width="70%" valign="middle">
50
+ <col width="5%" valign="middle" halign="center">
51
+ <col width="5%" valign="middle" halign="center">
52
+ <col width="5%" valign="middle" halign="center">
39
53
 
40
- <table id='line-items' class="table" data-hook="order_details">
41
- <col width="15%" valign="middle" halign="center">
42
- <col width="70%" valign="middle">
43
- <col width="5%" valign="middle" halign="center">
44
- <col width="5%" valign="middle" halign="center">
45
- <col width="5%" valign="middle" halign="center">
46
-
47
- <thead data-hook>
48
- <tr class="active" data-hook="order_details_line_items_headers">
49
- <th colspan="2"><%= Spree.t(:item) %></th>
50
- <th class="price"><%= Spree.t(:price) %></th>
51
- <th class="qty"><%= Spree.t(:qty) %></th>
52
- <th class="total"><span><%= Spree.t(:total) %></span></th>
53
- </tr>
54
- </thead>
54
+ <thead data-hook>
55
+ <tr class="active" data-hook="order_details_line_items_headers">
56
+ <th colspan="2"><%= Spree.t(:item) %></th>
57
+ <th class="price"><%= Spree.t(:price) %></th>
58
+ <th class="qty"><%= Spree.t(:qty) %></th>
59
+ <th class="total"><span><%= Spree.t(:total) %></span></th>
60
+ </tr>
61
+ </thead>
55
62
 
56
- <tbody data-hook>
57
- <% order.line_items.each do |item| %>
58
- <tr data-hook="order_details_line_item_row">
59
- <td data-hook="order_item_image">
60
- <% if item.variant.images.length == 0 %>
61
- <%= link_to small_image(item.variant.product), item.variant.product %>
62
- <% else %>
63
- <%= link_to image_tag(main_app.url_for(item.variant.images.first.url(:small))), item.variant.product %>
64
- <% end %>
63
+ <tbody data-hook>
64
+ <% order.line_items.each do |item| %>
65
+ <tr data-hook="order_details_line_item_row">
66
+ <td data-hook="order_item_image">
67
+ <% if item.variant.images.length == 0 %>
68
+ <%= link_to small_image(item.variant.product), item.variant.product %>
69
+ <% else %>
70
+ <%= link_to image_tag(main_app.url_for(item.variant.images.first.url(:small))), item.variant.product %>
71
+ <% end %>
72
+ </td>
73
+ <td data-hook="order_item_description">
74
+ <h4><%= item.name %></h4>
75
+ <p>
76
+ <%= truncate(item.description, length: 100) %>
77
+ <%= "(" + item.variant.options_text + ")" unless item.variant.option_values.empty? %>
78
+ </p>
79
+ </td>
80
+ <td data-hook="order_item_price" class="lead text-primary price">
81
+ <span><%= item.single_money.to_html %></span>
82
+ </td>
83
+ <td data-hook="order_item_qty" class="order-qty">
84
+ <%= item.quantity %>
85
+ </td>
86
+ <td data-hook="order_item_total" class="lead text-primary total">
87
+ <span><%= item.display_amount.to_html %></span>
88
+ </td>
89
+ </tr>
90
+ <% end %>
91
+ </tbody>
92
+ <tfoot id="order-total" data-hook="order_details_total">
93
+ <tr class="table-warning total">
94
+ <td colspan="4" align="right">
95
+ <strong><%= Spree.t(:order_total) %>:</strong>
65
96
  </td>
66
- <td data-hook="order_item_description">
67
- <h4><%= item.name %></h4>
68
- <%= truncate(item.description, length: 100) %>
69
- <%= "(" + item.variant.options_text + ")" unless item.variant.option_values.empty? %>
97
+ <td class="total">
98
+ <span id="order_total" class="lead text-primary">
99
+ <%= order.display_total.to_html %>
100
+ </span>
70
101
  </td>
71
- <td data-hook="order_item_price" class="lead text-primary price"><span><%= item.single_money.to_html %></span></td>
72
- <td data-hook="order_item_qty" class="order-qty"><%= item.quantity %></td>
73
- <td data-hook="order_item_total" class="lead text-primary total"><span><%= item.display_amount.to_html %></span></td>
74
102
  </tr>
75
- <% end %>
76
- </tbody>
77
- <tfoot id="order-total" data-hook="order_details_total">
78
- <tr class="warning total">
79
- <td colspan="4" align="right"><b><%= Spree.t(:order_total) %>:</b></td>
80
- <td class="total"><span id="order_total" class="lead text-primary"><%= order.display_total.to_html %></span></td>
81
- </tr>
82
- </tfoot>
103
+ </tfoot>
83
104
 
84
- <tfoot id="subtotal" data-hook="order_details_subtotal">
85
- <tr class="total" id="subtotal-row">
86
- <td colspan="4"><b><%= Spree.t(:subtotal) %>:</b></td>
87
- <td class="total"><span><%= order.display_item_total.to_html %></span></td>
88
- </tr>
89
- </tfoot>
105
+ <tfoot id="subtotal" data-hook="order_details_subtotal">
106
+ <tr class="total" id="subtotal-row">
107
+ <td colspan="4">
108
+ <strong><%= Spree.t(:subtotal) %>:</strong>
109
+ </td>
110
+ <td class="total">
111
+ <span><%= order.display_item_total.to_html %></span>
112
+ </td>
113
+ </tr>
114
+ </tfoot>
90
115
 
91
- <% if order.line_item_adjustments.exists? %>
92
- <% if order.line_item_adjustments.promotion.eligible.exists? %>
93
- <tfoot id="price-adjustments" data-hook="order_details_price_adjustments">
94
- <% order.line_item_adjustments.promotion.eligible.group_by(&:label).each do |label, adjustments| %>
95
- <tr class="total">
96
- <td colspan="4"><%= Spree.t(:promotion) %>: <strong><%= label %></strong></td>
97
- <td class="total"><span><%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency) %></span></td>
98
- </tr>
99
- <% end %>
100
- </tfoot>
116
+ <% if order.line_item_adjustments.exists? %>
117
+ <% if order.line_item_adjustments.promotion.eligible.exists? %>
118
+ <tfoot id="price-adjustments" data-hook="order_details_price_adjustments">
119
+ <% order.line_item_adjustments.promotion.eligible.group_by(&:label).each do |label, adjustments| %>
120
+ <tr class="total">
121
+ <td colspan="4">
122
+ <%= Spree.t(:promotion) %>: <strong><%= label %></strong>
123
+ </td>
124
+ <td class="total">
125
+ <span>
126
+ <%= Spree::Money.new(
127
+ adjustments.sum(&:amount), currency: order.currency
128
+ ) %>
129
+ </span>
130
+ </td>
131
+ </tr>
132
+ <% end %>
133
+ </tfoot>
134
+ <% end %>
101
135
  <% end %>
102
- <% end %>
103
136
 
104
- <tfoot id='shipment-total'>
105
- <% order.shipments.group_by { |s| s.selected_shipping_rate.name }.each do |name, shipments| %>
106
- <tr class="total" data-hook='shipment-row'>
107
- <td colspan="4" align="right" class="text-muted"><%= Spree.t(:shipping) %>: <strong><%= name %></strong></td>
108
- <td class="total"><span><%= Spree::Money.new(shipments.sum(&:discounted_cost), currency: order.currency).to_html %></span></td>
109
- </tr>
137
+ <tfoot id='shipment-total'>
138
+ <% order.shipments.group_by { |s| s.selected_shipping_rate.name }.each do |name, shipments| %>
139
+ <tr class="total" data-hook='shipment-row'>
140
+ <td colspan="4" align="right" class="text-muted">
141
+ <%= Spree.t(:shipping) %>: <strong><%= name %></strong>
142
+ </td>
143
+ <td class="total">
144
+ <span>
145
+ <%= Spree::Money.new(
146
+ shipments.sum(&:discounted_cost), currency: order.currency
147
+ ).to_html %>
148
+ </span>
149
+ </td>
150
+ </tr>
151
+ <% end %>
152
+ </tfoot>
153
+
154
+ <% if order.all_adjustments.tax.exists? %>
155
+ <tfoot id="tax-adjustments" data-hook="order_details_tax_adjustments">
156
+ <% order.all_adjustments.tax.group_by(&:label).each do |label, adjustments| %>
157
+ <tr class="total">
158
+ <td colspan="4" align="right" class="text-muted">
159
+ <%= Spree.t(:tax) %>: <strong><%= label %></strong>
160
+ </td>
161
+ <td class="total">
162
+ <span>
163
+ <%= Spree::Money.new(
164
+ adjustments.sum(&:amount), currency: order.currency
165
+ ) %>
166
+ </span>
167
+ </td>
168
+ </tr>
169
+ <% end %>
170
+ </tfoot>
110
171
  <% end %>
111
- </tfoot>
112
172
 
113
- <% if order.all_adjustments.tax.exists? %>
114
- <tfoot id="tax-adjustments" data-hook="order_details_tax_adjustments">
115
- <% order.all_adjustments.tax.group_by(&:label).each do |label, adjustments| %>
173
+ <tfoot id="order-charges" data-hook="order_details_adjustments">
174
+ <% order.adjustments.eligible.each do |adjustment| %>
175
+ <% next if (adjustment.source_type == 'Spree::TaxRate') and (adjustment.amount == 0) %>
116
176
  <tr class="total">
117
- <td colspan="4" align="right" class="text-muted"><%= Spree.t(:tax) %>: <strong><%= label %></strong></td>
118
- <td class="total"><span><%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency) %></span></td>
177
+ <td colspan="4" align="right">
178
+ <strong><%= adjustment.label %></strong>
179
+ </td>
180
+ <td class="total">
181
+ <span><%= adjustment.display_amount.to_html %></span>
182
+ </td>
119
183
  </tr>
120
184
  <% end %>
121
185
  </tfoot>
122
- <% end %>
123
-
124
- <tfoot id="order-charges" data-hook="order_details_adjustments">
125
- <% order.adjustments.eligible.each do |adjustment| %>
126
- <% next if (adjustment.source_type == 'Spree::TaxRate') and (adjustment.amount == 0) %>
127
- <tr class="total">
128
- <td colspan="4" align="right"><strong><%= adjustment.label %></strong></td>
129
- <td class="total"><span><%= adjustment.display_amount.to_html %></span></td>
130
- </tr>
131
- <% end %>
132
- </tfoot>
133
- </table>
186
+ </table>
187
+ </div>
@@ -17,11 +17,11 @@
17
17
  </div>
18
18
 
19
19
  <% if products.any? %>
20
- <div id="products" class="row" data-hook>
20
+ <div id="products" class="row d-flex" data-hook>
21
21
  <%= render partial: 'spree/products/product', collection: products, locals: { taxon: @taxon } %>
22
22
  </div>
23
23
  <% end %>
24
24
 
25
25
  <% if products.respond_to?(:total_pages) %>
26
- <%= paginate products, theme: 'twitter-bootstrap-3' %>
26
+ <%= paginate products, theme: 'twitter-bootstrap-4' %>
27
27
  <% end %>
@@ -1,15 +1,22 @@
1
1
  <% @taxons = @taxon && @taxon.parent ? @taxon.parent.children : Spree::Taxon.roots %>
2
- <%= form_tag spree.products_path, method: :get, class: "navbar-form" do %>
3
- <div class="form-group">
4
- <% cache [I18n.locale, @taxons] do %>
5
- <%= select_tag :taxon,
6
- options_for_select([[Spree.t(:all_departments), '']] +
7
- @taxons.map {|t| [t.name, t.id]},
8
- @taxon ? @taxon.id : params[:taxon]), 'aria-label' => 'Taxon', class: "form-control" %>
9
- <% end %>
10
- </div>
11
- <div class="form-group">
12
- <%= search_field_tag :keywords, params[:keywords], placeholder: Spree.t(:search), class: "form-control" %>
13
- </div>
2
+ <%= form_tag spree.products_path, method: :get,
3
+ class: "ml-2 form-inline" do %>
4
+
5
+ <% cache [I18n.locale, @taxons] do %>
6
+ <%= select_tag :taxon,
7
+ options_for_select(
8
+ [[Spree.t(:all_departments), '']] +
9
+ @taxons.map {|t| [t.name, t.id]},
10
+ @taxon ? @taxon.id : params[:taxon]
11
+ ),
12
+ aria: { label: 'Taxon' },
13
+ class: "form-control mr-2 mb-2 mb-md-0" %>
14
+ <% end %>
15
+
16
+ <%= search_field_tag :keywords,
17
+ params[:keywords],
18
+ placeholder: Spree.t(:search),
19
+ class: "form-control mr-2 mb-2 mb-md-0" %>
20
+
14
21
  <%= submit_tag Spree.t(:search), name: nil, class: "btn btn-success" %>
15
22
  <% end %>
@@ -1,3 +1,3 @@
1
- <aside id="sidebar" class="col-sm-4 col-md-3" data-hook>
1
+ <aside id="sidebar" class="col-12 col-md-3" data-hook>
2
2
  <%= yield :sidebar %>
3
3
  </aside>
@@ -1,11 +1,15 @@
1
1
  <% max_level = Spree::Config[:max_level_in_taxons_menu] || 1 %>
2
2
 
3
- <nav id="taxonomies" class="sidebar-item" data-hook>
3
+ <nav id="taxonomies" class="sidebar-item" data-hook arial->
4
4
  <% @taxonomies.each do |taxonomy| %>
5
5
  <% cache [I18n.locale, taxonomy, max_level, @taxon] do %>
6
6
  <% if taxonomy.root.children.any? %>
7
- <h4 class='taxonomy-root'><%= Spree.t(:shop_by_taxonomy, taxonomy: taxonomy.name) %></h4>
8
- <%= taxons_tree(taxonomy.root, @taxon, max_level) %>
7
+ <div class="mt-4">
8
+ <h4 class='taxonomy-root h5'>
9
+ <%= Spree.t(:shop_by_taxonomy, taxonomy: taxonomy.name) %>
10
+ </h4>
11
+ <%= taxons_tree(taxonomy.root, @taxon, max_level) %>
12
+ </div>
9
13
  <% end %>
10
14
  <% end %>
11
15
  <% end %>
data/config/routes.rb CHANGED
@@ -16,6 +16,8 @@ Spree::Core::Engine.add_routes do
16
16
  post :populate, on: :collection
17
17
  end
18
18
 
19
+ resources :addresses, except: [:show]
20
+
19
21
  get '/cart', to: 'orders#edit', as: :cart
20
22
  patch '/cart', to: 'orders#update', as: :update_cart
21
23
  put '/cart/empty', to: 'orders#empty', as: :empty_cart
@@ -3,6 +3,10 @@ module Spree
3
3
  class Engine < ::Rails::Engine
4
4
  config.middleware.use 'Spree::Frontend::Middleware::SeoAssist'
5
5
 
6
+ # Prevent XSS but allow text formatting
7
+ config.action_view.sanitized_allowed_tags = %w(a b del em i ins mark p small strong sub sup)
8
+ config.action_view.sanitized_allowed_attributes = %w(href)
9
+
6
10
  # sets the manifests / assets to be precompiled, even when initialize_on_precompile is false
7
11
  initializer 'spree.assets.precompile', group: :all do |app|
8
12
  app.config.assets.precompile += %w[
@@ -1,11 +1,11 @@
1
1
  require 'rails/all'
2
2
  require 'sprockets/rails'
3
3
 
4
- require 'bootstrap-sass'
4
+ require 'bootstrap'
5
+ require 'glyphicons'
6
+ require 'popper_js'
5
7
  require 'canonical-rails'
6
- require 'deface'
7
8
  require 'jquery-rails'
8
9
  require 'spree/core'
9
10
  require 'spree/frontend/middleware/seo_assist'
10
11
  require 'spree/frontend/engine'
11
- require 'spree/responder'
@@ -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.3.3'
11
+ s.required_ruby_version = '>= 2.5.0'
12
12
 
13
13
  s.author = 'Sean Schofield'
14
14
  s.email = 'sean@spreecommerce.com'
@@ -22,8 +22,9 @@ 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', '~> 3.4'
26
- s.add_dependency 'canonical-rails', '~> 0.2.3'
25
+ s.add_dependency 'bootstrap', '~> 4.3.1'
26
+ s.add_dependency 'glyphicons', '~> 1.0.2'
27
+ s.add_dependency 'canonical-rails', '~> 0.2.5'
27
28
  s.add_dependency 'jquery-rails', '~> 4.3'
28
29
 
29
30
  s.add_development_dependency 'capybara-accessible'
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.7.14.1
4
+ version: 4.0.0.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-05 00:00:00.000000000 Z
11
+ date: 2019-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_api
@@ -16,56 +16,70 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.7.14.1
19
+ version: 4.0.0.beta
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.7.14.1
26
+ version: 4.0.0.beta
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.7.14.1
33
+ version: 4.0.0.beta
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.7.14.1
40
+ version: 4.0.0.beta
41
41
  - !ruby/object:Gem::Dependency
42
- name: bootstrap-sass
42
+ name: bootstrap
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.4'
47
+ version: 4.3.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.4'
54
+ version: 4.3.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: glyphicons
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.2
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.0.2
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: canonical-rails
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: 0.2.3
75
+ version: 0.2.5
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: 0.2.3
82
+ version: 0.2.5
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: jquery-rails
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -134,13 +148,17 @@ files:
134
148
  - app/assets/javascripts/spree/frontend/cart.js
135
149
  - app/assets/javascripts/spree/frontend/checkout.js
136
150
  - app/assets/javascripts/spree/frontend/checkout/address.js
151
+ - app/assets/javascripts/spree/frontend/checkout/address_book.js
137
152
  - app/assets/javascripts/spree/frontend/checkout/payment.js
138
153
  - app/assets/javascripts/spree/frontend/checkout/shipment.js
139
154
  - app/assets/javascripts/spree/frontend/coupon_manager.js
140
155
  - app/assets/javascripts/spree/frontend/product.js
141
156
  - app/assets/stylesheets/spree/frontend.css
142
157
  - app/assets/stylesheets/spree/frontend/_variables.scss
158
+ - app/assets/stylesheets/spree/frontend/address_book.scss
143
159
  - app/assets/stylesheets/spree/frontend/frontend_bootstrap.css.scss
160
+ - app/controllers/concerns/spree/checkout/address_book.rb
161
+ - app/controllers/spree/addresses_controller.rb
144
162
  - app/controllers/spree/checkout_controller.rb
145
163
  - app/controllers/spree/content_controller.rb
146
164
  - app/controllers/spree/home_controller.rb
@@ -149,18 +167,23 @@ files:
149
167
  - app/controllers/spree/products_controller.rb
150
168
  - app/controllers/spree/store_controller.rb
151
169
  - app/controllers/spree/taxons_controller.rb
170
+ - app/helpers/spree/addresses_helper.rb
152
171
  - app/helpers/spree/frontend_helper.rb
153
172
  - app/helpers/spree/orders_helper.rb
154
173
  - app/helpers/spree/taxons_helper.rb
155
174
  - app/models/spree/frontend_configuration.rb
156
- - app/views/kaminari/twitter-bootstrap-3/_first_page.html.erb
157
- - app/views/kaminari/twitter-bootstrap-3/_gap.html.erb
158
- - app/views/kaminari/twitter-bootstrap-3/_last_page.html.erb
159
- - app/views/kaminari/twitter-bootstrap-3/_next_page.html.erb
160
- - app/views/kaminari/twitter-bootstrap-3/_page.html.erb
161
- - app/views/kaminari/twitter-bootstrap-3/_paginator.html.erb
162
- - app/views/kaminari/twitter-bootstrap-3/_prev_page.html.erb
175
+ - app/views/kaminari/twitter-bootstrap-4/_first_page.html.erb
176
+ - app/views/kaminari/twitter-bootstrap-4/_gap.html.erb
177
+ - app/views/kaminari/twitter-bootstrap-4/_last_page.html.erb
178
+ - app/views/kaminari/twitter-bootstrap-4/_next_page.html.erb
179
+ - app/views/kaminari/twitter-bootstrap-4/_page.html.erb
180
+ - app/views/kaminari/twitter-bootstrap-4/_paginator.html.erb
181
+ - app/views/kaminari/twitter-bootstrap-4/_prev_page.html.erb
163
182
  - app/views/spree/address/_form.html.erb
183
+ - app/views/spree/addresses/_form.html.erb
184
+ - app/views/spree/addresses/destroy.js.erb
185
+ - app/views/spree/addresses/edit.html.erb
186
+ - app/views/spree/addresses/new.html.erb
164
187
  - app/views/spree/checkout/_address.html.erb
165
188
  - app/views/spree/checkout/_confirm.html.erb
166
189
  - app/views/spree/checkout/_delivery.html.erb
@@ -226,7 +249,7 @@ homepage: http://spreecommerce.org
226
249
  licenses:
227
250
  - BSD-3-Clause
228
251
  metadata: {}
229
- post_install_message:
252
+ post_install_message:
230
253
  rdoc_options: []
231
254
  require_paths:
232
255
  - lib
@@ -234,16 +257,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
234
257
  requirements:
235
258
  - - ">="
236
259
  - !ruby/object:Gem::Version
237
- version: 2.3.3
260
+ version: 2.5.0
238
261
  required_rubygems_version: !ruby/object:Gem::Requirement
239
262
  requirements:
240
- - - ">="
263
+ - - ">"
241
264
  - !ruby/object:Gem::Version
242
- version: '0'
265
+ version: 1.3.1
243
266
  requirements:
244
267
  - none
245
- rubygems_version: 3.1.4
246
- signing_key:
268
+ rubygems_version: 3.0.2
269
+ signing_key:
247
270
  specification_version: 4
248
271
  summary: Frontend e-commerce functionality for the Spree project.
249
272
  test_files: []