solidus_backend 3.1.7 → 3.2.0.alpha

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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -6
  3. data/app/assets/javascripts/spree/backend/namespaces.js +1 -0
  4. data/app/assets/javascripts/spree/backend/products/index.js +7 -0
  5. data/app/assets/javascripts/spree/backend/shipments.js +1 -1
  6. data/app/assets/javascripts/spree/backend/variant_autocomplete.js +1 -3
  7. data/app/assets/javascripts/spree/backend/views/index.js +1 -0
  8. data/app/assets/javascripts/spree/backend/views/product/search.js +44 -0
  9. data/app/assets/javascripts/spree/backend.js +1 -0
  10. data/app/assets/stylesheets/spree/backend/components/_number_with_currency.scss +1 -0
  11. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +9 -8
  12. data/app/concerns/spree/admin/sets_user_language_locale_key.rb +9 -0
  13. data/app/controllers/spree/admin/base_controller.rb +2 -4
  14. data/app/controllers/spree/admin/cancellations_controller.rb +1 -1
  15. data/app/controllers/spree/admin/locale_controller.rb +2 -0
  16. data/app/controllers/spree/admin/orders/customer_details_controller.rb +1 -1
  17. data/app/controllers/spree/admin/orders_controller.rb +3 -3
  18. data/app/controllers/spree/admin/prices_controller.rb +1 -1
  19. data/app/controllers/spree/admin/reimbursements_controller.rb +2 -2
  20. data/app/controllers/spree/admin/stock_items_controller.rb +1 -1
  21. data/app/controllers/spree/admin/store_credits_controller.rb +6 -6
  22. data/app/controllers/spree/admin/tax_rates_controller.rb +11 -0
  23. data/app/controllers/spree/admin/users_controller.rb +1 -1
  24. data/app/helpers/spree/admin/products_helper.rb +4 -0
  25. data/app/helpers/spree/admin/stock_locations_helper.rb +1 -3
  26. data/app/views/spree/admin/adjustment_reasons/index.html.erb +8 -4
  27. data/app/views/spree/admin/adjustments/index.html.erb +1 -1
  28. data/app/views/spree/admin/orders/index.html.erb +6 -8
  29. data/app/views/spree/admin/prices/_master_variant_table.html.erb +5 -6
  30. data/app/views/spree/admin/prices/_table.html.erb +5 -6
  31. data/app/views/spree/admin/products/edit.html.erb +2 -2
  32. data/app/views/spree/admin/products/index.html.erb +9 -3
  33. data/app/views/spree/admin/promotions/_rules.html.erb +9 -7
  34. data/app/views/spree/admin/promotions/index.html.erb +2 -2
  35. data/app/views/spree/admin/refunds/edit.html.erb +1 -1
  36. data/app/views/spree/admin/shared/_head.html.erb +1 -1
  37. data/app/views/spree/admin/shared/_navigation.html.erb +5 -1
  38. data/app/views/spree/admin/shared/{_navigation_footer.html.erb → _navigation_footer_fallback.html.erb} +5 -5
  39. data/app/views/spree/admin/stock_items/_stock_management.html.erb +1 -1
  40. data/app/views/spree/admin/store_credit_reasons/index.html.erb +5 -3
  41. data/app/views/spree/admin/store_credits/index.html.erb +1 -1
  42. data/app/views/spree/admin/store_credits/show.html.erb +4 -3
  43. data/app/views/spree/admin/tax_rates/index.html.erb +31 -1
  44. data/app/views/spree/admin/users/edit.html.erb +1 -1
  45. data/app/views/spree/admin/users/index.html.erb +3 -3
  46. data/app/views/spree/admin/variants/_form.html.erb +7 -4
  47. data/app/views/spree/admin/variants/_table.html.erb +8 -7
  48. data/app/views/spree/admin/variants/_table_filter.html.erb +8 -9
  49. data/app/views/spree/admin/variants/index.html.erb +1 -1
  50. data/app/views/spree/admin/variants/new.html.erb +1 -0
  51. data/lib/spree/backend.rb +0 -1
  52. data/lib/spree/backend_configuration.rb +10 -0
  53. data/solidus_backend.gemspec +2 -1
  54. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_en-CA.js +10 -0
  55. metadata +13 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8903b91d3f4fae6507dfe625e8f9b24874d0dca1112326f34a59d2248ebdc710
4
- data.tar.gz: 41efa75c338489bf545c78dbe068a790a2ff65921e3eeaea269f6a35c4c32a78
3
+ metadata.gz: 7f40b6a70c46a2ad49195d9bfd9642172fea9ec7375b9253adab0f9eaf2bb3c0
4
+ data.tar.gz: 90b8118323724ba9953ca65dbf44139349a6dafdb59c4e9d7823a8fdff47ef92
5
5
  SHA512:
6
- metadata.gz: 6392976b28c3318b3e6cac80eed33e2cbcc9ac6e9b502aab43d0214bb6926fe9e2b683b56234aee11f47045f8dbcf192283c5e2eeed4d2eed28790605af43577
7
- data.tar.gz: d91c2ec5947013f55f8fa6b5abed42fc7ae9f11bb86cce6f424f63ee4c775da71253bd2d9b2b96269de3ff47448aa82864407e349b8a27bae02659fc3a41f2e0
6
+ metadata.gz: 2145cf1b419208c84b5a671b67eecde34b56c3cc9efdcd40d43271489855368dcf35268c64fe2d1c08e7977aa81b4eb6472c37eb184d86197b760a3b08a9be6a
7
+ data.tar.gz: c5e1b38dc22dc6a654dd8e05f3445e8c725ea7d6df2b27544f16dc95a25307e646f8d282e7139c925b83f07d72fc1b2d65c0f8050789e80230f3e91fe4db4ef6
data/README.md CHANGED
@@ -8,12 +8,7 @@ Backend contains the controllers, views, and assets making up the admin interfac
8
8
 
9
9
  Can be found in [app/assets/javascripts/spree/backend/](./app/assets/javascripts/spree/backend/)
10
10
 
11
- Our scripts are written in a mix of CoffeeScript and JavaScript (ES5). We can't
12
- easily use a transpiler for ECMAScript >= 6 without adding additional steps for
13
- applications using solidus\_admin.
14
-
15
- Though we have existing CoffeeScript files, any new files should be in
16
- JavaScript (ES5).
11
+ Any new files should be in JavaScript (ES5).
17
12
 
18
13
  ### Stylesheets
19
14
 
@@ -8,6 +8,7 @@ _.extend(window.Spree, {
8
8
  Cart: {},
9
9
  Zones: {},
10
10
  Payment: {},
11
+ Product: {},
11
12
  Promotions: {},
12
13
  Stock: {},
13
14
  Tables: {}
@@ -0,0 +1,7 @@
1
+ Spree.ready(function() {
2
+ if ($('[data-hook="admin_products_index_search"]').length) {
3
+ new Spree.Views.Product.Search({
4
+ el: $('[data-hook="admin_products_index_search"]')
5
+ })
6
+ }
7
+ });
@@ -180,7 +180,7 @@ var ShipmentItemView = Backbone.View.extend({
180
180
  Spree.ajax({
181
181
  type: "GET",
182
182
  url: Spree.pathFor('api/variants/' + this.variant_id),
183
- }).success(function(variant){
183
+ }).done(function(variant){
184
184
  var split = new ShipmentSplitItemView({
185
185
  shipmentItemView: _this,
186
186
  shipment_number: _this.shipment_number,
@@ -31,9 +31,7 @@
31
31
  },
32
32
  data: function(term, page) {
33
33
  var searchData = {
34
- q: {
35
- product_name_or_sku_cont: term
36
- },
34
+ variant_search_term: term,
37
35
  token: Spree.api_key
38
36
  };
39
37
  return _.extend(searchData, searchOptions);
@@ -21,6 +21,7 @@
21
21
  //= require 'spree/backend/views/payment/new'
22
22
  //= require 'spree/backend/views/payment/payment_row'
23
23
  //= require 'spree/backend/views/payment/edit_credit_card'
24
+ //= require 'spree/backend/views/product/search'
24
25
  //= require 'spree/backend/views/promotions/option_values_rule'
25
26
  //= require 'spree/backend/views/tables/editable_table'
26
27
  //= require 'spree/backend/views/tables/editable_table_row'
@@ -0,0 +1,44 @@
1
+ Spree.Views.Product.Search = Backbone.View.extend({
2
+ initialize: function() {
3
+ this.render();
4
+ },
5
+
6
+ events: {
7
+ "change .js-with-discarded-input": "onChange"
8
+ },
9
+
10
+ onChange: function(e) {
11
+ const withDiscarded = $(e.target).is(":checked");
12
+
13
+ var keptInput = this.$el.find(".js-kept-variant-sku-input input");
14
+ var allInput = this.$el.find(".js-all-variant-sku-input input");
15
+
16
+ if (withDiscarded) {
17
+ allInput.val(keptInput.val());
18
+ keptInput.val("");
19
+ } else {
20
+ keptInput.val(allInput.val());
21
+ allInput.val("");
22
+ }
23
+
24
+ allInput.prop("disabled", !withDiscarded)
25
+ keptInput.prop("disabled", withDiscarded)
26
+
27
+ this.render();
28
+ },
29
+
30
+ render: function() {
31
+ var withDiscarded = this.$el.find(".js-with-discarded-input").is(":checked");
32
+
33
+ var keptContainer = this.$el.find(".js-kept-variant-sku-input");
34
+ var allContainer = this.$el.find(".js-all-variant-sku-input");
35
+
36
+ if (withDiscarded) {
37
+ keptContainer.hide();
38
+ allContainer.show();
39
+ } else {
40
+ keptContainer.show();
41
+ allContainer.hide();
42
+ }
43
+ },
44
+ });
@@ -47,6 +47,7 @@
47
47
  //= require spree/backend/orders
48
48
  //= require spree/backend/payments/edit
49
49
  //= require spree/backend/payments/new
50
+ //= require spree/backend/products/index
50
51
  //= require spree/backend/product_picker
51
52
  //= require spree/backend/progress
52
53
  //= require spree/backend/promotions
@@ -1,5 +1,6 @@
1
1
  .number-with-currency {
2
2
  $currency-width: 5.5rem;
3
+ flex-wrap: nowrap;
3
4
 
4
5
  &-symbol {
5
6
  min-width: 2.5em;
@@ -147,16 +147,17 @@ span.info {
147
147
  }
148
148
  }
149
149
 
150
- &.withError {
151
- .field_with_errors {
152
- label {
153
- color: theme-color("danger");
154
- }
150
+ .field_with_errors {
151
+ label {
152
+ color: theme-color("danger");
153
+ }
155
154
 
156
- input {
157
- border-color: theme-color("danger");
158
- }
155
+ input {
156
+ border-color: theme-color("danger");
159
157
  }
158
+ }
159
+
160
+ &.withError {
160
161
  .formError {
161
162
  color: lighten(theme-color("danger"), 15);
162
163
  font-style: italic;
@@ -0,0 +1,9 @@
1
+ module Spree
2
+ module Admin
3
+ module SetsUserLanguageLocaleKey
4
+ def set_user_language_locale_key
5
+ :admin_locale
6
+ end
7
+ end
8
+ end
9
+ end
@@ -12,9 +12,7 @@ module Spree
12
12
 
13
13
  # Overrides ControllerHelpers::Common
14
14
  # We want the admin's locale selection to be different than that on the frontend
15
- def set_user_language_locale_key
16
- :admin_locale
17
- end
15
+ include SetsUserLanguageLocaleKey
18
16
 
19
17
  def action
20
18
  params[:action].to_sym
@@ -33,7 +31,7 @@ module Spree
33
31
  # Need to generate an API key for a user due to some backend actions
34
32
  # requiring authentication to the Spree API
35
33
  def generate_admin_api_key
36
- if (user = try_spree_current_user) && user.spree_api_key.blank?
34
+ if (user = spree_current_user) && user.spree_api_key.blank?
37
35
  user.generate_spree_api_key!
38
36
  end
39
37
  end
@@ -30,7 +30,7 @@ module Spree
30
30
  private
31
31
 
32
32
  def created_by
33
- try_spree_current_user.try(:email)
33
+ spree_current_user.try(:email)
34
34
  end
35
35
 
36
36
  def load_order
@@ -3,6 +3,8 @@
3
3
  module Spree
4
4
  module Admin
5
5
  class LocaleController < Spree::Admin::BaseController
6
+ skip_before_action :authorize_admin, only: [:set]
7
+
6
8
  def set
7
9
  requested_locale = params[:switch_to_locale].to_s.presence
8
10
 
@@ -31,7 +31,7 @@ module Spree
31
31
  end
32
32
 
33
33
  unless @order.completed?
34
- @order.next
34
+ @order.contents.advance
35
35
  @order.refresh_shipment_rates
36
36
  end
37
37
 
@@ -112,7 +112,7 @@ module Spree
112
112
  end
113
113
 
114
114
  def cancel
115
- @order.canceled_by(try_spree_current_user)
115
+ @order.canceled_by(spree_current_user)
116
116
  flash[:success] = t('spree.order_canceled')
117
117
  redirect_to(spree.edit_admin_order_path(@order))
118
118
  end
@@ -124,7 +124,7 @@ module Spree
124
124
  end
125
125
 
126
126
  def approve
127
- @order.contents.approve(user: try_spree_current_user)
127
+ @order.contents.approve(user: spree_current_user)
128
128
  flash[:success] = t('spree.order_approved')
129
129
  redirect_to(spree.edit_admin_order_path(@order))
130
130
  end
@@ -156,7 +156,7 @@ module Spree
156
156
 
157
157
  def order_params
158
158
  {
159
- created_by_id: try_spree_current_user.try(:id),
159
+ created_by_id: spree_current_user.try(:id),
160
160
  frontend_viewable: false,
161
161
  store_id: current_store.try(:id)
162
162
  }.with_indifferent_access
@@ -18,7 +18,7 @@ module Spree
18
18
  .currently_valid
19
19
  .for_variant
20
20
  .order(:variant_id, :country_iso, :currency)
21
- .page(params[:page]).per(Spree::Config.admin_variants_per_page)
21
+ .page(params[:variants_page]).per(Spree::Config.admin_variants_per_page)
22
22
  end
23
23
 
24
24
  def edit
@@ -14,7 +14,7 @@ module Spree
14
14
  rescue_from Spree::Core::GatewayError, with: :spree_core_gateway_error
15
15
 
16
16
  def perform
17
- @reimbursement.perform!(created_by: try_spree_current_user)
17
+ @reimbursement.perform!(created_by: spree_current_user)
18
18
  redirect_to location_after_save
19
19
  end
20
20
 
@@ -62,7 +62,7 @@ module Spree
62
62
  end
63
63
 
64
64
  def load_simulated_refunds
65
- @reimbursement_objects = @reimbursement.simulate(created_by: try_spree_current_user)
65
+ @reimbursement_objects = @reimbursement.simulate(created_by: spree_current_user)
66
66
  end
67
67
 
68
68
  def spree_core_gateway_error(error)
@@ -18,7 +18,7 @@ module Spree
18
18
  variant = Spree::Variant.accessible_by(current_ability, :show).find(params[:variant_id])
19
19
  stock_location = Spree::StockLocation.accessible_by(current_ability, :show).find(params[:stock_location_id])
20
20
  stock_location.stock_movements.build(stock_movement_params).tap do |stock_movement|
21
- stock_movement.originator = try_spree_current_user
21
+ stock_movement.originator = spree_current_user
22
22
  stock_movement.stock_item = stock_location.set_up_stock_item(variant)
23
23
  end
24
24
  end
@@ -17,8 +17,8 @@ module Spree
17
17
  def create
18
18
  @store_credit = @user.store_credits.build(
19
19
  permitted_resource_params.merge({
20
- created_by: try_spree_current_user,
21
- action_originator: try_spree_current_user
20
+ created_by: spree_current_user,
21
+ action_originator: spree_current_user
22
22
  })
23
23
  )
24
24
 
@@ -34,7 +34,7 @@ module Spree
34
34
 
35
35
  def update
36
36
  @store_credit.assign_attributes(permitted_resource_params)
37
- @store_credit.created_by = try_spree_current_user
37
+ @store_credit.created_by = spree_current_user
38
38
 
39
39
  if @store_credit.save
40
40
  respond_to do |format|
@@ -50,7 +50,7 @@ module Spree
50
50
  def update_amount
51
51
  @store_credit = @user.store_credits.find(params[:id])
52
52
  amount = params.require(:store_credit).require(:amount)
53
- if @store_credit.update_amount(amount, @store_credit_reason, try_spree_current_user)
53
+ if @store_credit.update_amount(amount, @store_credit_reason, spree_current_user)
54
54
  flash[:success] = flash_message_for(@store_credit, :successfully_updated)
55
55
  redirect_to admin_user_store_credit_path(@user, @store_credit)
56
56
  else
@@ -60,7 +60,7 @@ module Spree
60
60
 
61
61
  def invalidate
62
62
  @store_credit = @user.store_credits.find(params[:id])
63
- if @store_credit.invalidate(@store_credit_reason, try_spree_current_user)
63
+ if @store_credit.invalidate(@store_credit_reason, spree_current_user)
64
64
  redirect_to admin_user_store_credit_path(@user, @store_credit)
65
65
  else
66
66
  render_edit_page
@@ -71,7 +71,7 @@ module Spree
71
71
 
72
72
  def permitted_resource_params
73
73
  params.require(:store_credit).permit([:amount, :currency, :category_id, :memo]).
74
- merge(created_by: try_spree_current_user)
74
+ merge(created_by: spree_current_user)
75
75
  end
76
76
 
77
77
  def collection
@@ -12,6 +12,17 @@ module Spree
12
12
  @available_categories = Spree::TaxCategory.order(:name)
13
13
  @calculators = Rails.application.config.spree.calculators.tax_rates
14
14
  end
15
+
16
+ def collection
17
+ @search = Spree::TaxRate.ransack(params[:q])
18
+ @collection = @search.result
19
+ @collection = @collection
20
+ .includes(:tax_categories)
21
+ .order(:zone_id)
22
+ @collection = @collection
23
+ .page(params[:page])
24
+ .per(Spree::Config[:admin_products_per_page])
25
+ end
15
26
  end
16
27
  end
17
28
  end
@@ -125,7 +125,7 @@ module Spree
125
125
  end
126
126
 
127
127
  def sign_in_if_change_own_password
128
- if try_spree_current_user == @user && @user.password.present?
128
+ if spree_current_user == @user && @user.password.present?
129
129
  sign_in(@user, event: :authentication, bypass: true)
130
130
  end
131
131
  end
@@ -3,6 +3,10 @@
3
3
  module Spree
4
4
  module Admin
5
5
  module ProductsHelper
6
+ def frontend_product_path(product)
7
+ Spree::Backend::Config[:frontend_product_path].call(self, product)
8
+ end
9
+
6
10
  def show_rebuild_vat_checkbox?
7
11
  Spree::TaxRate.included_in_price.exists?
8
12
  end
@@ -4,9 +4,7 @@ module Spree
4
4
  module Admin
5
5
  module StockLocationsHelper
6
6
  def admin_stock_location_display_name(stock_location)
7
- name_parts = [stock_location.admin_name, stock_location.name]
8
- name_parts.delete_if(&:blank?)
9
- name_parts.join(' / ')
7
+ [stock_location.admin_name, stock_location.name].reject(&:blank?).join(' / ')
10
8
  end
11
9
  end
12
10
  end
@@ -6,9 +6,11 @@
6
6
 
7
7
  <% content_for :page_actions do %>
8
8
  <ul class="actions inline-menu">
9
- <li>
10
- <%= link_to t('spree.new_adjustment_reason'), new_object_url, id: 'admin_new_named_type', class: 'btn btn-primary' %>
11
- </li>
9
+ <% if can?(:create, Spree::AdjustmentReason) %>
10
+ <li>
11
+ <%= link_to t('spree.new_adjustment_reason'), new_object_url, id: 'admin_new_named_type', class: 'btn btn-primary' %>
12
+ </li>
13
+ <% end %>
12
14
  </ul>
13
15
  <% end %>
14
16
 
@@ -38,7 +40,9 @@
38
40
  </span>
39
41
  </td>
40
42
  <td class="actions">
41
- <%= link_to_edit adjustment_reason, no_text: true %>
43
+ <% if can? :edit, adjustment_reason %>
44
+ <%= link_to_edit adjustment_reason, no_text: true %>
45
+ <% end %>
42
46
  </td>
43
47
  </tr>
44
48
  <% end %>
@@ -12,7 +12,7 @@
12
12
 
13
13
  <%= render partial: 'adjustments_table' %>
14
14
 
15
- <% if @order.can_add_coupon? %>
15
+ <% if @order.can_add_coupon? && can?(:update, @order) %>
16
16
  <div data-hook="adjustments_new_coupon_code">
17
17
  <%= text_field_tag "coupon_code", "", placeholder: t('spree.coupon_code') %>
18
18
  <%= button_tag t('spree.add_coupon_code'), id: "add_coupon_code", class: 'btn btn-primary' %>
@@ -7,7 +7,7 @@
7
7
  <li>
8
8
  <%= link_to t('spree.new_order'), new_admin_order_url, id: 'admin_new_order', class: 'btn btn-primary' %>
9
9
  </li>
10
- <% end if can? :manage, Spree::Order %>
10
+ <% end if can? :create, Spree::Order %>
11
11
 
12
12
  <% content_for :table_filter_title do %>
13
13
  <%= t('spree.filter') %>
@@ -70,8 +70,8 @@
70
70
 
71
71
  <div class="col-12 col-xl-6">
72
72
  <div class="field">
73
- <%= label_tag :q_bill_address_name_start, t('spree.name_contains') %>
74
- <%= f.text_field :bill_address_name_start, size: 25 %>
73
+ <%= label_tag :q_bill_address_name_cont, t('spree.name_contains') %>
74
+ <%= f.text_field :bill_address_name_cont, size: 25 %>
75
75
  </div>
76
76
  </div>
77
77
 
@@ -191,11 +191,9 @@
191
191
  </table>
192
192
  <% else %>
193
193
  <div class="no-objects-found">
194
- <% if can? :manage, Spree::Order %>
195
- <%= render 'spree/admin/shared/no_objects_found',
196
- resource: Spree::Order,
197
- new_resource_url: spree.new_admin_order_path %>
198
- <% end %>
194
+ <%= render 'spree/admin/shared/no_objects_found',
195
+ resource: Spree::Order,
196
+ new_resource_url: spree.new_admin_order_path %>
199
197
  </div>
200
198
  <% end %>
201
199
 
@@ -1,9 +1,9 @@
1
- <%= paginate master_prices, theme: "solidus_admin" %>
2
-
3
1
  <fieldset class="no-border-bottom <%= "no-border-top" if !variants %>">
4
2
  <% if variants %>
5
- <legend align="center"><%= I18n.t(:master_variant, scope: :spree) %> <%= admin_hint I18n.t(:master_variant, scope: :spree), I18n.t(:master_variant, scope: [:spree, :hints, "spree/price"]) %></legend>
3
+ <legend align="center"><%= t(".master_variant") %> <%= admin_hint t(".master_variant"), I18n.t(:master_variant, scope: [:spree, :hints, "spree/price"]) %></legend>
6
4
  <% end %>
5
+
6
+ <%= paginate master_prices, theme: "solidus_admin" %>
7
7
  <table class="index master_prices">
8
8
  <colgroup>
9
9
  <col style="width: 30%">
@@ -25,7 +25,7 @@
25
25
  <td><%= price.currency %></td>
26
26
  <td><%= price.money.to_html %></td>
27
27
  <td class="actions">
28
- <% if can?(:update, price) %>
28
+ <% if can?(:edit, price) %>
29
29
  <%= link_to_edit(price, no_text: true) unless price.discarded? %>
30
30
  <% end %>
31
31
  <% if can?(:destroy, price) %>
@@ -36,6 +36,5 @@
36
36
  </tr>
37
37
  <% end %>
38
38
  </table>
39
+ <%= paginate master_prices, theme: "solidus_admin" %>
39
40
  </fieldset>
40
-
41
- <%= paginate master_prices, theme: "solidus_admin" %>
@@ -1,7 +1,7 @@
1
- <%= paginate variant_prices, theme: "solidus_admin" %>
1
+ <fieldset class="no-border-bottom" data-hook="variant_prices_table">
2
+ <legend align="center"><%= t(".variant_pricing") %></legend>
2
3
 
3
- <fieldset class="no-border-bottom">
4
- <legend align="center"><%= I18n.t(:variant_pricing, scope: :spree) %></legend>
4
+ <%= paginate variant_prices, theme: "solidus_admin", param_name: :variants_page %>
5
5
  <table class="index prices">
6
6
  <thead data-hook="prices_header">
7
7
  <tr>
@@ -20,7 +20,7 @@
20
20
  <td><%= price.currency %></td>
21
21
  <td><%= price.money.to_html %></td>
22
22
  <td class="actions">
23
- <% if can?(:update, price) %>
23
+ <% if can?(:edit, price) %>
24
24
  <%= link_to_edit(price, no_text: true) unless price.discarded? %>
25
25
  <% end %>
26
26
  <% if can?(:destroy, price) %>
@@ -32,6 +32,5 @@
32
32
  <% end %>
33
33
  </tbody>
34
34
  </table>
35
+ <%= paginate variant_prices, theme: "solidus_admin", param_name: :variants_page %>
35
36
  </fieldset>
36
-
37
- <%= paginate variant_prices, theme: "solidus_admin" %>
@@ -4,9 +4,9 @@
4
4
  <%= link_to t('spree.new_product'), new_object_url, id: 'admin_new_product', class: 'btn btn-primary' %>
5
5
  </li>
6
6
  <% end %>
7
- <% if defined?(Spree::Frontend::Engine) %>
7
+ <% if frontend_product_path(@product) %>
8
8
  <li id="view_product_link">
9
- <%= link_to t('spree.view_product'), spree.product_path(@product), id: 'admin_view_product', class: 'btn btn-default ml-2' %>
9
+ <%= link_to t('spree.view_product'), frontend_product_path(@product), id: 'admin_view_product', class: 'btn btn-default ml-2' %>
10
10
  </li>
11
11
  <% end %>
12
12
  <% end %>
@@ -26,15 +26,21 @@
26
26
 
27
27
  <div class="col-4">
28
28
  <div class="field">
29
- <%= f.label :with_variant_sku_cont, Spree::Variant.human_attribute_name(:sku) %>
30
- <%= f.text_field :with_variant_sku_cont, size: 15 %>
29
+ <div class="js-kept-variant-sku-input">
30
+ <%= f.label :with_kept_variant_sku_cont, Spree::Variant.human_attribute_name(:sku) %>
31
+ <%= f.text_field :with_kept_variant_sku_cont, size: 15 %>
32
+ </div>
33
+ <div class="js-all-variant-sku-input">
34
+ <%= f.label :with_all_variant_sku_cont, Spree::Variant.human_attribute_name(:sku) %>
35
+ <%= f.text_field :with_all_variant_sku_cont, size: 15 %>
36
+ </div>
31
37
  </div>
32
38
  </div>
33
39
 
34
40
  <div class="col-2">
35
41
  <div class="field checkbox">
36
42
  <label>
37
- <%= f.check_box :with_discarded, { checked: params[:q][:with_discarded] == 'true' }, 'true', 'false' %>
43
+ <%= f.check_box :with_discarded, { checked: params[:q][:with_discarded] == 'true', class: 'js-with-discarded-input' }, 'true', 'false' %>
38
44
  <%= t('spree.show_deleted') %>
39
45
  </label>
40
46
  </div>
@@ -19,13 +19,15 @@
19
19
 
20
20
  <%= form_for @promotion, url: object_url, method: :put do |f| %>
21
21
  <fieldset class="no-border-top">
22
- <div id="promotion-policy-select" class="align-center row">
23
- <% Spree::Promotion::MATCH_POLICIES.each do |policy| %>
24
- <div class="col-6">
25
- <label><%= f.radio_button :match_policy, policy %> <%= t "spree.promotion_form.match_policies.#{policy}" %></label>
26
- </div>
27
- <% end %>
28
- </div>
22
+ <% if Spree::Config.allow_promotions_any_match_policy %>
23
+ <div id="promotion-policy-select" class="align-center row">
24
+ <% Spree::Promotion::MATCH_POLICIES.each do |policy| %>
25
+ <div class="col-6">
26
+ <label><%= f.radio_button :match_policy, policy %> <%= t "spree.promotion_form.match_policies.#{policy}" %></label>
27
+ </div>
28
+ <% end %>
29
+ </div>
30
+ <% end %>
29
31
 
30
32
  <div id="rules" class="filter_list">
31
33
  <% if @promotion.rules.any? %>
@@ -99,10 +99,10 @@
99
99
  <%= promotion.usage_count %>
100
100
  </td>
101
101
  <td>
102
- <%= promotion.starts_at.to_s(:long) if promotion.starts_at %>
102
+ <%= Spree::RailsCompatibility.to_fs(promotion.starts_at, :long) if promotion.starts_at %>
103
103
  </td>
104
104
  <td>
105
- <%= promotion.expires_at.to_s(:long) if promotion.expires_at %>
105
+ <%= Spree::RailsCompatibility.to_fs(promotion.expires_at, :long) if promotion.expires_at %>
106
106
  </td>
107
107
  <td class="actions">
108
108
  <% if can?(:edit, promotion) %>
@@ -10,7 +10,7 @@
10
10
  <div class="col-3">
11
11
  <div class="field">
12
12
  <%= f.label :amount %><br/>
13
- <%= @refund.amount %>
13
+ <%= @refund.display_amount %>
14
14
  </div>
15
15
  </div>
16
16
  <div class="col-3">
@@ -41,7 +41,7 @@
41
41
  <%= render "spree/admin/shared/js_locale_data" %>
42
42
 
43
43
  <%= javascript_tag do -%>
44
- Spree.api_key = "<%= try_spree_current_user.try(:spree_api_key) %>";
44
+ Spree.api_key = "<%= spree_current_user.try(:spree_api_key) %>";
45
45
  Spree.env = "<%= Rails.env %>";
46
46
  <% end %>
47
47
 
@@ -7,7 +7,11 @@
7
7
  <span class="text"><%= t('spree.minimize_menu') %></span>
8
8
  <% end %>
9
9
  <%= render partial: 'spree/admin/shared/locale_selection' %>
10
- <%= render partial: 'spree/admin/shared/navigation_footer' %>
10
+ <% if lookup_context.exists?('spree/admin/shared/_navigation_footer') %>
11
+ <%= render partial: 'spree/admin/shared/navigation_footer' %>
12
+ <% else %>
13
+ <%= render partial: 'spree/admin/shared/navigation_footer_fallback' %>
14
+ <% end %>
11
15
  </div>
12
16
  </div>
13
17
  </div>
@@ -3,18 +3,18 @@
3
3
  any typical `rails generate spree:custom_user` auth, if you need something
4
4
  else you can override it like solidus_auth_devise does.
5
5
  -->
6
- <% if try_spree_current_user %>
6
+ <% if spree_current_user %>
7
7
  <ul id="login-nav" class="admin-login-nav">
8
8
  <li data-hook="user-account-link">
9
- <% if can?(:admin, try_spree_current_user) %>
10
- <%= link_to spree.edit_admin_user_path(try_spree_current_user) do %>
9
+ <% if can?(:admin, spree_current_user) %>
10
+ <%= link_to spree.edit_admin_user_path(spree_current_user) do %>
11
11
  <i class='fa fa-user'></i>
12
- <%= try_spree_current_user.email %>
12
+ <%= spree_current_user.email %>
13
13
  <% end %>
14
14
  <% else %>
15
15
  <a>
16
16
  <i class='fa fa-user'></i>
17
- <%= try_spree_current_user.email %>
17
+ <%= spree_current_user.email %>
18
18
  </a>
19
19
  <% end %>
20
20
  </li>
@@ -72,7 +72,7 @@
72
72
  </colgroup>
73
73
  <% variant.stock_items.each do |item| %>
74
74
  <% if @stock_item_stock_locations.include?(item.stock_location) %>
75
- <tr class="js-edit-stock-item stock-item-edit-row" data-variant-id="<%= variant.id %>" data-stock-item="<%= item.to_json %>" data-stock-location-name="<%= item.stock_location.name %>" data-track-inventory="<%= variant.should_track_inventory? %>" data-can-edit="<%= can?(:admin, Spree::StockItem) %>" data-variant-sku="<%= variant.sku %>">
75
+ <tr class="js-edit-stock-item stock-item-edit-row" data-variant-id="<%= variant.id %>" data-stock-item="<%= item.to_json %>" data-stock-location-name="<%= item.stock_location.name %>" data-track-inventory="<%= variant.should_track_inventory? %>" data-can-edit="<%= can?(:edit, Spree::StockItem) %>" data-variant-sku="<%= variant.sku %>">
76
76
  <%# This is rendered in JS %>
77
77
  </tr>
78
78
  <% end %>
@@ -6,9 +6,11 @@
6
6
 
7
7
  <% content_for :page_actions do %>
8
8
  <ul class='actions inline-menu'>
9
- <li>
10
- <%= link_to t('spree.new_store_credit_reason'), new_object_url, id: 'admin_new_named_type', class: 'btn btn-primary' %>
11
- </li>
9
+ <% if can?(:create, Spree::StoreCreditReason) %>
10
+ <li>
11
+ <%= link_to t('spree.new_store_credit_reason'), new_object_url, id: 'admin_new_named_type', class: 'btn btn-primary' %>
12
+ </li>
13
+ <% end %>
12
14
  </ul>
13
15
  <% end %>
14
16
 
@@ -70,6 +70,6 @@
70
70
  <div class="no-objects-found">
71
71
  <%= render 'spree/admin/shared/no_objects_found',
72
72
  resource: Spree::StoreCredit,
73
- new_resource_url: new_object_url %>
73
+ new_resource_url: spree.new_admin_user_store_credit_url %>
74
74
  </div>
75
75
  <% end %>
@@ -72,9 +72,10 @@
72
72
  <col style="width: 20%;" />
73
73
  <col style="width: 10%;" />
74
74
  <col style="width: 10%;" />
75
- <col style="width: 25%;" />
75
+ <col style="width: 20%;" />
76
+ <col style="width: 10%;" />
76
77
  <col style="width: 10%;" />
77
- <col style="width: 25%;" />
78
+ <col style="width: 20%;" />
78
79
  </colgroup>
79
80
  <thead>
80
81
  <tr>
@@ -84,7 +85,7 @@
84
85
  <th><%= t('spree.admin.store_credits.created_by') %></th>
85
86
  <th><%= Spree::StoreCreditEvent.human_attribute_name(:user_total_amount) %></th>
86
87
  <th><%= Spree::StoreCreditEvent.human_attribute_name(:amount_remaining) %></th>
87
- <th><%= Spree::StoreCreditReason.human_attribute_name(:name) %></th>
88
+ <th><%= t('spree.admin.store_credits.reason_for_updating') %></th>
88
89
  </tr>
89
90
  </thead>
90
91
  <tbody>
@@ -13,7 +13,35 @@
13
13
  <% end %>
14
14
  <% end %>
15
15
 
16
+ <% content_for :table_filter_title do %>
17
+ <%= t("spree.filter") %>
18
+ <% end %>
19
+
20
+ <% content_for :table_filter do %>
21
+ <%= search_form_for [:admin, @search], url: spree.admin_tax_rates_path do |f| %>
22
+ <div class= "row">
23
+ <div class="col-md-6">
24
+ <div class="field">
25
+ <%= f.label :zone_id_eq, Spree::Zone.model_name.human %>
26
+ <%= f.collection_select :zone_id_eq, @available_zones, :id, :name, { include_blank: t("spree.all") }, class: 'select2 fullwidth' %>
27
+ </div>
28
+ </div>
29
+ <div class="col-md-6">
30
+ <div class="field">
31
+ <%= f.label :tax_categories_id_eq, Spree::TaxCategory.model_name.human %>
32
+ <%= f.collection_select :tax_categories_id_eq, @available_categories, :id, :name, { include_blank: t("spree.all") }, class: 'select2 fullwidth' %>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ <div class="filter-actions">
37
+ <%= button_tag t("spree.filter_results"), class: "btn btn-primary" %>
38
+ </div>
39
+ <% end %>
40
+ <% end %>
41
+
16
42
  <% if @tax_rates.any? %>
43
+ <%= paginate @tax_rates, scope: spree, theme: "solidus_admin" %>
44
+
17
45
  <table class="index">
18
46
  <colgroup>
19
47
  <col style="width: 15%">
@@ -55,7 +83,7 @@
55
83
  <td><%=tax_rate.included_in_price? ? t('spree.say_yes') : t('spree.say_no') %></td>
56
84
  <td><%=tax_rate.show_rate_in_label? ? t('spree.say_yes') : t('spree.say_no') %></td>
57
85
  <td><%=tax_rate.expires_at.to_date.to_s(:short_date) if tax_rate.expires_at %></td>
58
- <td><%=tax_rate.calculator.to_s %></td>
86
+ <td><%=tax_rate.calculator && tax_rate.calculator.class.model_name.human %></td>
59
87
  <td class="actions">
60
88
  <% if can?(:update, tax_rate) %>
61
89
  <%= link_to_edit tax_rate, no_text: true %>
@@ -68,6 +96,8 @@
68
96
  <% end %>
69
97
  </tbody>
70
98
  </table>
99
+
100
+ <%= paginate @tax_rates, scope: spree, theme: "solidus_admin" %>
71
101
  <% else %>
72
102
  <div class="no-objects-found">
73
103
  <%= render 'spree/admin/shared/no_objects_found',
@@ -32,7 +32,7 @@
32
32
  <% if @user.spree_api_key.present? %>
33
33
  <div id="current-api-key">
34
34
  <strong><%= t('.key') %>: </strong>
35
- <% if @user == try_spree_current_user %>
35
+ <% if @user == spree_current_user %>
36
36
  <%= @user.spree_api_key %>
37
37
  <% else %>
38
38
  <i>(<%= t('spree.hidden') %>)</i>
@@ -87,10 +87,10 @@
87
87
  <td class="align-center"><%= l user.created_at.to_date %></td>
88
88
  <td data-hook="admin_users_index_row_actions" class="actions">
89
89
  <% if can?(:edit, user) %>
90
- <%= link_to_edit user, no_text: true %>
90
+ <%= link_to_edit user, no_text: true, url: spree.admin_user_path(user) %>
91
91
  <% end %>
92
- <% if can?(:destroy, user) && user.orders.none? %>
93
- <%= link_to_delete user, no_text: true %>
92
+ <% if can?(:destroy, user) && user.can_be_deleted? %>
93
+ <%= link_to_delete user, no_text: true, url: spree.admin_user_path(user) %>
94
94
  <% end %>
95
95
  </td>
96
96
  </tr>
@@ -17,7 +17,8 @@
17
17
  </div>
18
18
  </div>
19
19
  </fieldset>
20
- <fieldset class="no-border-top no-border-bottom">
20
+ <fieldset class="no-border-bottom">
21
+ <legend><%= t(".options") %></legend>
21
22
  <div class="row">
22
23
  <% @product.option_types.each_with_index do |option_type, index| %>
23
24
  <div class="col-3">
@@ -41,7 +42,8 @@
41
42
  </div>
42
43
 
43
44
  <div data-hook="admin_variant_form_additional_fields">
44
- <fieldset class="no-border-top no-border-bottom">
45
+ <fieldset class="no-border-bottom">
46
+ <legend><%= t(".properties") %></legend>
45
47
  <div class="row">
46
48
  <% [:weight, :height, :width, :depth].each_with_index do |field, index| %>
47
49
  <div class="col-3">
@@ -58,8 +60,9 @@
58
60
  </div>
59
61
 
60
62
  <div data-hook="admin_variant_form_fields">
61
- <fieldset class="no-border-top no-border-bottom">
62
- <p> <%== t('.pricing_hint') %> </p>
63
+ <fieldset class="no-border-bottom">
64
+ <legend><%= t(".pricing") %></legend>
65
+ <div class="alert alert-info"><%= t('.pricing_hint') %></div>
63
66
 
64
67
  <div class="row">
65
68
  <div class="col-3">
@@ -3,10 +3,9 @@
3
3
  <table class="index sortable" data-sortable-link="<%= update_positions_admin_product_variants_path(@product) %>">
4
4
  <colgroup>
5
5
  <col style="width: 5%" />
6
- <col style="width: 25%" />
7
- <col style="width: 20%" />
6
+ <col style="width: 35%" />
8
7
  <col style="width: 20%" />
9
- <col style="width: 15%" />
8
+ <col style="width: 25%" />
10
9
  <col style="width: 15%" />
11
10
  </colgroup>
12
11
  <thead data-hook="variants_header">
@@ -27,7 +26,7 @@
27
26
  <% end %>
28
27
  </td>
29
28
  <td><%= variant.options_text %></td>
30
- <td><%= variant.display_price.to_html %></td>
29
+ <td><%= variant.display_price&.to_html %></td>
31
30
  <td><%= variant.sku %></td>
32
31
  <td class="actions">
33
32
  <% if can?(:update, variant) %>
@@ -40,9 +39,11 @@
40
39
  </td>
41
40
  </tr>
42
41
  <% end %>
43
- <% if variants.empty? %>
44
- <tr><td colspan="4"><%= t('spree.none') %></td></tr>
45
- <% end %>
46
42
  </tbody>
47
43
  </table>
44
+ <% if variants.empty? %>
45
+ <div class="alert alert-warning">
46
+ <%= t('.no_variants_found', term: params[:variant_search_term]) %>
47
+ </div>
48
+ <% end %>
48
49
  <%= paginate variants, theme: "solidus_admin" %>
@@ -4,14 +4,13 @@
4
4
 
5
5
  <% content_for :table_filter do %>
6
6
  <%= form_for :variant_search, url: spree.admin_product_variants_path(product), method: :get do |f| %>
7
- <div class="col-10">
8
- <div data-hook="admin_variants_index_search" class="field">
9
- <%= f.label :variant_search_term, t('spree.variant_search_placeholder') %>
10
- <%= text_field_tag :variant_search_term, params[:variant_search_term], class: "fullwidth", placeholder: t('spree.variant_search_placeholder') %>
7
+ <div class="row">
8
+ <div class="col-10">
9
+ <div data-hook="admin_variants_index_search" class="field">
10
+ <%= f.label :variant_search_term, t('spree.variant_search_placeholder') %>
11
+ <%= text_field_tag :variant_search_term, params[:variant_search_term], class: "fullwidth", placeholder: t('spree.variant_search_placeholder') %>
12
+ </div>
11
13
  </div>
12
- </div>
13
-
14
- <% if product.variants.with_discarded.discarded.any? %>
15
14
  <div class="col-2">
16
15
  <div class="field checkbox">
17
16
  <label>
@@ -20,10 +19,10 @@
20
19
  </label>
21
20
  </div>
22
21
  </div>
23
- <% end %>
22
+ </div>
24
23
 
25
24
  <div class="actions filter-actions">
26
- <%= f.button :search %>
25
+ <%= button_tag t('spree.filter_results'), class: 'btn btn-primary' %>
27
26
  </div>
28
27
  <% end %>
29
28
  <% end %>
@@ -14,7 +14,7 @@
14
14
  <% end %>
15
15
  <% end %>
16
16
 
17
- <% if @product.variants.with_discarded.any? %>
17
+ <% if @product.variants.with_discarded.any? || params[:variant_search_term].present? %>
18
18
  <%= render "table_filter", product: @product %>
19
19
  <%= render "table", variants: @variants %>
20
20
  <% else %>
@@ -6,6 +6,7 @@
6
6
 
7
7
  <%= form_for [:admin, @product, @variant] do |f| %>
8
8
  <fieldset class="no-border-top" data-hook="admin_variant_new_form">
9
+ <legend><%= t('.new_variant') %></legend>
9
10
  <%= render partial: 'form', locals: { f: f } %>
10
11
  <%= render partial: 'spree/admin/shared/new_resource_links' %>
11
12
  </fieldset>
data/lib/spree/backend.rb CHANGED
@@ -4,7 +4,6 @@ require 'spree_core'
4
4
  require 'spree_api'
5
5
 
6
6
  require 'jquery-rails'
7
- require 'coffee-rails'
8
7
  require 'sassc-rails'
9
8
  require 'handlebars_assets'
10
9
  require 'font-awesome-rails'
@@ -6,6 +6,16 @@ module Spree
6
6
  class BackendConfiguration < Preferences::Configuration
7
7
  preference :locale, :string, default: I18n.default_locale
8
8
 
9
+ preference :frontend_product_path,
10
+ :proc,
11
+ default: proc {
12
+ ->(template_context, product) {
13
+ return unless template_context.spree.respond_to?(:product_path)
14
+
15
+ template_context.spree.product_path(product)
16
+ }
17
+ }
18
+
9
19
  ORDER_TABS ||= [:orders, :payments, :creditcard_payments,
10
20
  :shipments, :credit_cards, :return_authorizations,
11
21
  :customer_returns, :adjustments, :customer_details]
@@ -14,6 +14,8 @@ Gem::Specification.new do |s|
14
14
  s.homepage = 'http://solidus.io'
15
15
  s.license = 'BSD-3-Clause'
16
16
 
17
+ s.metadata['rubygems_mfa_required'] = 'true'
18
+
17
19
  s.files = `git ls-files -z`.split("\x0").reject do |f|
18
20
  f.match(%r{^(spec|script)/})
19
21
  end
@@ -24,7 +26,6 @@ Gem::Specification.new do |s|
24
26
  s.add_dependency 'solidus_api', s.version
25
27
  s.add_dependency 'solidus_core', s.version
26
28
 
27
- s.add_dependency 'coffee-rails'
28
29
  s.add_dependency 'font-awesome-rails', '~> 4.0'
29
30
  s.add_dependency 'jbuilder', '~> 2.8'
30
31
  s.add_dependency 'jquery-rails'
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Select2 English Canada translations
3
+ */
4
+ (function ($) {
5
+ "use strict";
6
+
7
+ $.fn.select2.locales['en-CA'] = {};
8
+
9
+ $.extend($.fn.select2.defaults, $.fn.select2.locales['en-CA']);
10
+ })(jQuery);
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_backend
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.7
4
+ version: 3.2.0.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-15 00:00:00.000000000 Z
11
+ date: 2022-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_api
@@ -16,42 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.1.7
19
+ version: 3.2.0.alpha
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.1.7
26
+ version: 3.2.0.alpha
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: solidus_core
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 3.1.7
33
+ version: 3.2.0.alpha
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.1.7
41
- - !ruby/object:Gem::Dependency
42
- name: coffee-rails
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
40
+ version: 3.2.0.alpha
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: font-awesome-rails
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -229,6 +215,7 @@ files:
229
215
  - app/assets/javascripts/spree/backend/payments/edit.js
230
216
  - app/assets/javascripts/spree/backend/payments/new.js
231
217
  - app/assets/javascripts/spree/backend/product_picker.js
218
+ - app/assets/javascripts/spree/backend/products/index.js
232
219
  - app/assets/javascripts/spree/backend/progress.js
233
220
  - app/assets/javascripts/spree/backend/promotions.js
234
221
  - app/assets/javascripts/spree/backend/promotions/activation.js
@@ -285,6 +272,7 @@ files:
285
272
  - app/assets/javascripts/spree/backend/views/payment/edit_credit_card.js
286
273
  - app/assets/javascripts/spree/backend/views/payment/new.js
287
274
  - app/assets/javascripts/spree/backend/views/payment/payment_row.js
275
+ - app/assets/javascripts/spree/backend/views/product/search.js
288
276
  - app/assets/javascripts/spree/backend/views/promotions/option_values_rule.js
289
277
  - app/assets/javascripts/spree/backend/views/state_select.js
290
278
  - app/assets/javascripts/spree/backend/views/stock/add_stock_item.js
@@ -352,6 +340,7 @@ files:
352
340
  - app/assets/stylesheets/spree/backend/shared/_utilities.scss
353
341
  - app/assets/stylesheets/spree/backend/spree_admin.scss
354
342
  - app/assets/stylesheets/spree/backend/themes/blue_steel/globals/_variables_override.scss
343
+ - app/concerns/spree/admin/sets_user_language_locale_key.rb
355
344
  - app/controllers/spree/admin/adjustment_reasons_controller.rb
356
345
  - app/controllers/spree/admin/adjustments_controller.rb
357
346
  - app/controllers/spree/admin/base_controller.rb
@@ -599,7 +588,7 @@ files:
599
588
  - app/views/spree/admin/shared/_menu.html.erb
600
589
  - app/views/spree/admin/shared/_modal.html.erb
601
590
  - app/views/spree/admin/shared/_navigation.html.erb
602
- - app/views/spree/admin/shared/_navigation_footer.html.erb
591
+ - app/views/spree/admin/shared/_navigation_footer_fallback.html.erb
603
592
  - app/views/spree/admin/shared/_navigation_header.html.erb
604
593
  - app/views/spree/admin/shared/_new_resource_links.html.erb
605
594
  - app/views/spree/admin/shared/_no_objects_found.html.erb
@@ -772,6 +761,7 @@ files:
772
761
  - vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_de.js
773
762
  - vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_el.js
774
763
  - vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_en-AU.js
764
+ - vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_en-CA.js
775
765
  - vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_en-GB.js
776
766
  - vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_en-IN.js
777
767
  - vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_en-NZ.js
@@ -904,7 +894,8 @@ files:
904
894
  homepage: http://solidus.io
905
895
  licenses:
906
896
  - BSD-3-Clause
907
- metadata: {}
897
+ metadata:
898
+ rubygems_mfa_required: 'true'
908
899
  post_install_message:
909
900
  rdoc_options: []
910
901
  require_paths: