solidus_backend 3.1.9 → 3.2.0.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) 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 +3 -7
  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/product_properties/index.html.erb +2 -2
  32. data/app/views/spree/admin/products/_form.html.erb +1 -1
  33. data/app/views/spree/admin/products/edit.html.erb +2 -2
  34. data/app/views/spree/admin/products/index.html.erb +9 -3
  35. data/app/views/spree/admin/promotions/_rules.html.erb +9 -7
  36. data/app/views/spree/admin/promotions/index.html.erb +2 -2
  37. data/app/views/spree/admin/refunds/edit.html.erb +1 -1
  38. data/app/views/spree/admin/shared/_head.html.erb +1 -1
  39. data/app/views/spree/admin/shared/_navigation.html.erb +5 -1
  40. data/app/views/spree/admin/shared/{_navigation_footer.html.erb → _navigation_footer_fallback.html.erb} +5 -5
  41. data/app/views/spree/admin/stock_items/_stock_management.html.erb +1 -1
  42. data/app/views/spree/admin/store_credit_reasons/index.html.erb +5 -3
  43. data/app/views/spree/admin/store_credits/index.html.erb +1 -1
  44. data/app/views/spree/admin/store_credits/show.html.erb +4 -3
  45. data/app/views/spree/admin/stores/_form.html.erb +2 -2
  46. data/app/views/spree/admin/tax_rates/index.html.erb +31 -1
  47. data/app/views/spree/admin/users/_user_page_actions.html.erb +1 -1
  48. data/app/views/spree/admin/users/edit.html.erb +1 -1
  49. data/app/views/spree/admin/users/index.html.erb +2 -2
  50. data/app/views/spree/admin/users/items.html.erb +1 -1
  51. data/app/views/spree/admin/users/orders.html.erb +1 -1
  52. data/app/views/spree/admin/variants/_form.html.erb +7 -4
  53. data/app/views/spree/admin/variants/_table.html.erb +1 -1
  54. data/app/views/spree/admin/variants/new.html.erb +1 -0
  55. data/lib/spree/backend.rb +0 -1
  56. data/lib/spree/backend_configuration.rb +10 -0
  57. data/solidus_backend.gemspec +2 -1
  58. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_en-CA.js +10 -0
  59. data/vendor/assets/stylesheets/solidus_admin/select2.scss +1 -2
  60. metadata +17 -26
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 68a1543b1368db833acd5d99fedacbcb94b6a29796e686b60910e610320e0ea3
4
- data.tar.gz: 85130236d083ace48d0a4a0ceded5d856e912419fe29593c568c736480e7a21f
3
+ metadata.gz: 7f40b6a70c46a2ad49195d9bfd9642172fea9ec7375b9253adab0f9eaf2bb3c0
4
+ data.tar.gz: 90b8118323724ba9953ca65dbf44139349a6dafdb59c4e9d7823a8fdff47ef92
5
5
  SHA512:
6
- metadata.gz: 4b5bbb57cccca2c85b6c463cfddc1f1c5aff508d677e4bd6c9895a7a7df25c8bc6f6344563e81eb8cb2ff57499263062e16f0da288794e226645500827106d64
7
- data.tar.gz: 976db3f4710ecdf6557d45d39a6db8d265d95e654ecd3820fe2c7efdb8e635e5bc47fad73b799238bf358d13e0cf59650228a2c85e511ce2a4240da2b7285e49
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,11 +31,8 @@
31
31
  },
32
32
  data: function(term, page) {
33
33
  var searchData = {
34
- q: {
35
- product_name_or_sku_cont: term
36
- },
37
- token: Spree.api_key,
38
- page: page
34
+ variant_search_term: term,
35
+ token: Spree.api_key
39
36
  };
40
37
  return _.extend(searchData, searchOptions);
41
38
  },
@@ -43,8 +40,7 @@
43
40
  results: function(data, page) {
44
41
  window.variants = data["variants"];
45
42
  return {
46
- results: data["variants"],
47
- more: data.current_page * data.per_page < data.total_count
43
+ results: data["variants"]
48
44
  };
49
45
  }
50
46
  },
@@ -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" %>
@@ -36,7 +36,7 @@
36
36
  </tbody>
37
37
  </table>
38
38
 
39
- <% if can?(:create, Spree::ProductProperty) && can?(:update, Spree::ProductProperty) %>
39
+ <% if can?([:create, :update], Spree::ProductProperty) %>
40
40
  <%= render 'spree/admin/shared/edit_resource_links' %>
41
41
  <% end %>
42
42
 
@@ -95,7 +95,7 @@
95
95
  <% end %>
96
96
  </tbody>
97
97
  </table>
98
- <% if can?(:create, Spree::VariantPropertyRule) && can?(:update, Spree::VariantPropertyRule) %>
98
+ <% if can?([:create, :update], Spree::VariantPropertyRule) %>
99
99
  <%= render 'spree/admin/shared/edit_resource_links' %>
100
100
  <% end %>
101
101
  </fieldset>
@@ -33,7 +33,7 @@
33
33
  <%= f.field_container :price do %>
34
34
  <%= f.label :price, class: Spree::Config.require_master_price ? 'required' : '' %>
35
35
 
36
- <% if (f.object.new_record? || f.object.has_default_price?) && !f.object.discarded? %>
36
+ <% if f.object.new_record? || f.object.has_default_price? %>
37
37
  <%= render "spree/admin/shared/number_with_currency",
38
38
  f: f,
39
39
  amount_attr: :price,
@@ -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>
@@ -62,8 +62,8 @@
62
62
  <%= f.field_container :cart_tax_country_iso do %>
63
63
  <%= f.label :cart_tax_country_iso %>
64
64
  <%= f.field_hint :cart_tax_country_iso %>
65
- <%= f.collection_select :cart_tax_country_iso,
66
- available_countries(restrict_to_zone: nil), :iso, :name,
65
+ <%= f.select :cart_tax_country_iso,
66
+ Spree::Country.all.map { |c| [c.name, c.iso] },
67
67
  { include_blank: t(".no_cart_tax_country") },
68
68
  { class: "custom-select fullwidth" } %>
69
69
  <%= f.error_message_on :cart_tax_country_iso %>
@@ -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',
@@ -1,5 +1,5 @@
1
1
  <% content_for :page_actions do %>
2
- <% if can?(:admin, Spree::Order) && can?(:create, Spree::Order) %>
2
+ <% if can?([:admin, :create], Spree::Order) %>
3
3
  <li>
4
4
  <%= link_to t(".create_order"), spree.new_admin_order_path(user_id: @user.id), class: 'btn btn-primary' %>
5
5
  </li>
@@ -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
92
  <% if can?(:destroy, user) && user.can_be_deleted? %>
93
- <%= link_to_delete user, no_text: true %>
93
+ <%= link_to_delete user, no_text: true, url: spree.admin_user_path(user) %>
94
94
  <% end %>
95
95
  </td>
96
96
  </tr>
@@ -60,7 +60,7 @@
60
60
  </span>
61
61
  </td>
62
62
  <td class="order-number">
63
- <% if can?(:admin, order) && can?(:edit, order) %>
63
+ <% if can?([:admin, :edit], order) %>
64
64
  <%= link_to order.number, edit_admin_order_url(order) %>
65
65
  <% else %>
66
66
  <%= order.number %>
@@ -38,7 +38,7 @@
38
38
  <tr data-hook="admin_orders_index_rows">
39
39
  <td class="order-completed-at"><%= l(order.completed_at.to_date) if order.completed_at %></td>
40
40
  <td class="order-number">
41
- <% if can?(:admin, order) && can?(:edit, order) %>
41
+ <% if can?([:admin, :edit], order) %>
42
42
  <%= link_to order.number, edit_admin_order_path(order) %>
43
43
  <% else %>
44
44
  <%= order.number %>
@@ -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">
@@ -26,7 +26,7 @@
26
26
  <% end %>
27
27
  </td>
28
28
  <td><%= variant.options_text %></td>
29
- <td><%= variant.display_price.to_html %></td>
29
+ <td><%= variant.display_price&.to_html %></td>
30
30
  <td><%= variant.sku %></td>
31
31
  <td class="actions">
32
32
  <% if can?(:update, variant) %>
@@ -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);
@@ -439,7 +439,7 @@ disabled look for disabled choices in the results dropdown
439
439
  }
440
440
 
441
441
  .select2-more-results.select2-active {
442
- background: #f4f4f4 image-url('solidus_admin/select2-spinner.gif') no-repeat 95% center;
442
+ background: #f4f4f4 image-url('solidus_admin/select2-spinner.gif') no-repeat 100%;
443
443
  }
444
444
 
445
445
  .select2-results .select2-ajax-error {
@@ -449,7 +449,6 @@ disabled look for disabled choices in the results dropdown
449
449
  .select2-more-results {
450
450
  background: #f4f4f4;
451
451
  display: list-item;
452
- padding: 0.5em 1em
453
452
  }
454
453
 
455
454
  /* disabled styles */
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.9
4
+ version: 3.2.0.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-07 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.9
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.9
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.9
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.9
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,8 +894,9 @@ files:
904
894
  homepage: http://solidus.io
905
895
  licenses:
906
896
  - BSD-3-Clause
907
- metadata: {}
908
- post_install_message:
897
+ metadata:
898
+ rubygems_mfa_required: 'true'
899
+ post_install_message:
909
900
  rdoc_options: []
910
901
  require_paths:
911
902
  - lib
@@ -920,8 +911,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
920
911
  - !ruby/object:Gem::Version
921
912
  version: 1.8.23
922
913
  requirements: []
923
- rubygems_version: 3.3.7
924
- signing_key:
914
+ rubygems_version: 3.1.2
915
+ signing_key:
925
916
  specification_version: 4
926
917
  summary: Admin interface for the Solidus e-commerce framework.
927
918
  test_files: []