spree_backend 4.3.0.rc1 → 4.3.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
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: