spree_backend 4.3.0.rc1 → 4.3.0.rc2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f94292044f4437a2ef5bae417d2241dfcc073ecf4173af095e3485ad27dd5bd0
4
- data.tar.gz: 883ef408cd919ac8feb7fc23113c30125c56665643dcd582039dbe3cf6d52ff4
3
+ metadata.gz: b552e452716a6965ec77028e7de7ee0ffec1b444fc7b3bbf019f9030754efbda
4
+ data.tar.gz: a20695449a9e53981d1291f4b306bb837b1b70b328228cf43f0ef142c1e2a19e
5
5
  SHA512:
6
- metadata.gz: f4f80af095b6ab0bc6ce8353ac791d748a6caa2c623541617df89eb04949448437efe0a587ff63d408c24cd258f9085f0a787726d87e1524611fb2711b50449c
7
- data.tar.gz: dce1f89871390b8bf603874c2ddd9ef67007242e7f272c78f2f503047ce8e419270b0f4ef6ff9f90cddfc0e2b954bdef2d81c981f11ca1b3de25477b772d14cb
6
+ metadata.gz: e5d1ba5defe556748572163de7e1492ab6493b7f40beca608d9b8f490c064396335a661783074cef046fba09460a3b7179aca8886bf31ffab8a20478393eac15
7
+ data.tar.gz: 43efc1472186e5b332e8733fbacb4a3fee831511c906860704d9b008ecd8e4301ac7ad7be68a8a34d9994c5c208899dcf312d960c0eee77e7b840370cb223ce7
@@ -34,11 +34,16 @@
34
34
  // data-autocomplete-additional-term-value="Spree::Cms::Pages::Homepage" <- Additional hard coded term | DEFAULT: null (not used)
35
35
 
36
36
  document.addEventListener('DOMContentLoaded', function() {
37
- const select2Autocompletes = document.querySelectorAll('select.select2autocomplete')
38
- select2Autocompletes.forEach(element => buildParamsFromDataAttrs(element))
37
+ loadAutoCompleteParams()
39
38
  })
40
39
 
41
- function buildParamsFromDataAttrs (element) {
40
+ // eslint-disable-next-line no-unused-vars
41
+ function loadAutoCompleteParams() {
42
+ const select2Autocompletes = document.querySelectorAll('select[data-autocomplete-url-value]')
43
+ select2Autocompletes.forEach(element => buildParamsFromDataAttrs(element))
44
+ }
45
+
46
+ function buildParamsFromDataAttrs(element) {
42
47
  $(element).select2Autocomplete({
43
48
  // Required Attributes
44
49
  apiUrl: Spree.routes[element.dataset.autocompleteUrlValue],
@@ -62,6 +67,8 @@ function buildParamsFromDataAttrs (element) {
62
67
  $.fn.select2Autocomplete = function(params) {
63
68
  // Required params
64
69
  const apiUrl = params.apiUrl || null
70
+ const resourcePlural = apiUrl.match(/([^/]*)\/*$/)[1]
71
+ const resourceSingular = resourcePlural.slice(0, -1)
65
72
 
66
73
  // Optional Params
67
74
  const select2placeHolder = params.placeholder || Spree.translations.search
@@ -76,14 +83,14 @@ $.fn.select2Autocomplete = function(params) {
76
83
 
77
84
  function formatList(values) {
78
85
  if (customReturnId) {
79
- return values.map(function (obj) {
86
+ return values.map(function(obj) {
80
87
  return {
81
88
  id: obj.attributes[customReturnId],
82
89
  text: obj.attributes[returnAttribute]
83
90
  }
84
91
  })
85
92
  } else {
86
- return values.map(function (obj) {
93
+ return values.map(function(obj) {
87
94
  return {
88
95
  id: obj.id,
89
96
  text: obj.attributes[returnAttribute]
@@ -101,8 +108,11 @@ $.fn.select2Autocomplete = function(params) {
101
108
  ajax: {
102
109
  url: apiUrl,
103
110
  headers: Spree.apiV2Authentication(),
104
- data: function (params) {
111
+ data: function(params) {
105
112
  return {
113
+ fields: {
114
+ [resourceSingular]: returnAttribute
115
+ },
106
116
  filter: {
107
117
  [searchQuery]: params.term
108
118
  }
@@ -124,8 +134,11 @@ $.fn.select2Autocomplete = function(params) {
124
134
  ajax: {
125
135
  url: apiUrl,
126
136
  headers: Spree.apiV2Authentication(),
127
- data: function (params) {
137
+ data: function(params) {
128
138
  return {
139
+ fields: {
140
+ [resourceSingular]: returnAttribute
141
+ },
129
142
  filter: {
130
143
  [searchQuery]: params.term,
131
144
  [additionalQuery]: additionalTerm
@@ -6,6 +6,6 @@ document.addEventListener('DOMContentLoaded', function() {
6
6
  'image table paste code link table'
7
7
  ],
8
8
  menubar: false,
9
- toolbar: 'undo redo | styleselect | bold italic link | alignleft aligncenter alignright alignjustify | table | bullist numlist outdent indent | code '
9
+ toolbar: 'undo redo | styleselect | bold italic link forecolor backcolor | alignleft aligncenter alignright alignjustify | table | bullist numlist outdent indent | code '
10
10
  });
11
11
  })
@@ -1,6 +1,8 @@
1
1
  $.fn.optionTypeAutocomplete = function () {
2
2
  'use strict'
3
3
 
4
+ console.warn('optionTypeAutocomplete is deprecated and will be removed in Spree 5.0')
5
+
4
6
  this.select2({
5
7
  minimumInputLength: 2,
6
8
  multiple: true,
@@ -23,5 +25,9 @@ $.fn.optionTypeAutocomplete = function () {
23
25
  }
24
26
 
25
27
  $(document).ready(function () {
28
+ var productOptionTypeSelector = document.getElementById('product_option_type_ids')
29
+ if (productOptionTypeSelector == null) return
30
+ if (productOptionTypeSelector.hasAttribute('data-autocomplete-url-value')) return
31
+
26
32
  $('#product_option_type_ids').optionTypeAutocomplete()
27
33
  })
@@ -2,6 +2,8 @@ $.fn.taxonAutocomplete = function() {
2
2
  'use strict'
3
3
 
4
4
  function formatTaxonList(values) {
5
+ console.warn('taxonAutocomplete is deprecated and will be removed in Spree 5.0')
6
+
5
7
  return values.map(function (obj) {
6
8
  return {
7
9
  id: obj.id,
@@ -20,7 +22,7 @@ $.fn.taxonAutocomplete = function() {
20
22
  data: function (params) {
21
23
  return {
22
24
  q: {
23
- name_cont: params.term,
25
+ name_cont: params.term
24
26
  },
25
27
  token: Spree.api_key
26
28
  }
@@ -35,5 +37,9 @@ $.fn.taxonAutocomplete = function() {
35
37
  }
36
38
 
37
39
  $(document).ready(function () {
40
+ var productTaxonSelector = document.getElementById('product_taxon_ids')
41
+ if (productTaxonSelector == null) return
42
+ if (productTaxonSelector.hasAttribute('data-autocomplete-url-value')) return
43
+
38
44
  $('#product_taxon_ids').taxonAutocomplete()
39
45
  })
@@ -13,7 +13,7 @@ module Spree
13
13
  private
14
14
 
15
15
  def location_after_destroy
16
- spree.admin_product_images_url(@arent)
16
+ spree.admin_product_images_url(parent)
17
17
  end
18
18
 
19
19
  def location_after_save
@@ -113,7 +113,7 @@ module Spree
113
113
  end
114
114
 
115
115
  def resend
116
- OrderMailer.confirm_email(@order.id, true).deliver_later
116
+ @order.deliver_order_confirmation_email
117
117
  flash[:success] = Spree.t(:order_email_resent)
118
118
 
119
119
  redirect_back fallback_location: spree.edit_admin_order_url(@order)
@@ -10,7 +10,7 @@ module Spree
10
10
  def create
11
11
  @payment_method = params[:payment_method].delete(:type).constantize.new(payment_method_params)
12
12
  @object = @payment_method
13
- ensure_current_store
13
+ set_current_store
14
14
  invoke_callbacks(:create, :before)
15
15
  if @payment_method.save
16
16
  invoke_callbacks(:create, :after)
@@ -39,7 +39,7 @@ module Spree
39
39
  end
40
40
 
41
41
  if @payment_method.update(attributes)
42
- ensure_current_store
42
+ set_current_store
43
43
  invoke_callbacks(:update, :after)
44
44
  flash[:success] = Spree.t(:successfully_updated, resource: Spree.t(:payment_method))
45
45
  redirect_to spree.edit_admin_payment_method_path(@payment_method)
@@ -30,7 +30,7 @@ module Spree
30
30
  end
31
31
  invoke_callbacks(:update, :before)
32
32
  if @object.update(permitted_resource_params)
33
- ensure_current_store
33
+ set_current_store
34
34
  invoke_callbacks(:update, :after)
35
35
  flash[:success] = flash_message_for(@object, :successfully_updated)
36
36
  respond_with(@object) do |format|
@@ -3,7 +3,8 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
3
3
 
4
4
  helper_method :new_object_url, :edit_object_url, :object_url, :collection_url
5
5
  before_action :load_resource, except: :update_positions
6
- before_action :set_currency, :ensure_current_store, only: [:new, :create]
6
+ before_action :set_currency, :set_current_store, only: [:new, :create]
7
+
7
8
  rescue_from ActiveRecord::RecordNotFound, with: :resource_not_found
8
9
 
9
10
  respond_to :html
@@ -26,7 +27,7 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
26
27
  def update
27
28
  invoke_callbacks(:update, :before)
28
29
  if @object.update(permitted_resource_params)
29
- ensure_current_store
30
+ set_current_store
30
31
  invoke_callbacks(:update, :after)
31
32
  respond_with(@object) do |format|
32
33
  format.html do
@@ -207,21 +208,17 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
207
208
  collection_url
208
209
  end
209
210
 
210
- def set_currency
211
+ def set_current_store
211
212
  return if @object.nil?
212
213
 
213
- @object.currency = current_currency if model_class.method_defined?(:currency=)
214
- @object.cost_currency = current_currency if model_class.method_defined?(:cost_currency=)
214
+ ensure_current_store(@object)
215
215
  end
216
216
 
217
- def ensure_current_store
217
+ def set_currency
218
218
  return if @object.nil?
219
219
 
220
- if @object.has_attribute?(:store_id)
221
- @object.store = current_store
222
- elsif model_class.method_defined?(:stores) && @object.stores.exclude?(current_store)
223
- @object.stores << current_store
224
- end
220
+ @object.currency = current_currency if model_class.method_defined?(:currency=)
221
+ @object.cost_currency = current_currency if model_class.method_defined?(:cost_currency=)
225
222
  end
226
223
 
227
224
  # URL helpers
@@ -204,7 +204,12 @@
204
204
  <%= f.label :taxon_ids, Spree.t(:taxons) %>
205
205
 
206
206
  <% if can? :modify, Spree::Classification %>
207
- <%= f.select :taxon_ids, options_from_collection_for_select(@product.taxons, :id, :pretty_name, @product.taxon_ids), { include_hidden: true }, multiple: true, class: 'select2-hidden-accessible' %>
207
+ <%= f.select :taxon_ids, options_from_collection_for_select(@product.taxons, :id, :pretty_name, @product.taxon_ids),
208
+ { include_hidden: true },
209
+ multiple: true,
210
+ data: { autocomplete_url_value: 'taxons_api_v2',
211
+ autocomplete_return_attr_value: 'pretty_name',
212
+ autocomplete_multiple_value: true } %>
208
213
  <% elsif @product.taxons.any? %>
209
214
  <ul class="text_list">
210
215
  <% @product.taxons.each do |taxon| %>
@@ -223,7 +228,13 @@
223
228
  <%= f.label :option_type_ids, Spree.t(:option_types) %>
224
229
 
225
230
  <% if can? :modify, Spree::ProductOptionType %>
226
- <%= f.select :option_type_ids, options_from_collection_for_select(@product.option_types, :id, :name, @product.option_type_ids), { include_hidden: true }, multiple: true, class: 'select2-hidden-accessible' %>
231
+ <%= f.select :option_type_ids, options_from_collection_for_select(@product.option_types, :id, :name, @product.option_type_ids),
232
+ { include_hidden: true },
233
+ multiple: true,
234
+ class: 'select2-hidden-accessible',
235
+ data: { autocomplete_url_value: 'option_types_api_v2',
236
+ autocomplete_return_attr_value: 'name',
237
+ autocomplete_multiple_value: true } %>
227
238
  <% elsif @product.option_types.any? %>
228
239
  <ul class="text_list">
229
240
  <% @product.option_types.each do |type| %>
@@ -28,6 +28,16 @@
28
28
  </div>
29
29
  </div>
30
30
 
31
+ <div class="row">
32
+ <div class="col-12 col-lg-6">
33
+ <div class="form-group">
34
+ <%= label_tag :q_filterable_eq, Spree.t(:filterable_status) %>
35
+ <%= f.select :filterable_eq, options_for_select([[Spree.t(:filterable), true], [Spree.t(:non_filterable), false]]), { include_blank: true }, class: 'select2-clear js-filterable' %>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </div>
40
+
31
41
  <div class="form-actions" data-hook="admin_pproperties_index_search_buttons">
32
42
  <%= button Spree.t(:search), 'search.svg' %>
33
43
  </div>
@@ -37,7 +37,7 @@
37
37
 
38
38
  <div class="dropdown-divider m-0"></div>
39
39
 
40
- <%= link_to 'http://guides.spreecommerce.org/support', target: :blank, class: 'd-block text-dark py-3 px-4 dropdown-item' do %>
40
+ <%= link_to 'http://spreecommerce.org/contact', target: :blank, class: 'd-block text-dark py-3 px-4 dropdown-item' do %>
41
41
  <%= svg_icon name: "info.svg", width: '18', height: '18' %>
42
42
  &nbsp;
43
43
  <%= Spree.t(:support) %>
@@ -49,7 +49,7 @@
49
49
  <%= Spree.t(:join_slack) %>
50
50
  <% end %>
51
51
 
52
- <%= link_to 'https://guides.spreecommerce.org/extensions', target: :blank, class: 'd-block text-dark py-3 px-4 dropdown-item' do %>
52
+ <%= link_to 'https://dev-docs.spreecommerce.org/extensions/extensions', target: :blank, class: 'd-block text-dark py-3 px-4 dropdown-item' do %>
53
53
  <%= svg_icon name: "extensions.svg", width: '18', height: '18' %>
54
54
  &nbsp;
55
55
  <%= Spree.t(:extensions_directory) %>
@@ -8,19 +8,31 @@
8
8
  <table class="table" id="user-lifetime-stats" data-hook>
9
9
  <tr>
10
10
  <td width="30%"><%= Spree.t(:total_sales) %>:</td>
11
- <td><%= @user.display_lifetime_value.to_html %></td>
11
+ <td>
12
+ <% @user.report_values_for(:lifetime_value, current_store).each do |value| %>
13
+ <div><%= value %></div>
14
+ <% end %>
15
+ </td>
12
16
  </tr>
13
17
  <tr>
14
18
  <td><%= Spree.t(:num_orders) %>:</td>
15
- <td><%= @user.order_count %></td>
19
+ <td><%= @user.order_count(current_store) %></td>
16
20
  </tr>
17
21
  <tr>
18
22
  <td><%= Spree.t(:average_order_value) %>:</td>
19
- <td><%= @user.display_average_order_value.to_html %></td>
23
+ <td>
24
+ <% @user.report_values_for(:average_order_value, current_store).each do |value| %>
25
+ <div><%= value %></div>
26
+ <% end %>
27
+ </td>
20
28
  </tr>
21
29
  <tr>
22
30
  <td><%= Spree.t('admin.user.store_credits') %>:</td>
23
- <td id="store_credit"><%= Spree::Money.new(@user.total_available_store_credit) %></td>
31
+ <td id="store_credit">
32
+ <% @user.available_store_credits(current_store).each do |value| %>
33
+ <div><%= value %></div>
34
+ <% end %>
35
+ </td>
24
36
  </tr>
25
37
  <tr>
26
38
  <td><%= Spree.t(:member_since) %>:</td>
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.metadata = {
16
16
  "bug_tracker_uri" => "https://github.com/spree/spree/issues",
17
17
  "changelog_uri" => "https://github.com/spree/spree/releases/tag/v#{s.version}",
18
- "documentation_uri" => "https://guides.spreecommerce.org/",
18
+ "documentation_uri" => "https://dev-docs.spreecommerce.org/",
19
19
  "source_code_uri" => "https://github.com/spree/spree/tree/v#{s.version}",
20
20
  }
21
21
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_backend
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.0.rc1
4
+ version: 4.3.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-08-11 00:00:00.000000000 Z
12
+ date: 2021-08-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: spree_api
@@ -17,28 +17,28 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 4.3.0.rc1
20
+ version: 4.3.0.rc2
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 4.3.0.rc1
27
+ version: 4.3.0.rc2
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: spree_core
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: 4.3.0.rc1
34
+ version: 4.3.0.rc2
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: 4.3.0.rc1
41
+ version: 4.3.0.rc2
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: babel-transpiler
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -817,9 +817,9 @@ licenses:
817
817
  - BSD-3-Clause
818
818
  metadata:
819
819
  bug_tracker_uri: https://github.com/spree/spree/issues
820
- changelog_uri: https://github.com/spree/spree/releases/tag/v4.3.0.rc1
821
- documentation_uri: https://guides.spreecommerce.org/
822
- source_code_uri: https://github.com/spree/spree/tree/v4.3.0.rc1
820
+ changelog_uri: https://github.com/spree/spree/releases/tag/v4.3.0.rc2
821
+ documentation_uri: https://dev-docs.spreecommerce.org/
822
+ source_code_uri: https://github.com/spree/spree/tree/v4.3.0.rc2
823
823
  post_install_message:
824
824
  rdoc_options: []
825
825
  require_paths: