spree_frontend 4.6.0 → 4.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +35 -124
  3. data/.codeclimate.yml +2 -2
  4. data/.gem_release.yml +1 -1
  5. data/.github/CONTRIBUTING.md +1 -1
  6. data/.github/dependabot.yml +9 -30
  7. data/.rubocop.yml +11 -184
  8. data/.ruby-version +1 -0
  9. data/Gemfile +12 -13
  10. data/LICENSE +1 -1
  11. data/README.md +31 -38
  12. data/SECURITY.md +1 -1
  13. data/app/assets/config/spree_frontend_manifest.js +2 -1
  14. data/app/assets/images/favicon.ico +0 -0
  15. data/app/assets/images/logo/spree_50.png +0 -0
  16. data/app/assets/images/noimage/large.png +0 -0
  17. data/app/assets/images/noimage/mini.png +0 -0
  18. data/app/assets/images/noimage/product.png +0 -0
  19. data/app/assets/images/noimage/small.png +0 -0
  20. data/app/assets/javascripts/spree/frontend/{account.js → account.es6} +2 -5
  21. data/app/assets/javascripts/spree/frontend/{api_tokens.js → api_tokens.es6} +2 -5
  22. data/app/assets/javascripts/spree/frontend/cart.js +1 -1
  23. data/app/assets/javascripts/spree/frontend/checkout/address.js +1 -1
  24. data/app/assets/javascripts/spree/frontend/checkout/address_book.js +1 -1
  25. data/app/assets/javascripts/spree/frontend/checkout/payment.js +1 -1
  26. data/app/assets/javascripts/spree/frontend/checkout/shipment.js +1 -1
  27. data/app/assets/javascripts/spree/frontend/checkout.js +1 -1
  28. data/app/assets/javascripts/spree/frontend/login.js +1 -1
  29. data/app/assets/javascripts/spree/frontend/main_nav_bar.js +1 -1
  30. data/app/assets/javascripts/spree/frontend/views/spree/layouts/spree_application.js +1 -1
  31. data/app/assets/javascripts/spree/frontend/views/spree/products/cart_form.js +9 -2
  32. data/app/assets/javascripts/spree/frontend/views/spree/products/index.js +1 -1
  33. data/app/assets/javascripts/spree/frontend/views/spree/products/modal_carousel.js +1 -1
  34. data/app/assets/javascripts/spree/frontend/views/spree/products/price_filters.es6 +1 -1
  35. data/app/assets/javascripts/spree/frontend/views/spree/shared/carousel/single.js +1 -1
  36. data/app/assets/javascripts/spree/frontend/views/spree/shared/carousel/swipes.js +1 -1
  37. data/app/assets/javascripts/spree/frontend/views/spree/shared/carousel/thumbnails.js +1 -1
  38. data/app/assets/javascripts/spree/frontend/views/spree/shared/carousel.js +1 -1
  39. data/app/assets/javascripts/spree/frontend/views/spree/shared/delete_address_popup.js +1 -1
  40. data/app/assets/javascripts/spree/frontend/views/spree/shared/mobile_navigation.js +1 -1
  41. data/app/assets/javascripts/spree/frontend/views/spree/shared/quantity_select.js +1 -1
  42. data/app/assets/javascripts/spree/lazysizes.config.js +1 -1
  43. data/app/assets/stylesheets/spree/frontend/components-custom/headers.scss +0 -2
  44. data/app/assets/stylesheets/spree/frontend/components-custom/inputs.scss +4 -146
  45. data/app/assets/stylesheets/spree/frontend/fonts.scss +0 -136
  46. data/app/assets/stylesheets/spree/frontend/variables/variables.scss +21 -7
  47. data/app/assets/stylesheets/spree/frontend/views/spree/checkout/edit.scss +0 -3
  48. data/app/assets/stylesheets/spree/frontend/views/spree/layouts/spree_application.scss +1 -1
  49. data/app/assets/stylesheets/spree/frontend/views/spree/orders/edit.scss +0 -20
  50. data/app/assets/stylesheets/spree/frontend/views/spree/products/index.scss +2 -2
  51. data/app/assets/stylesheets/spree/frontend/views/spree/products/show.scss +0 -20
  52. data/app/assets/stylesheets/spree/frontend/views/spree/shared/cart.scss +0 -14
  53. data/app/assets/stylesheets/spree/frontend/views/spree/shared/header.scss +0 -25
  54. data/app/assets/stylesheets/spree/frontend/views/spree/shared/login.scss +0 -16
  55. data/app/assets/stylesheets/spree/frontend/views/spree/shared/main_nav_bar.scss +1 -8
  56. data/app/assets/stylesheets/spree/frontend/views/spree/shared/nav_bar.scss +1 -14
  57. data/app/assets/stylesheets/spree/frontend/views/spree/shared/no_product_available.scss +1 -1
  58. data/app/assets/stylesheets/spree/frontend/views/spree/shared/order_details.scss +0 -1
  59. data/app/assets/stylesheets/spree/frontend/views/spree/taxons/show.scss +1 -1
  60. data/app/assets/stylesheets/spree/frontend/views/spree/users/show.scss +0 -28
  61. data/app/helpers/spree/addresses_helper.rb +6 -10
  62. data/app/helpers/spree/frontend_helper.rb +3 -3
  63. data/app/helpers/spree/navigation_helper.rb +3 -3
  64. data/app/helpers/spree/products_filters_helper.rb +3 -3
  65. data/app/helpers/spree/taxons_helper.rb +1 -1
  66. data/app/javascript/spree/frontend/application.js +2 -0
  67. data/app/services/spree/build_localized_redirect_url.rb +2 -2
  68. data/app/views/spree/addresses/_form.html.erb +4 -5
  69. data/app/views/spree/addresses/edit.html.erb +1 -1
  70. data/app/views/spree/addresses/new.html.erb +1 -1
  71. data/app/views/spree/checkout/_address.html.erb +1 -1
  72. data/app/views/spree/checkout/_delivery.html.erb +1 -1
  73. data/app/views/spree/checkout/_summary.html.erb +1 -1
  74. data/app/views/spree/checkout/edit.html.erb +1 -1
  75. data/app/views/spree/checkout/payment/_gateway.html.erb +4 -4
  76. data/app/views/spree/checkout/payment/_storecredit.html.erb +1 -1
  77. data/app/views/spree/checkout/registration.html.erb +1 -1
  78. data/app/views/spree/layouts/spree_application.html.erb +4 -1
  79. data/app/views/spree/orders/_line_item_data.html.erb +1 -1
  80. data/app/views/spree/orders/show.html.erb +1 -1
  81. data/app/views/spree/products/_cart_form.html.erb +2 -2
  82. data/app/views/spree/products/_color_option_type.html.erb +1 -1
  83. data/app/views/spree/products/_description.html.erb +1 -1
  84. data/app/views/spree/products/_filters_desktop.html.erb +1 -1
  85. data/app/views/spree/products/_filters_mobile.html.erb +3 -3
  86. data/app/views/spree/products/_option_type.html.erb +1 -1
  87. data/app/views/spree/products/_promotions.html.erb +1 -1
  88. data/app/views/spree/products/_properties.html.erb +1 -1
  89. data/app/views/spree/products/_sort_desktop.html.erb +9 -24
  90. data/app/views/spree/products/index.html.erb +1 -1
  91. data/app/views/spree/products/related.html.erb +1 -1
  92. data/app/views/spree/shared/_checkout_header.html.erb +1 -1
  93. data/app/views/spree/shared/_currency_dropdown.html.erb +1 -1
  94. data/app/views/spree/shared/_delete_address_popup.html.erb +2 -2
  95. data/app/views/spree/shared/_footer.html.erb +3 -3
  96. data/app/views/spree/shared/_head.html.erb +2 -1
  97. data/app/views/spree/shared/_internationalization_options.html.erb +3 -3
  98. data/app/views/spree/shared/_line_item.html.erb +1 -1
  99. data/app/views/spree/shared/_locale_dropdown.html.erb +1 -1
  100. data/app/views/spree/shared/_login.html.erb +2 -2
  101. data/app/views/spree/shared/_main_nav_bar.html.erb +2 -2
  102. data/app/views/spree/shared/_mobile_internationalization_options.html.erb +1 -1
  103. data/app/views/spree/shared/_mobile_navigation.html.erb +1 -1
  104. data/app/views/spree/shared/_nav_bar.html.erb +5 -5
  105. data/app/views/spree/shared/_no_product_available.html.erb +1 -1
  106. data/app/views/spree/shared/_order_details.html.erb +3 -3
  107. data/app/views/spree/shared/_product_added_modal.html.erb +2 -2
  108. data/app/views/spree/shared/_user_form.html.erb +3 -3
  109. data/app/views/spree/taxons/_header.html.erb +1 -1
  110. data/app/views/spree/taxons/_subcategories.html.erb +1 -1
  111. data/app/views/spree/taxons/product_carousel.html.erb +1 -1
  112. data/app/views/spree/users/edit.html.erb +1 -1
  113. data/app/views/spree/users/show.html.erb +1 -1
  114. data/config/importmap.rb +2 -0
  115. data/config/initializers/admin_actions.rb +18 -0
  116. data/config/locales/en.yml +37 -0
  117. data/lib/generators/spree/frontend/install/install_generator.rb +0 -2
  118. data/lib/spree/frontend/configuration.rb +1 -1
  119. data/lib/spree/frontend/engine.rb +9 -5
  120. data/lib/spree/frontend/version.rb +3 -3
  121. data/lib/spree/frontend.rb +3 -1
  122. data/spree_frontend.gemspec +13 -11
  123. metadata +67 -51
  124. data/.deepsource.toml +0 -19
  125. data/.eslintignore +0 -7
  126. data/.eslintrc +0 -36
  127. data/.solargraph.yml +0 -20
  128. data/.stylelintignore +0 -4
  129. data/.stylelintrc +0 -6
  130. data/app/assets/images/logo-spree.png +0 -0
  131. data/app/assets/images/logo.png +0 -0
  132. data/app/assets/images/logo.svg +0 -10
  133. data/app/assets/images/logo@2x.png +0 -0
  134. data/app/assets/images/logo@3x.png +0 -0
  135. data/app/assets/images/noimage/plp.png +0 -0
  136. data/app/assets/images/noimage/plp.svg +0 -16
  137. data/app/views/spree/shared/_get_started.html.erb +0 -32
  138. data/lib/generators/spree/frontend/install/templates/app/assets/config/manifest.js +0 -2
  139. data/license.md +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e47fb4519b72315d61a790677b3592cf1d03cebaa77a8b4f483a5cad9bfb8573
4
- data.tar.gz: 1ccd7a7756fcd9a45df1de4881128621a1dc4dba0f95db9ad287a0e3cc88b16d
3
+ metadata.gz: caad5de0edbc610a11d2fcf5a66ccd2f7b72df02586c6ecbbcd44361c723a8d0
4
+ data.tar.gz: 0a827e9e0b7c0b105d5f607053ddca0b32b121407307071f68339b3a96815601
5
5
  SHA512:
6
- metadata.gz: d300612e8c06e3e6444ef44922bf71912ca3bf9a2d296abca6f1e4a951c984c4af5222f5f92312c4a8471a0e5ad57d12aff42edc61d41b9667bc4f0b7782feef
7
- data.tar.gz: ce09a386bb4c4488b3cd7369b265dfbe3cbe5578926d152e094c4437c53a30f180ad48d58aec9b38e8979fbee5a68292de4bd09265c043a07ac8bfdf5a432711
6
+ metadata.gz: 107a0e3580ffc8e63d16158fba7d886cedf4fd765cac03497281ab09ee141355cf75905f75b1824a8e1496f1ae8e657f9ea12c90973a31aa586d0fe3aa243b6f
7
+ data.tar.gz: 4fa6f2841ebe6b61515542b98386f66d62f56bd8a124db6d5771143d7d33f9f554359276f6a9a3adf63f4eb6b89f2325850593607e87e3b9a08db53dcfc6e4e7
data/.circleci/config.yml CHANGED
@@ -1,4 +1,4 @@
1
- version: 2.1 # use CircleCI 2.0
1
+ version: 2.1
2
2
 
3
3
  defaults: &defaults
4
4
  environment: &environment
@@ -7,27 +7,19 @@ defaults: &defaults
7
7
  BUNDLE_JOBS: 4
8
8
  BUNDLE_RETRY: 3
9
9
  BUNDLE_PATH: ~/spree/vendor/bundle
10
- RAILS_VERSION: '~> 7.0'
11
10
  working_directory: ~/spree
12
11
  docker:
13
- - image: &ruby_2_7_image circleci/ruby:2.7-node-browsers
14
- - image: &redis_image circleci/redis:6.2-alpine
12
+ - image: &ruby_image cimg/ruby:3.3.0-browsers
15
13
 
16
- defaults_3_2: &defaults_3_2
17
- <<: *defaults
18
- docker:
19
- - image: &ruby_3_2_image circleci/ruby:3.0-node-browsers
20
- - image: *redis_image
21
-
22
- run_tests_2_7: &run_tests_2_7
14
+ run_tests: &run_tests
23
15
  <<: *defaults
24
16
  parallelism: 8
25
17
  steps:
26
18
  - checkout
27
19
  - restore_cache:
28
20
  keys:
29
- - spree-storefront-old-bundle-v10-ruby-2-7-{{ .Branch }}
30
- - spree-storefront-old-bundle-v10-ruby-2-7
21
+ - spree-storefront-bundle-{{ checksum ".ruby-version" }}-{{ .Branch }}
22
+ - spree-storefront-bundle-{{ checksum ".ruby-version" }}
31
23
  - run:
32
24
  name: Add keyserver
33
25
  command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
@@ -35,51 +27,12 @@ run_tests_2_7: &run_tests_2_7
35
27
  name: Install libvips
36
28
  command: sudo apt-get update && sudo apt-get install libvips
37
29
  - run:
38
- name: Set bundle path
39
- command: bundle config --local path vendor/bundle
30
+ name: Set bundle path
31
+ command: bundle config --local path vendor/bundle
40
32
  - run:
41
- name: Ensure bundle Install
42
- command: |
43
- bundle check || bundle install
44
- - run:
45
- name: Create test app
33
+ name: Ensure Bundle Install
46
34
  command: |
47
- bundle exec rake test_app
48
- - run:
49
- name: Run Rspec
50
- command: |
51
- TESTFILES=$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
52
- bundle exec rspec --format documentation \
53
- --format RspecJunitFormatter \
54
- -o ~/rspec/rspec.xml \
55
- -- ${TESTFILES}
56
- - store_test_results:
57
- path: ~/rspec
58
- - store_artifacts:
59
- path: tmp/capybara
60
-
61
- run_tests_3_2: &run_tests_3_2
62
- <<: *defaults_3_2
63
- parallelism: 8
64
- steps:
65
- - checkout
66
- - restore_cache:
67
- keys:
68
- - spree-storefront-old-bundle-v10-ruby-3-2-{{ .Branch }}
69
- - spree-storefront-old-bundle-v10-ruby-3-2
70
- - run:
71
- name: Add keyserver
72
- command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
73
- - run:
74
- name: Install libvips
75
- command: sudo apt-get update && sudo apt-get install libvips
76
- - run:
77
- name: Set bundle path
78
- command: bundle config --local path vendor/bundle
79
- - run:
80
- name: Ensure bundle Install
81
- command: |
82
- bundle check || bundle install
35
+ bundle check || bundle install
83
36
  - run:
84
37
  name: Create test app
85
38
  command: |
@@ -98,14 +51,14 @@ run_tests_3_2: &run_tests_3_2
98
51
  path: tmp/capybara
99
52
 
100
53
  jobs:
101
- bundle_ruby_2_7:
54
+ bundle:
102
55
  <<: *defaults
103
56
  steps:
104
57
  - checkout
105
58
  - restore_cache:
106
59
  keys:
107
- - spree-storefront-old-bundle-v10-ruby-2-7-{{ .Branch }}
108
- - spree-storefront-old-bundle-v10-ruby-2-7
60
+ - spree-storefront-bundle-{{ checksum ".ruby-version" }}-{{ .Branch }}
61
+ - spree-storefront-bundle-{{ checksum ".ruby-version" }}
109
62
  - run:
110
63
  name: Add keyserver
111
64
  command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
@@ -122,60 +75,11 @@ jobs:
122
75
  - save_cache:
123
76
  paths:
124
77
  - vendor/bundle
125
- key: spree-storefront-old-bundle-v10-ruby-2-7-{{ checksum "Gemfile.lock" }}
78
+ key: spree-storefront-bundle-{{ checksum ".ruby-version" }}-{{ .Branch }}
126
79
 
127
- bundle_ruby_3_2:
128
- <<: *defaults_3_2
129
- steps:
130
- - checkout
131
- - restore_cache:
132
- keys:
133
- - spree-storefront-old-bundle-v10-ruby-3-2-{{ .Branch }}
134
- - spree-storefront-old-bundle-v10-ruby-3-2
135
- - run:
136
- name: Add keyserver
137
- command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
138
- - run:
139
- name: Install libvips
140
- command: sudo apt-get update && sudo apt-get install libvips
141
- - run:
142
- name: Set bundle path
143
- command: bundle config --local path vendor/bundle
144
- - run:
145
- name: Bundle Install
146
- command: |
147
- bundle check || bundle install
148
- - save_cache:
149
- paths:
150
- - vendor/bundle
151
- key: spree-storefront-old-bundle-v10-ruby-3-2-{{ checksum "Gemfile.lock" }}
152
-
153
- tests_ruby_2_7_rails_7_0_postgres:
154
- <<: *run_tests_2_7
155
- environment: &postgres_environment
156
- <<: *environment
157
- DB: postgres
158
- DB_HOST: localhost
159
- DB_USERNAME: postgres
160
- docker:
161
- - image: *ruby_2_7_image
162
- - image: *redis_image
163
- - image: &postgres_image circleci/postgres:12-alpine
164
- environment:
165
- POSTGRES_USER: postgres
166
-
167
- tests_ruby_3_2_rails_7_0_postgres:
168
- <<: *run_tests_3_2
80
+ tests_mysql:
81
+ <<: *run_tests
169
82
  environment:
170
- <<: *postgres_environment
171
- docker:
172
- - image: *ruby_3_2_image
173
- - image: *postgres_image
174
- - image: *redis_image
175
-
176
- tests_ruby_2_7_rails_7_0_mysql:
177
- <<: *run_tests_2_7
178
- environment: &mysql_environment
179
83
  <<: *environment
180
84
  DB: mysql
181
85
  DB_HOST: 127.0.0.1
@@ -183,22 +87,29 @@ jobs:
183
87
  COVERAGE: true
184
88
  COVERAGE_DIR: /tmp/workspace/simplecov
185
89
  docker:
186
- - image: *ruby_2_7_image
187
- - image: *redis_image
188
- - image: &mysql_image circleci/mysql:8-ram
90
+ - image: *ruby_image
91
+ - image: cimg/mysql:8.0
92
+
93
+ tests_postgres:
94
+ <<: *run_tests
95
+ environment:
96
+ <<: *environment
97
+ DB: postgres
98
+ DB_HOST: localhost
99
+ DB_USERNAME: postgres
100
+ docker:
101
+ - image: *ruby_image
102
+ - image: cimg/postgres:16.2
103
+ environment:
104
+ POSTGRES_USER: postgres
189
105
 
190
106
  workflows:
191
- version: 2
192
107
  main:
193
108
  jobs:
194
- - bundle_ruby_2_7
195
- - bundle_ruby_3_2
196
- - tests_ruby_3_2_rails_7_0_postgres:
197
- requires:
198
- - bundle_ruby_3_2
199
- - tests_ruby_2_7_rails_7_0_postgres:
109
+ - bundle
110
+ - tests_postgres:
200
111
  requires:
201
- - bundle_ruby_2_7
202
- - tests_ruby_2_7_rails_7_0_mysql:
112
+ - bundle
113
+ - tests_mysql:
203
114
  requires:
204
- - bundle_ruby_2_7
115
+ - bundle
data/.codeclimate.yml CHANGED
@@ -15,8 +15,8 @@ plugins:
15
15
  enabled: false
16
16
  config:
17
17
  file: .rubocop.yml
18
- channel: "rubocop-0-80" # need to keep this value the same as rubocop version
19
- # https://docs.codeclimate.com/v1.0/docs/rubocop#section-using-rubocop-s-newer-versions
18
+ channel: "rubocop-1-50-3" # need to keep this value the same as rubocop version
19
+ # https://docs.codeclimate.com/v1.0/docs/rubocop#section-using-rubocop-s-newer-versions
20
20
  eslint:
21
21
  enabled: true
22
22
  config:
data/.gem_release.yml CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  bump:
3
3
  recurse: false
4
- file: 'frontend/lib/spree/frontend/version.rb'
4
+ file: 'lib/spree/frontend/version.rb'
5
5
 
6
6
  release:
7
7
  recurse: true
@@ -1 +1 @@
1
- Please visit [Contributing section](https://dev-docs.spreecommerce.org/contributing/index) of Spree Guides. Thank you!
1
+ Please visit [Contributing section](https://docs.spreecommerce.org/developer/contributing/quickstart) of Spree Guides. Thank you!
@@ -1,32 +1,11 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5
+
1
6
  version: 2
2
7
  updates:
3
- - package-ecosystem: bundler
4
- directory: "/backend"
5
- schedule:
6
- interval: daily
7
- open-pull-requests-limit: 10
8
- - package-ecosystem: bundler
9
- directory: "/frontend"
10
- schedule:
11
- interval: daily
12
- open-pull-requests-limit: 10
13
- - package-ecosystem: bundler
14
- directory: "/core"
15
- schedule:
16
- interval: daily
17
- open-pull-requests-limit: 10
18
- - package-ecosystem: bundler
19
- directory: "/cli"
20
- schedule:
21
- interval: daily
22
- open-pull-requests-limit: 10
23
- - package-ecosystem: bundler
24
- directory: "/api"
25
- schedule:
26
- interval: daily
27
- open-pull-requests-limit: 10
28
- - package-ecosystem: bundler
29
- directory: "/sample"
30
- schedule:
31
- interval: daily
32
- open-pull-requests-limit: 10
8
+ - package-ecosystem: "bundler" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "weekly"
data/.rubocop.yml CHANGED
@@ -1,197 +1,24 @@
1
- require: rubocop-rspec
2
-
3
1
  AllCops:
4
- TargetRubyVersion: 2.5
5
- Exclude:
6
- - '**/sandbox/**/*'
7
- - '**/db/migrate/*'
2
+ DisplayCopNames: true
3
+ TargetRubyVersion: 3.0
4
+ Include:
8
5
  - '**/Gemfile'
9
- - '**/Gemfile.lock'
10
6
  - '**/Rakefile'
11
- - '**/rails'
12
- - '**/*.gemspec'
13
- - '**/dummy/**/*'
14
- - '**/vendor/**/*'
15
- - '**/spec_helper.rb'
16
- - '**/templates/**/*'
17
-
18
- Layout/MultilineOperationIndentation:
19
- EnforcedStyle: indented
7
+ - '**/Appraisals'
8
+ Exclude:
9
+ - 'spec/dummy/**/*'
10
+ - 'lib/generators/**/*'
20
11
 
21
- Layout/ParameterAlignment:
22
- Enabled: false
12
+ Rails:
13
+ Enabled: true
23
14
 
24
- Metrics/ClassLength:
25
- CountComments: false
15
+ Metrics/LineLength:
26
16
  Max: 150
27
17
 
28
- Metrics/ModuleLength:
29
- CountComments: false
30
- Max: 250
31
- Exclude:
32
- - '**/spec/**/*'
18
+ # DISABLED
33
19
 
34
20
  Style/Documentation:
35
21
  Enabled: false
36
22
 
37
- Layout/LineLength:
38
- Max: 150
39
- Exclude:
40
- - '**/spec/**/*'
41
-
42
- Metrics/MethodLength:
43
- CountComments: false
44
- Max: 50
45
-
46
- Metrics/BlockLength:
47
- CountComments: false
48
- Max: 50
49
- Exclude:
50
- - '**/spec/**/*'
51
- - '**/*.rake'
52
- - '**/factories/**/*'
53
- - '**/config/routes.rb'
54
-
55
- Metrics/AbcSize:
56
- Max: 45
57
-
58
- Style/StringLiterals:
59
- EnforcedStyle: single_quotes
60
-
61
- Layout/DotPosition:
62
- EnforcedStyle: trailing
63
- Enabled: true
64
-
65
- Layout/SpaceInsideArrayLiteralBrackets:
66
- Exclude:
67
- - 'api/spec/integration/**/*.rb'
68
- - 'api/lib/spree/api/testing_support/v2/platform_contexts.rb'
69
-
70
23
  Style/FrozenStringLiteralComment:
71
24
  Enabled: false
72
-
73
- Style/RegexpLiteral:
74
- Enabled: false
75
-
76
- Style/WordArray:
77
- Enabled: false
78
-
79
- Style/SymbolArray:
80
- Enabled: false
81
-
82
- Style/SymbolProc:
83
- Exclude:
84
- - '**/app/serializers/**/*'
85
-
86
- Style/GuardClause:
87
- Enabled: false
88
-
89
- Style/TrailingCommaInArrayLiteral:
90
- Enabled: false
91
-
92
- Style/TrailingCommaInHashLiteral:
93
- Enabled: false
94
-
95
- Style/BarePercentLiterals:
96
- Enabled: false
97
-
98
- Style/MutableConstant:
99
- Enabled: false
100
-
101
- Style/PercentLiteralDelimiters:
102
- Enabled: false
103
-
104
- Style/IfUnlessModifier:
105
- Enabled: false
106
-
107
- Naming/VariableNumber:
108
- Enabled: false
109
-
110
- Style/RedundantPercentQ:
111
- Enabled: false
112
-
113
- Lint/ParenthesesAsGroupedExpression:
114
- Enabled: false
115
-
116
- Style/NumericPredicate:
117
- Enabled: false
118
-
119
- Metrics/PerceivedComplexity:
120
- Max: 10
121
-
122
- Metrics/CyclomaticComplexity:
123
- Max: 10
124
-
125
- Style/ClassAndModuleChildren:
126
- Enabled: false
127
-
128
- Style/AndOr:
129
- Exclude:
130
- - '**/*controller.rb'
131
-
132
- Style/HashEachMethods:
133
- Enabled: false
134
-
135
- Style/HashTransformKeys:
136
- Enabled: false
137
-
138
- Style/HashTransformValues:
139
- Enabled: false
140
-
141
- RSpec/NestedGroups:
142
- Max: 7
143
-
144
- Lint/AmbiguousBlockAssociation:
145
- Exclude:
146
- - '**/spec/**/*'
147
-
148
- Style/NumericLiterals:
149
- Enabled: false
150
-
151
- RSpec/DescribeClass:
152
- Enabled: false
153
-
154
- RSpec/VerifiedDoubles:
155
- Enabled: false
156
-
157
- RSpec/MessageChain:
158
- Enabled: false
159
-
160
- RSpec/AnyInstance:
161
- Enabled: false
162
-
163
- RSpec/InstanceVariable:
164
- Enabled: false
165
-
166
- RSpec/ContextWording:
167
- Enabled: false
168
-
169
- RSpec/ExpectInHook:
170
- Enabled: false
171
-
172
- RSpec/ExampleLength:
173
- Enabled: false
174
-
175
- RSpec/MessageSpies:
176
- Enabled: false
177
-
178
- RSpec/NamedSubject:
179
- Enabled: false
180
-
181
- RSpec/MultipleExpectations:
182
- Enabled: false
183
-
184
- RSpec/FilePath:
185
- Enabled: false
186
-
187
- RSpec/LetSetup:
188
- Enabled: false
189
-
190
- RSpec/SubjectStub:
191
- Enabled: false
192
-
193
- RSpec/VoidExpect:
194
- Enabled: false
195
-
196
- RSpec/BeforeAfterAll:
197
- Enabled: false
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.3.0
data/Gemfile CHANGED
@@ -6,7 +6,7 @@ gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]
6
6
  actionmailer actionpack actionview activejob activemodel activerecord
7
7
  activestorage activesupport railties
8
8
  ].each do |rails_gem|
9
- gem rails_gem, ENV.fetch('RAILS_VERSION', '~> 7.0.0'), require: false
9
+ gem rails_gem, ENV.fetch('RAILS_VERSION', '~> 7.1.0'), require: false
10
10
  end
11
11
 
12
12
  platforms :jruby do
@@ -16,27 +16,28 @@ end
16
16
  platforms :ruby do
17
17
  if ENV['DB'] == 'mysql'
18
18
  gem 'mysql2'
19
+ elsif ENV['DB'] == 'postgres'
20
+ gem 'pg'
19
21
  else
20
- gem 'pg', '~> 1.1'
22
+ gem 'sqlite3', '~> 1.4'
21
23
  end
22
24
  end
23
25
 
24
26
  group :test do
25
- gem 'capybara', '~> 3.24'
26
- gem 'capybara-screenshot', '~> 1.0'
27
+ gem 'capybara'
28
+ gem 'capybara-screenshot'
27
29
  gem 'capybara-select-2'
28
30
  gem 'database_cleaner', '~> 2.0'
29
- gem 'email_spec'
30
31
  gem 'factory_bot_rails', '~> 6.0'
31
32
  gem 'multi_json'
32
- gem 'rspec-activemodel-mocks', '~> 1.0'
33
- gem 'rspec-rails', '~> 5.0'
33
+ gem 'rspec-activemodel-mocks'
34
+ gem 'rspec-rails'
34
35
  gem 'rspec-retry'
35
36
  gem 'rspec_junit_formatter'
36
37
  gem 'rswag-specs'
37
38
  gem 'jsonapi-rspec'
38
- gem 'simplecov', '0.17.1'
39
- gem 'webmock', '~> 3.7'
39
+ gem 'simplecov'
40
+ gem 'webmock'
40
41
  gem 'timecop'
41
42
  gem 'rails-controller-testing'
42
43
  end
@@ -44,13 +45,11 @@ end
44
45
  group :test, :development do
45
46
  gem 'awesome_print'
46
47
  gem 'gem-release'
47
- gem 'redis'
48
48
  gem 'rubocop', '~> 1.22.3', require: false # bumped
49
49
  gem 'rubocop-rspec', require: false
50
50
  gem 'pry-byebug'
51
- gem 'webdrivers', '~> 4.1'
52
- # Puma 6.0 causes issues in specs due to conflict with capybara version
53
- gem 'puma', '< 6.0'
51
+ gem 'webdrivers'
52
+ gem 'puma'
54
53
  gem 'ffaker'
55
54
  end
56
55
 
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2007-2021, Spree Commerce, Inc., Spark Solutions Sp. z o.o. and other contributors
1
+ Copyright (c) 2007-2024, Spree Commerce, Inc., Spark Solutions Sp. z o.o. and other contributors
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
data/README.md CHANGED
@@ -1,48 +1,53 @@
1
- # Spree (Legacy) Frontend
1
+ # Spree Rails Frontend
2
2
 
3
- This is the old Spree Storefront extracted from Spree < 4.3 which was upgraded to Turbo/Hotwire.
3
+ This is the Spree Storefront extracted from Spree < 4.3 which was upgraded to Turbo and Hotwire.
4
+ It is based on Bootstrap 4. It is battle tested and is used in production by many stores.
5
+
6
+ This storefront includes also Checkout and Cart functionality providing a complete shopping experience.
4
7
 
5
8
  ## Developed by
6
9
 
7
- [![Vendo](https://assets-global.website-files.com/6230c485f2c32ea1b0daa438/623372f40a8c54ca9aea34e8_vendo%202.svg)](https://getvendo.com?utm_source=spree_frontend_github)
10
+ <a href="https://getvendo.com?utm_source=spree_auth_github"><img src="https://cdn.getvendo.com/assets/vendo-logo-4bda02af8c99bc2ecc5a400120f0ebe4eafcd385e02e25f198a8c355ab75d1ff.png" height=50 alt="Vendo - Start your own multi-brand marketplace" /></a>
8
11
 
9
- > All-in-one platform for all your Marketplace and B2B eCommerce needs. [Start your 30-day free trial](https://e98esoirr8c.typeform.com/contactvendo?typeform-source=spree_sdk_github)
12
+ <a href="http://sparksolutions.co?utm_source=github"><img src="https://sparksolutions.co/wp-content/themes/sparksolutions/images/logo.svg" height=50 alt="Spark Solutions - Ruby on Rails and Spree Commerce developers"></a>
10
13
 
11
14
  ## Installation
12
15
 
13
- Add
16
+ Run
14
17
 
15
- ```ruby
16
- gem 'spree_frontend'
18
+ ```bash
19
+ bundle add 'spree_frontend'
17
20
  ```
18
21
 
19
- to your `Gemfile`, making sure that the `spree_frontend` gem is before `spree_auth_devise`.
20
-
21
- Make sure both `gem 'jsbundling-rails'` and `gem 'turbo-rails'` are added as well.
22
+ Make sure that the `spree_frontend` gem is before `spree_auth_devise`.
22
23
 
23
24
  Run:
24
25
 
25
26
  ```bash
26
27
  bundle install
27
- bin/rails javascript:install:esbuild
28
- bin/rails turbo:install
29
28
  bin/rails g spree:frontend:install
30
- yarn build
31
29
  ```
32
30
 
31
+ ### Development
32
+
33
+ You can easily import all storefront templates to your application by running:
34
+
35
+ ```bash
36
+ bin/rails g spree:frontend:copy_storefront
37
+ ```
38
+
39
+ This will allow you to easily customize the look and feel of your storefront.
40
+
33
41
  ### Troubleshooting
34
42
 
35
43
  #### Disabled 'Add to Cart' Button Issue
36
44
 
37
45
  If you notice that the 'Add to Cart' button is disabled on product pages, try the following:
38
- * run `yarn build` again in your main repo
39
- * if that doesn't fix the issue, try running the following setup commands again:
40
- ```
41
- bin/rails javascript:install:esbuild
46
+
47
+ ```bash
42
48
  bin/rails turbo:install
43
49
  bin/rails g spree:frontend:install
44
- yarn build
45
- rake assets:clean assets:precompile
50
+ bundle exec rake assets:clean assets:precompile
46
51
  ```
47
52
 
48
53
  This issue may come up if you switch the source of your `spree_frontend` in your Gemfile, e.g. from github to a local path, etc.
@@ -55,35 +60,23 @@ This error results from the routes defined in `spree_frontend` and `spree_auth_d
55
60
 
56
61
  ## Running Tests
57
62
 
58
- In order to generate the dummy app required for running tests, you’ll need to have the following installed on your machine:
59
- * node v16.13.1 (npm v8.1.2)
60
- * yarn ≥ v1.22.15
61
- * ruby v3.0.3
62
-
63
63
  To run tests locally, first run `bundle exec rake test_app`, then `bundle exec rspec`.
64
64
 
65
65
  ### Troubleshooting
66
+
66
67
  If you are running on a Mac with an M1 processor, you may run into the following error when running tests:
67
- ```
68
+
69
+ ```bash
68
70
  Webdrivers::NetworkError:
69
71
  Net::HTTPServerException: 404 "Not Found"
70
72
  ```
73
+
71
74
  If so, update your gemfile locally to get version 5.0 or higher for the web drivers gem:
72
- ```
75
+
76
+ ```bash
73
77
  gem 'webdrivers', '~> 5.0'
74
78
  ```
75
79
 
76
- ## Maintanence policy
77
-
78
- This gem is in maintainence mode.
79
-
80
- We only accept bug fixes, Spree/Rails compatibility improvements & security patches.
81
-
82
- For new project we recommend using [Storefront API](https://api.spreecommerce.org/) to create your own unique storefront or use one of the pre-built starters:
83
-
84
- * [Next.js](https://dev-docs.spreecommerce.org/storefronts/next.js-commerce)
85
- * [Vue Storefront](https://dev-docs.spreecommerce.org/storefronts/vue-storefront)
86
-
87
80
  ## Customization
88
81
 
89
- [Developer documentation](https://dev-docs.spreecommerce.org/customization/storefront)
82
+ [Developer documentation](https://docs.spreecommerce.org/customization/storefront)