spree_frontend 3.7.14.1 → 4.0.0.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []