spree_backend 4.5.1 → 4.6.0
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 +4 -4
- data/.circleci/config.yml +98 -4
- data/.github/workflows/spelling_lint.yml +1 -1
- data/Gemfile +5 -3
- data/app/assets/images/admin/logo.png +0 -0
- data/app/assets/images/backend-spree-icon.svg +5 -1
- data/app/assets/images/backend-spree-logo.svg +8 -4
- data/app/assets/images/noimage/large.png +0 -0
- data/app/assets/images/noimage/mini.png +0 -0
- data/app/assets/images/noimage/product.png +0 -0
- data/app/assets/images/noimage/small.png +0 -0
- data/app/assets/stylesheets/spree/backend/components/_nav.scss +13 -0
- data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +1 -0
- data/app/controllers/concerns/spree/admin/product_concern.rb +1 -1
- data/app/controllers/concerns/spree/admin/translatable.rb +29 -0
- data/app/controllers/spree/admin/base_controller.rb +1 -1
- data/app/controllers/spree/admin/data_feeds_controller.rb +12 -0
- data/app/controllers/spree/admin/option_types_controller.rb +2 -0
- data/app/controllers/spree/admin/option_values_controller.rb +8 -1
- data/app/controllers/spree/admin/payment_methods_controller.rb +4 -1
- data/app/controllers/spree/admin/products_controller.rb +1 -1
- data/app/controllers/spree/admin/stores_controller.rb +8 -1
- data/app/controllers/spree/admin/taxons_controller.rb +7 -0
- data/app/views/spree/admin/data_feeds/_form.html.erb +29 -0
- data/app/views/spree/admin/data_feeds/edit.html.erb +13 -0
- data/app/views/spree/admin/data_feeds/index.html.erb +45 -0
- data/app/views/spree/admin/data_feeds/new.html.erb +13 -0
- data/app/views/spree/admin/option_types/_option_value_fields.html.erb +12 -0
- data/app/views/spree/admin/option_types/_tabs.html.erb +22 -0
- data/app/views/spree/admin/option_types/edit.html.erb +1 -2
- data/app/views/spree/admin/option_types/translations.html.erb +5 -0
- data/app/views/spree/admin/option_values/translations.html.erb +9 -0
- data/app/views/spree/admin/products/translations.html.erb +6 -0
- data/app/views/spree/admin/prototypes/show.html.erb +1 -1
- data/app/views/spree/admin/shared/_product_tabs.html.erb +8 -0
- data/app/views/spree/admin/shared/_store_switcher.html.erb +2 -2
- data/app/views/spree/admin/shared/sub_menu/_integrations.html.erb +1 -0
- data/app/views/spree/admin/stores/_tabs.html.erb +17 -0
- data/app/views/spree/admin/stores/edit.html.erb +1 -0
- data/app/views/spree/admin/stores/form/_internationalization.html.erb +3 -0
- data/app/views/spree/admin/stores/translations.html.erb +8 -0
- data/app/views/spree/admin/taxonomies/translations.html.erb +3 -0
- data/app/views/spree/admin/taxons/_tabs.html.erb +26 -0
- data/app/views/spree/admin/taxons/edit.html.erb +1 -8
- data/app/views/spree/admin/taxons/translations.html.erb +5 -0
- data/app/views/spree/admin/translations/_form.html.erb +16 -0
- data/app/views/spree/admin/translations/_translation_table.html.erb +31 -0
- data/app/views/spree/admin/translations/_translations_unavailable.html.erb +11 -0
- data/app/views/spree/admin/webhooks_subscribers/index.html.erb +1 -1
- data/app/views/spree/admin/webhooks_subscribers/show.html.erb +1 -1
- data/config/locales/en.yml +6 -0
- data/config/routes.rb +28 -1
- data/lib/spree/backend/version.rb +1 -1
- data/spec/fixtures/files/favicon.ico +0 -0
- data/spree_backend.gemspec +1 -1
- metadata +26 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6b658a0d5f11161bb88e49c2db87c4a50a2346b2f76bab36c286d93c89fbc171
|
|
4
|
+
data.tar.gz: 5135287e5f65f52b088d9ecae613efbfb721533eb40f79dcb2a07b80553501c2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ed586053b82dbf636a94436d7e960d592ac574fb98c55177a5424366dc34dd6fdd315c8ab24e5e32927f0749c697f206ba21452795aa002776b4188cbb012616
|
|
7
|
+
data.tar.gz: 2e7b00634d3d7dd86fb4d8a2e65904289865d501789f4263993502753b5c62dd21020265ce2f4ea0931ebe4304dbe2bf0417aa26023c5e6f2b3151179c6499c0
|
data/.circleci/config.yml
CHANGED
|
@@ -19,6 +19,12 @@ defaults_3_0: &defaults_3_0
|
|
|
19
19
|
- image: &ruby_3_0_image circleci/ruby:3.0-node-browsers
|
|
20
20
|
- image: *redis_image
|
|
21
21
|
|
|
22
|
+
defaults_3_2: &defaults_3_2
|
|
23
|
+
<<: *defaults
|
|
24
|
+
docker:
|
|
25
|
+
- image: &ruby_3_2_image cimg/ruby:3.2.0-browsers
|
|
26
|
+
- image: *redis_image
|
|
27
|
+
|
|
22
28
|
run_tests_2_7: &run_tests_2_7
|
|
23
29
|
<<: *defaults
|
|
24
30
|
parallelism: 8
|
|
@@ -28,9 +34,12 @@ run_tests_2_7: &run_tests_2_7
|
|
|
28
34
|
keys:
|
|
29
35
|
- spree-dashboard-bundle-v10-ruby-2-7-{{ .Branch }}
|
|
30
36
|
- spree-dashboard-bundle-v10-ruby-2-7
|
|
37
|
+
- run:
|
|
38
|
+
name: Add keyserver
|
|
39
|
+
command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
|
|
31
40
|
- run:
|
|
32
41
|
name: Install libvips
|
|
33
|
-
command: sudo apt-get install libvips
|
|
42
|
+
command: sudo apt-get update && sudo apt-get install libvips
|
|
34
43
|
- run:
|
|
35
44
|
name: Set bundle path
|
|
36
45
|
command: bundle config --local path vendor/bundle
|
|
@@ -68,9 +77,12 @@ run_tests_3_0: &run_tests_3_0
|
|
|
68
77
|
keys:
|
|
69
78
|
- spree-dashboard-bundle-v10-ruby-3-0-{{ .Branch }}
|
|
70
79
|
- spree-dashboard-bundle-v10-ruby-3-0
|
|
80
|
+
- run:
|
|
81
|
+
name: Add keyserver
|
|
82
|
+
command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
|
|
71
83
|
- run:
|
|
72
84
|
name: Install libvips
|
|
73
|
-
command: sudo apt-get install libvips
|
|
85
|
+
command: sudo apt-get update && sudo apt-get install libvips
|
|
74
86
|
- run:
|
|
75
87
|
name: Set bundle path
|
|
76
88
|
command: bundle config --local path vendor/bundle
|
|
@@ -99,6 +111,46 @@ run_tests_3_0: &run_tests_3_0
|
|
|
99
111
|
- store_artifacts:
|
|
100
112
|
path: /tmp/test-artifacts
|
|
101
113
|
|
|
114
|
+
run_tests_3_2: &run_tests_3_2
|
|
115
|
+
<<: *defaults_3_2
|
|
116
|
+
parallelism: 8
|
|
117
|
+
steps:
|
|
118
|
+
- checkout
|
|
119
|
+
- restore_cache:
|
|
120
|
+
keys:
|
|
121
|
+
- spree-dashboard-bundle-v10-ruby-3-2-{{ .Branch }}
|
|
122
|
+
- spree-dashboard-bundle-v10-ruby-3-2
|
|
123
|
+
- run:
|
|
124
|
+
name: Install libvips
|
|
125
|
+
command: sudo apt-get update && sudo apt-get install libvips42
|
|
126
|
+
- run:
|
|
127
|
+
name: Set bundle path
|
|
128
|
+
command: bundle config --local path vendor/bundle
|
|
129
|
+
- run:
|
|
130
|
+
name: Ensure bundle Install
|
|
131
|
+
command: |
|
|
132
|
+
bundle check || bundle install
|
|
133
|
+
- run:
|
|
134
|
+
name: Create test app
|
|
135
|
+
command: |
|
|
136
|
+
bundle exec rake test_app
|
|
137
|
+
- run:
|
|
138
|
+
name: Unlink NPM package
|
|
139
|
+
command: |
|
|
140
|
+
cd spec/dummy && yarn unlink @spree/dashboard
|
|
141
|
+
- run:
|
|
142
|
+
name: Run Rspec
|
|
143
|
+
command: |
|
|
144
|
+
TESTFILES=$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
|
|
145
|
+
bundle exec rspec --format documentation \
|
|
146
|
+
--format RspecJunitFormatter \
|
|
147
|
+
-o ~/rspec/rspec.xml \
|
|
148
|
+
-- ${TESTFILES}
|
|
149
|
+
- store_test_results:
|
|
150
|
+
path: ~/rspec
|
|
151
|
+
- store_artifacts:
|
|
152
|
+
path: /tmp/test-artifacts
|
|
153
|
+
|
|
102
154
|
jobs:
|
|
103
155
|
bundle_ruby_2_7:
|
|
104
156
|
<<: *defaults
|
|
@@ -108,9 +160,12 @@ jobs:
|
|
|
108
160
|
keys:
|
|
109
161
|
- spree-dashboard-bundle-v10-ruby-2-7-{{ .Branch }}
|
|
110
162
|
- spree-dashboard-bundle-v10-ruby-2-7
|
|
163
|
+
- run:
|
|
164
|
+
name: Add keyserver
|
|
165
|
+
command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
|
|
111
166
|
- run:
|
|
112
167
|
name: Install libvips
|
|
113
|
-
command: sudo apt-get install libvips
|
|
168
|
+
command: sudo apt-get update && sudo apt-get install libvips
|
|
114
169
|
- run:
|
|
115
170
|
name: Set bundle path
|
|
116
171
|
command: bundle config --local path vendor/bundle
|
|
@@ -131,9 +186,12 @@ jobs:
|
|
|
131
186
|
keys:
|
|
132
187
|
- spree-dashboard-bundle-v10-ruby-3-0-{{ .Branch }}
|
|
133
188
|
- spree-dashboard-bundle-v10-ruby-3-0
|
|
189
|
+
- run:
|
|
190
|
+
name: Add keyserver
|
|
191
|
+
command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
|
|
134
192
|
- run:
|
|
135
193
|
name: Install libvips
|
|
136
|
-
command: sudo apt-get install libvips
|
|
194
|
+
command: sudo apt-get update && sudo apt-get install libvips
|
|
137
195
|
- run:
|
|
138
196
|
name: Set bundle path
|
|
139
197
|
command: bundle config --local path vendor/bundle
|
|
@@ -146,6 +204,29 @@ jobs:
|
|
|
146
204
|
- vendor/bundle
|
|
147
205
|
key: spree-dashboard-bundle-v10-ruby-3-0-{{ checksum "Gemfile.lock" }}
|
|
148
206
|
|
|
207
|
+
bundle_ruby_3_2:
|
|
208
|
+
<<: *defaults_3_2
|
|
209
|
+
steps:
|
|
210
|
+
- checkout
|
|
211
|
+
- restore_cache:
|
|
212
|
+
keys:
|
|
213
|
+
- spree-dashboard-bundle-v10-ruby-3-2-{{ .Branch }}
|
|
214
|
+
- spree-dashboard-bundle-v10-ruby-3-2
|
|
215
|
+
- run:
|
|
216
|
+
name: Install libvips
|
|
217
|
+
command: sudo apt-get update && sudo apt-get install libvips42
|
|
218
|
+
- run:
|
|
219
|
+
name: Set bundle path
|
|
220
|
+
command: bundle config --local path vendor/bundle
|
|
221
|
+
- run:
|
|
222
|
+
name: Bundle Install
|
|
223
|
+
command: |
|
|
224
|
+
bundle check || bundle install
|
|
225
|
+
- save_cache:
|
|
226
|
+
paths:
|
|
227
|
+
- vendor/bundle
|
|
228
|
+
key: spree-dashboard-bundle-v10-ruby-3-2-{{ checksum "Gemfile.lock" }}
|
|
229
|
+
|
|
149
230
|
tests_ruby_2_7_rails_7_0_postgres:
|
|
150
231
|
<<: *run_tests_2_7
|
|
151
232
|
environment: &postgres_environment
|
|
@@ -169,6 +250,15 @@ jobs:
|
|
|
169
250
|
- image: *postgres_image
|
|
170
251
|
- image: *redis_image
|
|
171
252
|
|
|
253
|
+
tests_ruby_3_2_rails_7_0_postgres:
|
|
254
|
+
<<: *run_tests_3_2
|
|
255
|
+
environment:
|
|
256
|
+
<<: *postgres_environment
|
|
257
|
+
docker:
|
|
258
|
+
- image: *ruby_3_2_image
|
|
259
|
+
- image: *postgres_image
|
|
260
|
+
- image: *redis_image
|
|
261
|
+
|
|
172
262
|
tests_ruby_2_7_rails_7_0_mysql:
|
|
173
263
|
<<: *run_tests_2_7
|
|
174
264
|
environment:
|
|
@@ -189,6 +279,10 @@ workflows:
|
|
|
189
279
|
jobs:
|
|
190
280
|
- bundle_ruby_2_7
|
|
191
281
|
- bundle_ruby_3_0
|
|
282
|
+
- bundle_ruby_3_2
|
|
283
|
+
- tests_ruby_3_2_rails_7_0_postgres:
|
|
284
|
+
requires:
|
|
285
|
+
- bundle_ruby_3_2
|
|
192
286
|
- tests_ruby_3_0_rails_7_0_postgres:
|
|
193
287
|
requires:
|
|
194
288
|
- bundle_ruby_3_0
|
|
@@ -22,7 +22,7 @@ jobs:
|
|
|
22
22
|
pip install codespell
|
|
23
23
|
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
|
24
24
|
- name: Check spelling with codespell
|
|
25
|
-
run: codespell --ignore-words=codespell.txt || exit 1
|
|
25
|
+
run: codespell --ignore-words=codespell.txt --skip=vendor,node_modules,yarn.lock || exit 1
|
|
26
26
|
misspell:
|
|
27
27
|
name: Check spelling all files in commit with misspell
|
|
28
28
|
runs-on: ubuntu-latest
|
data/Gemfile
CHANGED
|
@@ -36,7 +36,7 @@ group :test do
|
|
|
36
36
|
gem 'rspec_junit_formatter'
|
|
37
37
|
gem 'rswag-specs'
|
|
38
38
|
gem 'jsonapi-rspec'
|
|
39
|
-
gem 'simplecov', '0.
|
|
39
|
+
gem 'simplecov', '0.22.0'
|
|
40
40
|
gem 'webmock', '~> 3.7'
|
|
41
41
|
gem 'timecop'
|
|
42
42
|
gem 'rails-controller-testing'
|
|
@@ -47,7 +47,7 @@ group :test, :development do
|
|
|
47
47
|
gem 'awesome_print'
|
|
48
48
|
gem 'gem-release'
|
|
49
49
|
gem 'redis'
|
|
50
|
-
gem 'rubocop', '~> 1.
|
|
50
|
+
gem 'rubocop', '~> 1.48.1', require: false # bumped
|
|
51
51
|
gem 'rubocop-rspec', require: false
|
|
52
52
|
gem 'pry-byebug'
|
|
53
53
|
gem 'webdrivers', '~> 4.1'
|
|
@@ -65,5 +65,7 @@ end
|
|
|
65
65
|
spree_opts = { github: 'spree/spree', branch: 'main' }
|
|
66
66
|
gem 'spree_core', spree_opts
|
|
67
67
|
gem 'spree_api', spree_opts
|
|
68
|
-
|
|
68
|
+
# Last version that supports Ruby 2.7
|
|
69
|
+
# We should remove this once we drop support for Ruby 2.7
|
|
70
|
+
gem 'selenium-webdriver', '~> 4.8.1'
|
|
69
71
|
gemspec
|
|
Binary file
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
<svg
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="215.156" height="240.112" viewBox="0 0 215.156 240.112">
|
|
2
|
+
<g fill-rule="nonzero" fill="currentColor">
|
|
3
|
+
<path d="M125.668,240.112h0a72.581,72.581,0,0,1-23.006-3.89,94.124,94.124,0,0,1-18.873-8.857,107.267,107.267,0,0,1-20.2-15.773h0a.038.038,0,0,1-.01-.008L67.7,205.44a.257.257,0,0,0,.031.015,129.888,129.888,0,0,0,18,6.538,159.717,159.717,0,0,0,18.66,4.242,140.957,140.957,0,0,0,22.752,1.911c18.939,0,36.223-4.183,51.365-12.433l4.6,6.144C165.469,230.606,146.145,240.112,125.668,240.112Zm49.205-52.481a15.174,15.174,0,0,1-10.359-3.971,12.848,12.848,0,0,1,0-19.168,15.5,15.5,0,0,1,20.719,0,12.848,12.848,0,0,1,0,19.168A15.167,15.167,0,0,1,174.873,187.631Zm-102.539,0c-8.377,0-15.2-6.081-15.2-13.555s6.818-13.555,15.2-13.555a16.057,16.057,0,0,1,10.74,3.971,12.551,12.551,0,0,1,0,19.168A16.06,16.06,0,0,1,72.334,187.631Zm5.723-45.9a32.085,32.085,0,0,1-10.328-1.7,31.065,31.065,0,0,1-8.91-4.729,29.019,29.019,0,0,1-6.748-7.224,27.241,27.241,0,0,1-3.848-9.182L30.924,18.424H0L.008,0h37.41A12.563,12.563,0,0,1,44.98,2.5a10.945,10.945,0,0,1,4.137,6.373l4.895,24.229H203.217a12.291,12.291,0,0,1,9.2,4,10.438,10.438,0,0,1,2.531,9.111l-14.965,72.605a27.356,27.356,0,0,1-3.859,9.228,28.967,28.967,0,0,1-6.777,7.248,31.211,31.211,0,0,1-8.98,4.738,32.738,32.738,0,0,1-10.459,1.7c-.2,0-.387,0-.588-.005H78.641C78.449,141.736,78.25,141.736,78.057,141.736ZM193.385,52.909h0l-135.6.019,10.869,61.653a6.213,6.213,0,0,0,2.342,3.641,7.124,7.124,0,0,0,4.291,1.419h.131l97.768-.019h.152a6.726,6.726,0,0,0,6.846-5.041L193.389,52.91Z" />
|
|
4
|
+
</g>
|
|
5
|
+
</svg>
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
<svg
|
|
2
|
-
<g
|
|
3
|
-
<
|
|
4
|
-
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1199.129" height="300.825" viewBox="0 0 1199.129 300.825">
|
|
2
|
+
<g transform="translate(-224.344 -239.125)" fill="currentColor">
|
|
3
|
+
<g transform="translate(224.344 239.125)">
|
|
4
|
+
<g>
|
|
5
|
+
<path d="M125.668,240.112h0a72.581,72.581,0,0,1-23.006-3.89,94.124,94.124,0,0,1-18.873-8.857,107.267,107.267,0,0,1-20.2-15.773h0a.038.038,0,0,1-.01-.008L67.7,205.44a.257.257,0,0,0,.031.015,129.888,129.888,0,0,0,18,6.538,159.717,159.717,0,0,0,18.66,4.242,140.957,140.957,0,0,0,22.752,1.911c18.939,0,36.223-4.183,51.365-12.433l4.6,6.144C165.469,230.606,146.145,240.112,125.668,240.112Zm49.205-52.481a15.174,15.174,0,0,1-10.359-3.971,12.848,12.848,0,0,1,0-19.168,15.5,15.5,0,0,1,20.719,0,12.848,12.848,0,0,1,0,19.168A15.167,15.167,0,0,1,174.873,187.631Zm-102.539,0c-8.377,0-15.2-6.081-15.2-13.555s6.818-13.555,15.2-13.555a16.057,16.057,0,0,1,10.74,3.971,12.551,12.551,0,0,1,0,19.168A16.06,16.06,0,0,1,72.334,187.631Zm5.723-45.9a32.085,32.085,0,0,1-10.328-1.7,31.065,31.065,0,0,1-8.91-4.729,29.019,29.019,0,0,1-6.748-7.224,27.241,27.241,0,0,1-3.848-9.182L30.924,18.424H0L.008,0h37.41A12.563,12.563,0,0,1,44.98,2.5a10.945,10.945,0,0,1,4.137,6.373l4.895,24.229H203.217a12.291,12.291,0,0,1,9.2,4,10.438,10.438,0,0,1,2.531,9.111l-14.965,72.605a27.356,27.356,0,0,1-3.859,9.228,28.967,28.967,0,0,1-6.777,7.248,31.211,31.211,0,0,1-8.98,4.738,32.738,32.738,0,0,1-10.459,1.7c-.2,0-.387,0-.588-.005H78.641C78.449,141.736,78.25,141.736,78.057,141.736ZM193.385,52.909h0l-135.6.019,10.869,61.653a6.213,6.213,0,0,0,2.342,3.641,7.124,7.124,0,0,0,4.291,1.419h.131l97.768-.019h.152a6.726,6.726,0,0,0,6.846-5.041L193.389,52.91Z" transform="translate(0 0)" />
|
|
6
|
+
</g>
|
|
7
|
+
</g>
|
|
8
|
+
<path d="M220.518,267.868H188.227V3.852h28.885l3.414,34.871.051.538h3.205l.17-.313a71.884,71.884,0,0,1,12.227-16.555A70.851,70.851,0,0,1,252.49,10.179a80,80,0,0,1,19.9-7.58A99.514,99.514,0,0,1,295.41,0c12.859,0,24.6,2.308,34.889,6.858a69.852,69.852,0,0,1,26.039,19.913c7.152,8.765,12.648,19.555,16.334,32.071,3.758,12.743,5.662,27.323,5.662,43.333,0,16.193-1.9,30.9-5.662,43.722-3.693,12.6-9.189,23.417-16.334,32.165A69.522,69.522,0,0,1,330.3,197.925c-10.266,4.522-22,6.815-34.895,6.815a101.836,101.836,0,0,1-23.617-2.656,79.464,79.464,0,0,1-20.025-7.667,67.849,67.849,0,0,1-27.812-28.62l-.168-.319h-3.27Zm65.65-241.347a76.039,76.039,0,0,0-26.777,4.591A59.7,59.7,0,0,0,238.65,44.06a57.23,57.23,0,0,0-13.391,20.02,68.977,68.977,0,0,0-4.742,25.782v25.018A68.52,68.52,0,0,0,225.26,140.6a56.735,56.735,0,0,0,13.391,19.894A59.585,59.585,0,0,0,259.4,173.3a76.919,76.919,0,0,0,26.77,4.535c17.721,0,32.619-5.164,43.084-14.933,10.484-9.782,16.025-23.727,16.025-40.327V82.163c0-16.625-5.539-30.635-16.018-40.514C318.768,31.752,303.867,26.521,286.168,26.521ZM813.123,207.434c-14.346,0-27.553-2.449-39.25-7.278a81.139,81.139,0,0,1-29.59-20.815,92.683,92.683,0,0,1-18.717-32.885c-4.332-12.969-6.531-27.608-6.531-43.509,0-15.868,2.2-30.426,6.525-43.271a90,90,0,0,1,18.674-32.347A80.172,80.172,0,0,1,773.711,7.041C785.316,2.369,798.449,0,812.74,0a104.883,104.883,0,0,1,36.965,6.245,76.843,76.843,0,0,1,27.906,17.877A78.153,78.153,0,0,1,895.27,52.385a108.659,108.659,0,0,1,6.178,37.477,171.369,171.369,0,0,1-1.086,20.188H752.1l0,12.146a65.8,65.8,0,0,0,4.406,24.36,53.083,53.083,0,0,0,12.516,18.792,55.624,55.624,0,0,0,19.518,12.077,73.161,73.161,0,0,0,25.357,4.259c13.848,0,26.477-3.546,36.518-10.254a49.172,49.172,0,0,0,20.127-27.085h31.914c-4.311,19.228-14.252,34.234-30.393,45.877a92.6,92.6,0,0,1-12.91,7.529,93.781,93.781,0,0,1-14.1,5.375,104.528,104.528,0,0,1-15.326,3.232A124.678,124.678,0,0,1,813.123,207.434ZM812.74,25.75a73.857,73.857,0,0,0-24.521,3.965,56.338,56.338,0,0,0-19.18,11.2A49.878,49.878,0,0,0,756.547,58.26,55.846,55.846,0,0,0,752.1,80.622V86.61H869.535l0-8.3a55.422,55.422,0,0,0-4.117-21.5A47.378,47.378,0,0,0,853.8,40.195a51.919,51.919,0,0,0-17.953-10.673A68.611,68.611,0,0,0,812.74,25.75ZM602.188,207.434c-14.346,0-27.553-2.449-39.25-7.278a81.053,81.053,0,0,1-29.59-20.815,92.683,92.683,0,0,1-18.717-32.885c-4.332-12.969-6.531-27.608-6.531-43.509,0-15.882,2.2-30.44,6.525-43.271A90,90,0,0,1,533.3,27.329,80.2,80.2,0,0,1,562.77,7.041C574.381,2.369,587.514,0,601.8,0A104.883,104.883,0,0,1,638.77,6.245a76.845,76.845,0,0,1,27.9,17.877,78.078,78.078,0,0,1,17.664,28.263,108.613,108.613,0,0,1,6.178,37.477,171.4,171.4,0,0,1-1.084,20.188H541.16l0,12.146a65.8,65.8,0,0,0,4.406,24.36,53,53,0,0,0,12.516,18.792,55.615,55.615,0,0,0,19.52,12.077,73.094,73.094,0,0,0,25.355,4.259c13.848,0,26.477-3.546,36.518-10.254A49.146,49.146,0,0,0,659.6,144.344h31.914c-4.311,19.228-14.252,34.234-30.393,45.877a91.839,91.839,0,0,1-27.012,12.9,104.621,104.621,0,0,1-15.326,3.232A124.678,124.678,0,0,1,602.188,207.434ZM601.8,25.75a73.849,73.849,0,0,0-24.521,3.965,56.338,56.338,0,0,0-19.18,11.2A49.755,49.755,0,0,0,545.611,58.26a55.846,55.846,0,0,0-4.449,22.362V86.61H658.6l0-8.3a55.377,55.377,0,0,0-4.117-21.5,47.378,47.378,0,0,0-11.619-16.612,51.906,51.906,0,0,0-17.953-10.673A68.619,68.619,0,0,0,601.8,25.75ZM81.393,207.434c-24.617,0-45.252-6.1-59.678-17.626A56.742,56.742,0,0,1,5.605,169.613,60.958,60.958,0,0,1,0,143.962H31.914c.158,11.487,4.887,21.176,13.678,28.021s21.18,10.47,35.8,10.47a73.968,73.968,0,0,0,19.047-2.274,42.731,42.731,0,0,0,14.363-6.646,29.5,29.5,0,0,0,9.076-10.736,32.54,32.54,0,0,0,3.146-14.432,30.161,30.161,0,0,0-1.7-10.379,23.257,23.257,0,0,0-5.111-8.218,28.879,28.879,0,0,0-8.469-5.976,49.488,49.488,0,0,0-11.77-3.727l-43.113-8.086a100.8,100.8,0,0,1-23.322-6.953A56.1,56.1,0,0,1,17,93.958,42.633,42.633,0,0,1,7.139,78.8,54.181,54.181,0,0,1,3.854,59.45,57.6,57.6,0,0,1,9.145,34.57,51.835,51.835,0,0,1,24.215,15.9C37.465,5.5,56.438,0,79.08,0A110.546,110.546,0,0,1,111.02,4.34a70.231,70.231,0,0,1,23.936,12.271c13.072,10.551,20.162,25.557,20.5,43.4H123.535c-1-23.5-15.959-35.416-44.455-35.416a70.987,70.987,0,0,0-18.3,2.18A39.769,39.769,0,0,0,47.3,33.035a27.234,27.234,0,0,0-8.334,9.922,29.573,29.573,0,0,0-2.83,13.029,28.154,28.154,0,0,0,3.4,14.106,23.2,23.2,0,0,0,9.619,9.133l.045.019c7.922,3.4,11.479,4.623,19.758,6.2l39.648,7.31A93.816,93.816,0,0,1,131.49,99.57a54.132,54.132,0,0,1,16.3,11.206,43.876,43.876,0,0,1,9.783,15.591,58.259,58.259,0,0,1,3.273,20.075,58.013,58.013,0,0,1-5.57,25.6A53.43,53.43,0,0,1,139.395,191.2C125.43,201.82,105.373,207.434,81.393,207.434Zm357.762-3.852H406.861V32.891a39.827,39.827,0,0,1,1.848-12.722,22.8,22.8,0,0,1,5.525-9.032A23.415,23.415,0,0,1,423.5,5.693a42.561,42.561,0,0,1,13.174-1.841h69.07V30.367H439.158Z" transform="translate(521.02 272.083)" />
|
|
5
9
|
</g>
|
|
6
10
|
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
@import 'spree/backend/components/page_header';
|
|
15
15
|
@import 'spree/backend/components/icons';
|
|
16
16
|
@import 'spree/backend/components/buttons';
|
|
17
|
+
@import 'spree/backend/components/nav';
|
|
17
18
|
@import 'spree/backend/components/filters';
|
|
18
19
|
@import 'spree/backend/components/navigation';
|
|
19
20
|
@import 'spree/backend/components/taxon_products_view';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Admin
|
|
3
|
+
module Translatable
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
|
|
6
|
+
def edit_translations
|
|
7
|
+
save_translation_values
|
|
8
|
+
flash[:success] = Spree.t('notice_messages.translations_saved')
|
|
9
|
+
|
|
10
|
+
redirect_to(edit_polymorphic_path([:admin, @object]))
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
def save_translation_values
|
|
16
|
+
translation_params = params[:translation]
|
|
17
|
+
|
|
18
|
+
current_store.supported_locales_list.each do |locale|
|
|
19
|
+
I18n.with_locale(locale) do
|
|
20
|
+
translation_params.each do |attribute, translations|
|
|
21
|
+
@object.public_send("#{attribute}=", translations[locale])
|
|
22
|
+
end
|
|
23
|
+
@object.save!
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
module Admin
|
|
3
|
-
class OptionValuesController <
|
|
3
|
+
class OptionValuesController < ResourceController
|
|
4
|
+
include Translatable
|
|
5
|
+
|
|
6
|
+
# This method is added here to allow `edit_polymorphic_path` to work
|
|
7
|
+
def edit_admin_option_value_path(option_value)
|
|
8
|
+
spree.edit_admin_option_type_url(option_value.option_type)
|
|
9
|
+
end
|
|
10
|
+
|
|
4
11
|
def destroy
|
|
5
12
|
option_value = Spree::OptionValue.find(params[:id])
|
|
6
13
|
option_value.destroy
|
|
@@ -45,7 +45,10 @@ module Spree
|
|
|
45
45
|
redirect_to spree.edit_admin_payment_method_path(@payment_method)
|
|
46
46
|
else
|
|
47
47
|
invoke_callbacks(:update, :fails)
|
|
48
|
-
respond_with(@payment_method
|
|
48
|
+
respond_with(@payment_method) do |format|
|
|
49
|
+
format.html { render action: :edit, status: :unprocessable_entity }
|
|
50
|
+
format.js { render layout: false, status: :unprocessable_entity }
|
|
51
|
+
end
|
|
49
52
|
end
|
|
50
53
|
end
|
|
51
54
|
|
|
@@ -2,6 +2,7 @@ module Spree
|
|
|
2
2
|
module Admin
|
|
3
3
|
class ProductsController < ResourceController
|
|
4
4
|
include Spree::Admin::ProductConcern
|
|
5
|
+
include Translatable
|
|
5
6
|
|
|
6
7
|
helper 'spree/admin/products'
|
|
7
8
|
|
|
@@ -139,7 +140,6 @@ module Spree
|
|
|
139
140
|
|
|
140
141
|
params[:q] ||= {}
|
|
141
142
|
params[:q][:deleted_at_null] ||= '1'
|
|
142
|
-
|
|
143
143
|
params[:q][:s] ||= 'name asc'
|
|
144
144
|
|
|
145
145
|
@collection = product_scope
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
module Admin
|
|
3
3
|
class StoresController < Spree::Admin::BaseController
|
|
4
|
-
|
|
4
|
+
include Translatable
|
|
5
|
+
|
|
6
|
+
before_action :load_store, only: [:new, :edit, :translations, :edit_translations, :update]
|
|
5
7
|
before_action :set_default_currency, only: :new
|
|
6
8
|
before_action :set_default_locale, only: :new
|
|
7
9
|
before_action :normalize_supported_currencies, only: [:create, :update]
|
|
@@ -88,6 +90,11 @@ module Spree
|
|
|
88
90
|
def set_default_country_id
|
|
89
91
|
@store.default_country_id ||= Spree::Store.default.default_country_id || Spree::Country.find_by(iso: "US")&.id
|
|
90
92
|
end
|
|
93
|
+
|
|
94
|
+
def save_translation_values
|
|
95
|
+
@object = @store
|
|
96
|
+
super
|
|
97
|
+
end
|
|
91
98
|
end
|
|
92
99
|
end
|
|
93
100
|
end
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
module Admin
|
|
3
3
|
class TaxonsController < ResourceController
|
|
4
|
+
include Translatable
|
|
5
|
+
|
|
4
6
|
belongs_to 'spree/taxonomy'
|
|
5
7
|
|
|
6
8
|
before_action :set_permalink_part, only: [:edit]
|
|
@@ -55,6 +57,11 @@ module Spree
|
|
|
55
57
|
end
|
|
56
58
|
end
|
|
57
59
|
|
|
60
|
+
# This method is added here to allow `edit_polymorphic_path` to work
|
|
61
|
+
def edit_admin_taxon_path(taxon)
|
|
62
|
+
spree.edit_admin_taxonomy_taxon_path(taxon.taxonomy, taxon.id)
|
|
63
|
+
end
|
|
64
|
+
|
|
58
65
|
private
|
|
59
66
|
|
|
60
67
|
def location_after_save
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<div data-hook="admin_webhooks_subscriber_form_fields">
|
|
2
|
+
<%= f.field_container :name, class: ['form-group'] do %>
|
|
3
|
+
<%= f.label :name %>
|
|
4
|
+
<%= f.text_field :name, class: 'form-control' %>
|
|
5
|
+
<%= f.error_message_on :name %>
|
|
6
|
+
<% end %>
|
|
7
|
+
|
|
8
|
+
<%= f.field_container :slug, class: ['form-group'] do %>
|
|
9
|
+
<%= f.label :slug, Spree.t('admin.data_feeds.slug_label') %>
|
|
10
|
+
<%= f.text_field :slug, class: 'form-control' %>
|
|
11
|
+
<%= f.error_message_on :slug %>
|
|
12
|
+
<% end %>
|
|
13
|
+
|
|
14
|
+
<%= f.field_container :provider, class: ['form-group'] do %>
|
|
15
|
+
<%= f.label :type, Spree.t('admin.data_feeds.type') %>
|
|
16
|
+
<%= f.collection_select :type, Spree::DataFeed.available_types, :name, :label, {}, class: 'form-control' %>
|
|
17
|
+
<%= f.error_message_on :type %>
|
|
18
|
+
<% end %>
|
|
19
|
+
|
|
20
|
+
<%= f.hidden_field :store_id, value: current_store.id %>
|
|
21
|
+
|
|
22
|
+
<div class="form-group">
|
|
23
|
+
<div class="custom-control custom-switch">
|
|
24
|
+
<%= f.check_box :active, class: 'custom-control-input' %>
|
|
25
|
+
<%= f.label :active, class: 'custom-control-label' %>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
</div>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<% content_for :page_title do %>
|
|
2
|
+
<%= link_to Spree.t('spree.admin.data_feeds.data_feeds'), spree.admin_data_feeds_path %> /
|
|
3
|
+
<%= @data_feed.name %>
|
|
4
|
+
<% end %>
|
|
5
|
+
|
|
6
|
+
<%= render partial: 'spree/admin/shared/error_messages', locals: { target: @data_feed } %>
|
|
7
|
+
|
|
8
|
+
<%= form_for @data_feed, as: :data_feed, url: admin_data_feed_path(@data_feed) do |f| %>
|
|
9
|
+
<fieldset>
|
|
10
|
+
<%= render partial: 'form', locals: { f: f } %>
|
|
11
|
+
<%= render partial: 'spree/admin/shared/edit_resource_links' %>
|
|
12
|
+
</fieldset>
|
|
13
|
+
<% end %>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<% content_for :page_title do %>
|
|
2
|
+
<%= Spree.t('admin.data_feeds.data_feeds') %>
|
|
3
|
+
<% end %>
|
|
4
|
+
|
|
5
|
+
<% content_for :page_actions do %>
|
|
6
|
+
<%= button_link_to Spree.t('admin.data_feeds.new_data_feed'), new_object_url, class: "btn-success", icon: 'add.svg', id: 'admin_new_data_feed_link' %>
|
|
7
|
+
<% end if can?(:create, Spree::DataFeed) %>
|
|
8
|
+
|
|
9
|
+
<% if @data_feeds.present? %>
|
|
10
|
+
<div class="table-responsive border rounded bg-white">
|
|
11
|
+
<table class="table">
|
|
12
|
+
<thead class="text-muted">
|
|
13
|
+
<tr>
|
|
14
|
+
<th><%= Spree.t('admin.name') %></th>
|
|
15
|
+
<th><%= Spree.t('admin.url') %></th>
|
|
16
|
+
<th><%= Spree.t('admin.data_feeds.type') %></th>
|
|
17
|
+
<th><%= Spree.t('admin.active') %></th>
|
|
18
|
+
<th></th>
|
|
19
|
+
</tr>
|
|
20
|
+
</thead>
|
|
21
|
+
<tbody>
|
|
22
|
+
<% @data_feeds.each do |data_feed| %>
|
|
23
|
+
<tr id="<%= spree_dom_id data_feed %>">
|
|
24
|
+
<td><%= data_feed.name %></td>
|
|
25
|
+
<td><code><%= data_feed.formatted_url %></code></td>
|
|
26
|
+
<td><%= data_feed.class.label %></td>
|
|
27
|
+
<td><%= active_badge(data_feed.active) %></td>
|
|
28
|
+
<td class="actions">
|
|
29
|
+
<span class="d-flex justify-content-end">
|
|
30
|
+
<%= link_to_edit(data_feed, no_text: true) if can? :edit, data_feed %>
|
|
31
|
+
<%= link_to_delete(data_feed, no_text: true) if can? :delete, data_feed %>
|
|
32
|
+
</span>
|
|
33
|
+
</td>
|
|
34
|
+
</tr>
|
|
35
|
+
<% end %>
|
|
36
|
+
</tbody>
|
|
37
|
+
</table>
|
|
38
|
+
</div>
|
|
39
|
+
<%= render 'spree/admin/shared/index_table_options', collection: @data_feeds, simple: true %>
|
|
40
|
+
<% else %>
|
|
41
|
+
<div class="text-center no-objects-found m-5">
|
|
42
|
+
<%= Spree.t(:no_resource_found, resource: plural_resource_name(Spree::DataFeed)) %>,
|
|
43
|
+
<%= link_to(Spree.t(:add_one), new_object_url) if can? :create, Spree::DataFeed %>!
|
|
44
|
+
</div>
|
|
45
|
+
<% end %>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<% content_for :page_title do %>
|
|
2
|
+
<%= link_to Spree.t('spree.admin.data_feeds.data_feeds'), spree.admin_data_feeds_path %> /
|
|
3
|
+
<%= Spree.t('spree.admin.data_feeds.new_data_feed') %>
|
|
4
|
+
<% end %>
|
|
5
|
+
|
|
6
|
+
<%= render partial: 'spree/admin/shared/error_messages', locals: { target: @data_feed } %>
|
|
7
|
+
|
|
8
|
+
<%= form_for [:admin, @data_feed] do |f| %>
|
|
9
|
+
<fieldset>
|
|
10
|
+
<%= render partial: 'form', locals: { f: f } %>
|
|
11
|
+
<%= render partial: 'spree/admin/shared/new_resource_links' %>
|
|
12
|
+
</fieldset>
|
|
13
|
+
<% end %>
|
|
@@ -6,7 +6,19 @@
|
|
|
6
6
|
<td class="name"><%= f.text_field :name, class: "form-control", required: true %></td>
|
|
7
7
|
<td class="presentation"><%= f.text_field :presentation, class: "form-control", required: true %></td>
|
|
8
8
|
<td class="actions">
|
|
9
|
+
|
|
9
10
|
<span class="d-flex justify-content-end">
|
|
11
|
+
<% unless f.object.id.nil? -%>
|
|
12
|
+
<%= link_to_with_icon 'translate.svg',
|
|
13
|
+
'',
|
|
14
|
+
spree.translations_admin_option_type_option_value_path(f.object.option_type.id, f.object.id),
|
|
15
|
+
class: 'btn btn-sm btn-light',
|
|
16
|
+
data: {
|
|
17
|
+
action: 'translate'
|
|
18
|
+
},
|
|
19
|
+
title: Spree.t(:translations),
|
|
20
|
+
no_text: true %>
|
|
21
|
+
<% end %>
|
|
10
22
|
<%= link_to_icon_remove_fields f %>
|
|
11
23
|
</span>
|
|
12
24
|
</td>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<% content_for :page_title do %>
|
|
2
|
+
<%= link_to Spree.t(:option_types), spree.admin_option_types_url %> /
|
|
3
|
+
<%= @option_type.name %>
|
|
4
|
+
<% end %>
|
|
5
|
+
|
|
6
|
+
<% content_for(:page_tabs) do %>
|
|
7
|
+
<%= content_tag :li, class: 'nav-item' do %>
|
|
8
|
+
<%= link_to_with_icon 'edit.svg',
|
|
9
|
+
Spree.t(:details),
|
|
10
|
+
spree.edit_admin_option_type_path(@option_type),
|
|
11
|
+
class: "nav-link #{'active' if current == :details}" %>
|
|
12
|
+
|
|
13
|
+
<% end if can?(:admin, Spree::OptionType) %>
|
|
14
|
+
|
|
15
|
+
<%= content_tag :li, class: 'nav-item' do %>
|
|
16
|
+
<%= link_to_with_icon 'translate.svg',
|
|
17
|
+
Spree.t(:translations),
|
|
18
|
+
spree.translations_admin_option_type_path(@option_type),
|
|
19
|
+
class: "nav-link #{'active' if current == :translations}" %>
|
|
20
|
+
|
|
21
|
+
<% end if can?(:admin, Spree::OptionType) %>
|
|
22
|
+
<% end %>
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<% content_for :page_title do %>
|
|
2
|
-
<%=
|
|
3
|
-
<%= @option_type.name %>
|
|
2
|
+
<%= render partial: 'spree/admin/option_types/tabs', locals: {current: :details} %>
|
|
4
3
|
<% end %>
|
|
5
4
|
|
|
6
5
|
<%= render partial: 'spree/admin/shared/error_messages', locals: { target: @option_type } %>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<% content_for :page_title do %>
|
|
2
|
+
<%= link_to Spree.t(:option_types), spree.admin_option_types_url %> /
|
|
3
|
+
<%= link_to @object.option_type.name, spree.edit_admin_option_type_url(@object.option_type) %> /
|
|
4
|
+
<%= @object.name %>
|
|
5
|
+
<% end %>
|
|
6
|
+
|
|
7
|
+
<div class="row" style="display: block">
|
|
8
|
+
<%= render 'spree/admin/translations/form', resource: @object %>
|
|
9
|
+
</div>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<%= check_box_tag "option_types[]", ot.id, (params[:option_types] || []).include?(ot.id.to_s), id: "option_type_#{ot.id}", class: "option-type" %>
|
|
9
9
|
<%= label_tag "option_type_#{ot.id}", ot.presentation %>
|
|
10
10
|
</b>
|
|
11
|
-
<% if Spree::OptionType.color&.name == ot
|
|
11
|
+
<% if Spree::OptionType.color&.name == ot.name %>
|
|
12
12
|
<ul class="option-type-values option-type-values__color">
|
|
13
13
|
<% ot.option_values.each do |ov| %>
|
|
14
14
|
<li>
|
|
@@ -59,4 +59,12 @@
|
|
|
59
59
|
class: "nav-link #{'active' if current == :digitals} #{current}" %>
|
|
60
60
|
|
|
61
61
|
<% end if can?(:admin, Spree::Digital) && !@product.deleted? %>
|
|
62
|
+
|
|
63
|
+
<%= content_tag :li, class: 'nav-item' do %>
|
|
64
|
+
<%= link_to_with_icon 'translate.svg',
|
|
65
|
+
Spree.t(:translations),
|
|
66
|
+
translations_admin_product_path(@product),
|
|
67
|
+
class: "nav-link #{'active' if current == :translations}" %>
|
|
68
|
+
|
|
69
|
+
<% end if can?(:admin, Spree::Product) && !@product.deleted? %>
|
|
62
70
|
<% end %>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<% if can?(:admin, current_store) %>
|
|
2
|
-
<span class="d-none d-lg-inline text-light">
|
|
3
|
-
<%= svg_icon name: "spree-icon.svg", width: '
|
|
2
|
+
<span class="d-none d-lg-inline text-light pl-1 pr-2">
|
|
3
|
+
<%= svg_icon name: "spree-icon.svg", width: '28', height: '28' %>
|
|
4
4
|
</span>
|
|
5
5
|
|
|
6
6
|
<a class="px-0 py-1 btn text-light" id="storeSelectorDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<ul id="sidebar-integrations" class="collapse nav nav-pills nav-stacked pb-2" data-hook="admin_integrations">
|
|
2
2
|
<%= tab :payment_methods, match_path: '/payment_methods', label: 'Payment Methods' if can? :manage, Spree::PaymentMethod %>
|
|
3
|
+
<%= tab :data_feeds, match_path: '/data_feeds', label: 'Data Feeds' if can? :manage, Spree::DataFeed %>
|
|
3
4
|
<%= tab :webhooks_subscribers, match_path: '/webhooks_subscribers', label: 'Webhooks' if can? :manage, Spree::Webhooks::Subscriber %>
|
|
4
5
|
</ul>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<% content_for(:page_tabs) do %>
|
|
2
|
+
<%= content_tag :li, class: 'nav-item' do %>
|
|
3
|
+
<%= link_to_with_icon 'edit.svg',
|
|
4
|
+
Spree.t(:details),
|
|
5
|
+
spree.edit_admin_store_path(@store),
|
|
6
|
+
class: "nav-link #{'active' if current == :details}" %>
|
|
7
|
+
|
|
8
|
+
<% end if can?(:admin, Spree::Store) %>
|
|
9
|
+
|
|
10
|
+
<%= content_tag :li, class: 'nav-item' do %>
|
|
11
|
+
<%= link_to_with_icon 'translate.svg',
|
|
12
|
+
Spree.t(:translations),
|
|
13
|
+
spree.translations_admin_store_path(@store),
|
|
14
|
+
class: "nav-link #{'active' if current == :translations}" %>
|
|
15
|
+
|
|
16
|
+
<% end if can?(:admin, Spree::Store) %>
|
|
17
|
+
<% end %>
|
|
@@ -40,6 +40,9 @@
|
|
|
40
40
|
<%= f.label :default_locale %>
|
|
41
41
|
<%= f.select :default_locale, options_from_collection_for_select(all_locales_options, :last, :first, @store.default_locale || I18n.locale), {}, { class: 'select2' } %>
|
|
42
42
|
<%= f.error_message_on :default_locale %>
|
|
43
|
+
<small class="form-text text-muted">
|
|
44
|
+
<%= Spree.t('admin.store_form.default_locale_notice') %>
|
|
45
|
+
</small>
|
|
43
46
|
<% unless defined?(SpreeI18n) %>
|
|
44
47
|
<small class="form-text text-muted">
|
|
45
48
|
<%= raw(Spree.t('admin.store_form.locales_help')) %>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<% content_for :page_title do %>
|
|
2
|
+
<%= Spree.t(:store) %>
|
|
3
|
+
<%= render partial: 'spree/admin/stores/tabs', locals: {current: :translations} %>
|
|
4
|
+
<% end %>
|
|
5
|
+
|
|
6
|
+
<div class="row" style="display: block">
|
|
7
|
+
<%= render 'spree/admin/translations/form', resource: @store %>
|
|
8
|
+
</div>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<% content_for :page_title do %>
|
|
2
|
+
<%= link_to Spree.t(:taxonomies), spree.admin_taxonomies_url %> /
|
|
3
|
+
|
|
4
|
+
<%= link_to @taxonomy.root.name, spree.edit_admin_taxonomy_url(@taxonomy) %>
|
|
5
|
+
<% unless @taxon.root? %>
|
|
6
|
+
/ <%= @taxon.name %>
|
|
7
|
+
<% end %>
|
|
8
|
+
<% end %>
|
|
9
|
+
|
|
10
|
+
<% content_for(:page_tabs) do %>
|
|
11
|
+
<%= content_tag :li, class: 'nav-item' do %>
|
|
12
|
+
<%= link_to_with_icon 'edit.svg',
|
|
13
|
+
Spree.t(:details),
|
|
14
|
+
spree.edit_admin_taxonomy_taxon_path(@taxonomy, @taxon.id),
|
|
15
|
+
class: "nav-link #{'active' if current == :details}" %>
|
|
16
|
+
|
|
17
|
+
<% end if can?(:admin, Spree::Taxonomy) %>
|
|
18
|
+
|
|
19
|
+
<%= content_tag :li, class: 'nav-item' do %>
|
|
20
|
+
<%= link_to_with_icon 'translate.svg',
|
|
21
|
+
Spree.t(:translations),
|
|
22
|
+
translations_admin_taxonomy_taxon_path(@taxonomy, @taxon.id),
|
|
23
|
+
class: "nav-link #{'active' if current == :translations}" %>
|
|
24
|
+
|
|
25
|
+
<% end if can?(:admin, Spree::Taxonomy) %>
|
|
26
|
+
<% end %>
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
<%= link_to Spree.t(:taxonomies), spree.admin_taxonomies_url %> /
|
|
3
|
-
|
|
4
|
-
<%= link_to @taxonomy.root.name, spree.edit_admin_taxonomy_url(@taxonomy) %>
|
|
5
|
-
<% unless @taxon.root? %>
|
|
6
|
-
/ <%= @taxon.name %>
|
|
7
|
-
<% end %>
|
|
8
|
-
<% end %>
|
|
1
|
+
<%= render partial: 'spree/admin/taxons/tabs', locals: {current: :details} %>
|
|
9
2
|
|
|
10
3
|
<% content_for :page_actions do %>
|
|
11
4
|
<%= external_page_preview_link(@taxon) %>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<% if current_store.supported_locales_list.size > 1 %>
|
|
2
|
+
<div data-hook="translations_form">
|
|
3
|
+
<%= form_tag nil, { class: 'form-horizontal' } do %>
|
|
4
|
+
<div class="my-3">
|
|
5
|
+
<%= render 'spree/admin/translations/translation_table', resource: resource %>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="form-actions" data-hook="buttons">
|
|
8
|
+
<%= button Spree.t('actions.update'), 'update.svg' %>
|
|
9
|
+
<span class="or"><%= Spree.t(:or) %></span>
|
|
10
|
+
<%= button_link_to Spree.t('actions.cancel'), admin_product_path(resource), icon: 'delete.svg' %>
|
|
11
|
+
</div>
|
|
12
|
+
<% end %>
|
|
13
|
+
</div>
|
|
14
|
+
<% else %>
|
|
15
|
+
<%= render partial: 'spree/admin/translations/translations_unavailable' %>
|
|
16
|
+
<% end %>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<div class="table-responsive border rounded bg-white">
|
|
2
|
+
<div id="translations-table-wrapper">
|
|
3
|
+
<table class="table">
|
|
4
|
+
<% locales = current_store.supported_locales_list.sort %>
|
|
5
|
+
<thead class="text-muted">
|
|
6
|
+
<tr data-hook="translations_header">
|
|
7
|
+
<th scope="col" class="text-center" style="min-width: 12.5rem; position: absolute; background-color: white;"><%= Spree.t(:field) %></th>
|
|
8
|
+
<th style="min-width: 12.5rem; display: block; height: 100%"></th>
|
|
9
|
+
<% locales.each do |locale| %>
|
|
10
|
+
<th scope="col" class="text-center" style="min-width: 12.5rem"><%= locale %></th>
|
|
11
|
+
<% end %>
|
|
12
|
+
</tr>
|
|
13
|
+
</thead>
|
|
14
|
+
<tbody id="translations_body" data-hook="translations_body">
|
|
15
|
+
<% resource.class.translatable_fields.each do |field| %>
|
|
16
|
+
<tr id="translates_field_row" data-hook="translates_field_row">
|
|
17
|
+
<td class="text-left" style="min-width: 12.5rem; position: absolute; background-color: white; height: 3.5rem">
|
|
18
|
+
<span><%= Spree.t(field) %></span>
|
|
19
|
+
</td>
|
|
20
|
+
<td style="min-width: 12.5rem; display: block; height: 100%"></td>
|
|
21
|
+
<% locales.each do |locale| %>
|
|
22
|
+
<td style="height: 3.5rem">
|
|
23
|
+
<%= text_field_tag "translation[#{field}][#{locale}]", resource.get_field_with_locale(locale, field), class: 'form-control' %>
|
|
24
|
+
</td>
|
|
25
|
+
<% end %>
|
|
26
|
+
</tr>
|
|
27
|
+
<% end %>
|
|
28
|
+
</tbody>
|
|
29
|
+
</table>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<div class="container">
|
|
2
|
+
<div class="card">
|
|
3
|
+
<div class="card-body">
|
|
4
|
+
<p>To use translations, configure more than one locale for the store.</p>
|
|
5
|
+
|
|
6
|
+
<% if can?(:edit, current_store) %>
|
|
7
|
+
<%= button_link_to('Configure store', spree.edit_admin_store_path(current_store)) %>
|
|
8
|
+
<% end %>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
</td>
|
|
33
33
|
<% end %>
|
|
34
34
|
<td><%= active_badge(webhooks_subscriber.active) %></td>
|
|
35
|
-
<td><%= webhooks_subscriber.subscriptions&.join(', ') %></td>
|
|
35
|
+
<td><%= webhooks_subscriber.subscriptions&.sort&.join(', ') %></td>
|
|
36
36
|
<td><%= webhooks_subscriber.events.order(:created_at).last&.created_at %></td>
|
|
37
37
|
<td><%= link_to Spree.t(:view), admin_webhooks_subscriber_path(webhooks_subscriber) %></td>
|
|
38
38
|
<td class="actions">
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
</tr>
|
|
17
17
|
<tr>
|
|
18
18
|
<td><strong><%= Spree.t('admin.webhooks_subscribers.subscriptions') %></strong></td>
|
|
19
|
-
<td><%= @webhooks_subscriber.subscriptions&.join(', ') %></td>
|
|
19
|
+
<td><%= @webhooks_subscriber.subscriptions&.sort&.join(', ') %></td>
|
|
20
20
|
</tr>
|
|
21
21
|
</table>
|
|
22
22
|
</div>
|
data/config/locales/en.yml
CHANGED
|
@@ -80,6 +80,11 @@ en:
|
|
|
80
80
|
square_image: Please use an image with an aspect ratio of 18:13 (1080px x 780px).
|
|
81
81
|
tall_image: Please use an image with an aspect ratio of 27:40 (1080px x 1600px).
|
|
82
82
|
copy_to_clipboard: Copy to clipboard
|
|
83
|
+
data_feeds:
|
|
84
|
+
data_feeds: Data Feeds
|
|
85
|
+
type: Type
|
|
86
|
+
slug_label: Slug (leave blank to generate)
|
|
87
|
+
new_data_feed: New Data Feed
|
|
83
88
|
digitals:
|
|
84
89
|
digital: Digital
|
|
85
90
|
add_new_file: Add a new digital asset.
|
|
@@ -173,6 +178,7 @@ en:
|
|
|
173
178
|
For more information <a href='https://guides.spreecommerce.org/user/configuration/configuring_geography.html#zones' target='_blank' class='alert-link'>please see documentation</a>"
|
|
174
179
|
currencies_help: "You can accept payments in multiple currencies. Each product and product variant can have different price in different currency"
|
|
175
180
|
locales_help: "Install <a href='https://github.com/spree-contrib/spree_i18n' target='_blank' class='alert-link'>Spree I18n extension</a> to add more locales"
|
|
181
|
+
default_locale_notice: "Warning: Before changing the default locale, ensure that all products, taxons and stores have translations in the new locale"
|
|
176
182
|
social_help: "If you want to link to your social accounts in the footer part of your website please fill below fields"
|
|
177
183
|
default_country_help: "This is the Country that will be pre-selected on the Checkout Address form"
|
|
178
184
|
footer_help: "This content is visible in the footer section of your Store"
|
data/config/routes.rb
CHANGED
|
@@ -12,7 +12,12 @@ Spree::Core::Engine.add_routes do
|
|
|
12
12
|
|
|
13
13
|
resources :zones
|
|
14
14
|
|
|
15
|
-
resources :stores, except: %i[index show]
|
|
15
|
+
resources :stores, except: %i[index show] do
|
|
16
|
+
member do
|
|
17
|
+
get :translations
|
|
18
|
+
post :translations, to: 'stores#edit_translations'
|
|
19
|
+
end
|
|
20
|
+
end
|
|
16
21
|
|
|
17
22
|
resources :countries do
|
|
18
23
|
resources :states
|
|
@@ -43,6 +48,10 @@ Spree::Core::Engine.add_routes do
|
|
|
43
48
|
resources :variants_including_master, only: [:update]
|
|
44
49
|
resources :prices, only: [:index, :create]
|
|
45
50
|
resources :digitals, only: [:index, :create, :destroy]
|
|
51
|
+
member do
|
|
52
|
+
get :translations
|
|
53
|
+
post :translations, to: 'products#edit_translations'
|
|
54
|
+
end
|
|
46
55
|
end
|
|
47
56
|
|
|
48
57
|
resources :option_types do
|
|
@@ -50,6 +59,16 @@ Spree::Core::Engine.add_routes do
|
|
|
50
59
|
post :update_positions
|
|
51
60
|
post :update_values_positions
|
|
52
61
|
end
|
|
62
|
+
member do
|
|
63
|
+
get :translations
|
|
64
|
+
post :translations, to: 'option_types#edit_translations'
|
|
65
|
+
end
|
|
66
|
+
resources :option_values do
|
|
67
|
+
member do
|
|
68
|
+
get :translations
|
|
69
|
+
post :translations, to: 'option_values#edit_translations'
|
|
70
|
+
end
|
|
71
|
+
end
|
|
53
72
|
end
|
|
54
73
|
|
|
55
74
|
delete '/option_values/:id', to: 'option_values#destroy', as: :option_value
|
|
@@ -128,9 +147,15 @@ Spree::Core::Engine.add_routes do
|
|
|
128
147
|
collection do
|
|
129
148
|
post :update_positions
|
|
130
149
|
end
|
|
150
|
+
member do
|
|
151
|
+
get :translations
|
|
152
|
+
post :translations, to: 'taxonomies#edit_translations'
|
|
153
|
+
end
|
|
131
154
|
resources :taxons do
|
|
132
155
|
member do
|
|
133
156
|
delete :remove_icon
|
|
157
|
+
get :translations
|
|
158
|
+
post :translations, to: 'taxons#edit_translations'
|
|
134
159
|
end
|
|
135
160
|
end
|
|
136
161
|
end
|
|
@@ -190,6 +215,8 @@ Spree::Core::Engine.add_routes do
|
|
|
190
215
|
end
|
|
191
216
|
end
|
|
192
217
|
|
|
218
|
+
resources :data_feeds
|
|
219
|
+
|
|
193
220
|
resources :webhooks_subscribers
|
|
194
221
|
|
|
195
222
|
get '/forbidden', to: 'errors#forbidden', as: :forbidden
|
|
Binary file
|
data/spree_backend.gemspec
CHANGED
|
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
|
|
|
25
25
|
s.require_path = 'lib'
|
|
26
26
|
s.requirements << 'none'
|
|
27
27
|
|
|
28
|
-
s.add_dependency 'spree', ">= 4.
|
|
28
|
+
s.add_dependency 'spree', ">= 4.6.0"
|
|
29
29
|
|
|
30
30
|
s.add_dependency 'babel-transpiler', '~> 0.7'
|
|
31
31
|
s.add_dependency 'bootstrap', '~> 4.0'
|
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.
|
|
4
|
+
version: 4.6.0
|
|
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: 2023-
|
|
12
|
+
date: 2023-05-31 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: spree
|
|
@@ -17,14 +17,14 @@ dependencies:
|
|
|
17
17
|
requirements:
|
|
18
18
|
- - ">="
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
|
-
version: 4.
|
|
20
|
+
version: 4.6.0
|
|
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.
|
|
27
|
+
version: 4.6.0
|
|
28
28
|
- !ruby/object:Gem::Dependency
|
|
29
29
|
name: babel-transpiler
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1904,6 +1904,7 @@ files:
|
|
|
1904
1904
|
- app/assets/stylesheets/spree/backend/components/_filters.scss
|
|
1905
1905
|
- app/assets/stylesheets/spree/backend/components/_icons.scss
|
|
1906
1906
|
- app/assets/stylesheets/spree/backend/components/_main.scss
|
|
1907
|
+
- app/assets/stylesheets/spree/backend/components/_nav.scss
|
|
1907
1908
|
- app/assets/stylesheets/spree/backend/components/_navbar.scss
|
|
1908
1909
|
- app/assets/stylesheets/spree/backend/components/_navigation.scss
|
|
1909
1910
|
- app/assets/stylesheets/spree/backend/components/_page_header.scss
|
|
@@ -1933,6 +1934,7 @@ files:
|
|
|
1933
1934
|
- app/assets/stylesheets/spree/backend/views/_taxonomies.scss
|
|
1934
1935
|
- app/controllers/concerns/spree/admin/order_concern.rb
|
|
1935
1936
|
- app/controllers/concerns/spree/admin/product_concern.rb
|
|
1937
|
+
- app/controllers/concerns/spree/admin/translatable.rb
|
|
1936
1938
|
- app/controllers/spree/admin/adjustments_controller.rb
|
|
1937
1939
|
- app/controllers/spree/admin/base_controller.rb
|
|
1938
1940
|
- app/controllers/spree/admin/cms_pages_controller.rb
|
|
@@ -1940,6 +1942,7 @@ files:
|
|
|
1940
1942
|
- app/controllers/spree/admin/countries_controller.rb
|
|
1941
1943
|
- app/controllers/spree/admin/customer_returns_controller.rb
|
|
1942
1944
|
- app/controllers/spree/admin/dashboard_controller.rb
|
|
1945
|
+
- app/controllers/spree/admin/data_feeds_controller.rb
|
|
1943
1946
|
- app/controllers/spree/admin/digitals_controller.rb
|
|
1944
1947
|
- app/controllers/spree/admin/errors_controller.rb
|
|
1945
1948
|
- app/controllers/spree/admin/images_controller.rb
|
|
@@ -2066,6 +2069,10 @@ files:
|
|
|
2066
2069
|
- app/views/spree/admin/dashboard/_apis.html.erb
|
|
2067
2070
|
- app/views/spree/admin/dashboard/_getting_started.html.erb
|
|
2068
2071
|
- app/views/spree/admin/dashboard/show.html.erb
|
|
2072
|
+
- app/views/spree/admin/data_feeds/_form.html.erb
|
|
2073
|
+
- app/views/spree/admin/data_feeds/edit.html.erb
|
|
2074
|
+
- app/views/spree/admin/data_feeds/index.html.erb
|
|
2075
|
+
- app/views/spree/admin/data_feeds/new.html.erb
|
|
2069
2076
|
- app/views/spree/admin/digitals/_form.html.erb
|
|
2070
2077
|
- app/views/spree/admin/digitals/index.html.erb
|
|
2071
2078
|
- app/views/spree/admin/errors/forbidden.html.erb
|
|
@@ -2089,9 +2096,12 @@ files:
|
|
|
2089
2096
|
- app/views/spree/admin/oauth_applications/new.html.erb
|
|
2090
2097
|
- app/views/spree/admin/option_types/_form.html.erb
|
|
2091
2098
|
- app/views/spree/admin/option_types/_option_value_fields.html.erb
|
|
2099
|
+
- app/views/spree/admin/option_types/_tabs.html.erb
|
|
2092
2100
|
- app/views/spree/admin/option_types/edit.html.erb
|
|
2093
2101
|
- app/views/spree/admin/option_types/index.html.erb
|
|
2094
2102
|
- app/views/spree/admin/option_types/new.html.erb
|
|
2103
|
+
- app/views/spree/admin/option_types/translations.html.erb
|
|
2104
|
+
- app/views/spree/admin/option_values/translations.html.erb
|
|
2095
2105
|
- app/views/spree/admin/orders/_add_line_item.html.erb
|
|
2096
2106
|
- app/views/spree/admin/orders/_add_product.html.erb
|
|
2097
2107
|
- app/views/spree/admin/orders/_adjustments.html.erb
|
|
@@ -2140,6 +2150,7 @@ files:
|
|
|
2140
2150
|
- app/views/spree/admin/products/index.html.erb
|
|
2141
2151
|
- app/views/spree/admin/products/new.html.erb
|
|
2142
2152
|
- app/views/spree/admin/products/stock.html.erb
|
|
2153
|
+
- app/views/spree/admin/products/translations.html.erb
|
|
2143
2154
|
- app/views/spree/admin/promotion_actions/create.js.erb
|
|
2144
2155
|
- app/views/spree/admin/promotion_actions/destroy.js.erb
|
|
2145
2156
|
- app/views/spree/admin/promotion_categories/_form.html.erb
|
|
@@ -2300,6 +2311,7 @@ files:
|
|
|
2300
2311
|
- app/views/spree/admin/store_credits/index.html.erb
|
|
2301
2312
|
- app/views/spree/admin/store_credits/new.html.erb
|
|
2302
2313
|
- app/views/spree/admin/stores/_form.html.erb
|
|
2314
|
+
- app/views/spree/admin/stores/_tabs.html.erb
|
|
2303
2315
|
- app/views/spree/admin/stores/edit.html.erb
|
|
2304
2316
|
- app/views/spree/admin/stores/form/_basic.html.erb
|
|
2305
2317
|
- app/views/spree/admin/stores/form/_digitals.html.erb
|
|
@@ -2311,6 +2323,7 @@ files:
|
|
|
2311
2323
|
- app/views/spree/admin/stores/form/_social.html.erb
|
|
2312
2324
|
- app/views/spree/admin/stores/index.html.erb
|
|
2313
2325
|
- app/views/spree/admin/stores/new.html.erb
|
|
2326
|
+
- app/views/spree/admin/stores/translations.html.erb
|
|
2314
2327
|
- app/views/spree/admin/tax_categories/_form.html.erb
|
|
2315
2328
|
- app/views/spree/admin/tax_categories/edit.html.erb
|
|
2316
2329
|
- app/views/spree/admin/tax_categories/index.html.erb
|
|
@@ -2325,12 +2338,18 @@ files:
|
|
|
2325
2338
|
- app/views/spree/admin/taxonomies/edit.html.erb
|
|
2326
2339
|
- app/views/spree/admin/taxonomies/index.html.erb
|
|
2327
2340
|
- app/views/spree/admin/taxonomies/new.html.erb
|
|
2341
|
+
- app/views/spree/admin/taxonomies/translations.html.erb
|
|
2328
2342
|
- app/views/spree/admin/taxons/_assets_form.html.erb
|
|
2329
2343
|
- app/views/spree/admin/taxons/_form.html.erb
|
|
2344
|
+
- app/views/spree/admin/taxons/_tabs.html.erb
|
|
2330
2345
|
- app/views/spree/admin/taxons/_taxon_table.html.erb
|
|
2331
2346
|
- app/views/spree/admin/taxons/edit.html.erb
|
|
2332
2347
|
- app/views/spree/admin/taxons/index.html.erb
|
|
2333
2348
|
- app/views/spree/admin/taxons/new.html.erb
|
|
2349
|
+
- app/views/spree/admin/taxons/translations.html.erb
|
|
2350
|
+
- app/views/spree/admin/translations/_form.html.erb
|
|
2351
|
+
- app/views/spree/admin/translations/_translation_table.html.erb
|
|
2352
|
+
- app/views/spree/admin/translations/_translations_unavailable.html.erb
|
|
2334
2353
|
- app/views/spree/admin/users/_addresses_form.html.erb
|
|
2335
2354
|
- app/views/spree/admin/users/_form.html.erb
|
|
2336
2355
|
- app/views/spree/admin/users/_lifetime_stats.html.erb
|
|
@@ -2408,9 +2427,9 @@ licenses:
|
|
|
2408
2427
|
- BSD-3-Clause
|
|
2409
2428
|
metadata:
|
|
2410
2429
|
bug_tracker_uri: https://github.com/spree/spree_backend/issues
|
|
2411
|
-
changelog_uri: https://github.com/spree/spree_backend/releases/tag/v4.
|
|
2430
|
+
changelog_uri: https://github.com/spree/spree_backend/releases/tag/v4.6.0
|
|
2412
2431
|
documentation_uri: https://dev-docs.spreecommerce.org/
|
|
2413
|
-
source_code_uri: https://github.com/spree/spree_backend/tree/v4.
|
|
2432
|
+
source_code_uri: https://github.com/spree/spree_backend/tree/v4.6.0
|
|
2414
2433
|
post_install_message:
|
|
2415
2434
|
rdoc_options: []
|
|
2416
2435
|
require_paths:
|
|
@@ -2427,7 +2446,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
2427
2446
|
version: '0'
|
|
2428
2447
|
requirements:
|
|
2429
2448
|
- none
|
|
2430
|
-
rubygems_version: 3.
|
|
2449
|
+
rubygems_version: 3.4.1
|
|
2431
2450
|
signing_key:
|
|
2432
2451
|
specification_version: 4
|
|
2433
2452
|
summary: Admin Dashboard for Spree eCommerce platform
|