spree_core 4.2.5 → 4.3.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.
Files changed (263) hide show
  1. checksums.yaml +4 -4
  2. data/app/finders/concerns/spree/product_filterable.rb +9 -0
  3. data/app/finders/spree/cms_pages/find.rb +41 -0
  4. data/app/finders/spree/menus/find.rb +11 -0
  5. data/app/finders/spree/option_values/find_available.rb +20 -0
  6. data/app/finders/spree/orders/find_complete.rb +14 -2
  7. data/app/finders/spree/orders/find_current.rb +1 -13
  8. data/app/finders/spree/product_properties/find_available.rb +20 -0
  9. data/app/finders/spree/products/find.rb +80 -21
  10. data/app/finders/spree/stores/find_current.rb +24 -0
  11. data/app/finders/spree/taxons/find.rb +22 -6
  12. data/app/helpers/spree/base_helper.rb +69 -7
  13. data/app/helpers/spree/locale_helper.rb +5 -1
  14. data/app/helpers/spree/products_helper.rb +7 -3
  15. data/app/models/concerns/spree/display_link.rb +42 -0
  16. data/app/models/concerns/spree/display_money.rb +6 -2
  17. data/app/models/concerns/spree/filter_param.rb +21 -0
  18. data/app/models/concerns/spree/image_methods.rb +24 -0
  19. data/app/models/concerns/spree/memoized_data.rb +24 -0
  20. data/app/models/concerns/spree/multi_store_resource.rb +24 -0
  21. data/app/models/concerns/spree/product_scopes.rb +71 -8
  22. data/app/models/concerns/spree/single_store_resource.rb +19 -0
  23. data/app/models/concerns/spree/user_address.rb +19 -0
  24. data/app/models/concerns/spree/user_methods.rb +14 -12
  25. data/app/models/concerns/spree/user_payment_source.rb +1 -1
  26. data/app/models/concerns/spree/user_reporting.rb +35 -10
  27. data/app/models/concerns/spree/user_roles.rb +25 -0
  28. data/app/models/spree/ability.rb +3 -1
  29. data/app/models/spree/address.rb +27 -6
  30. data/app/models/spree/app_configuration.rb +8 -0
  31. data/app/models/spree/app_dependencies.rb +20 -6
  32. data/app/models/spree/base.rb +18 -0
  33. data/app/models/spree/classification.rb +3 -0
  34. data/app/models/spree/cms/pages/feature_page.rb +7 -0
  35. data/app/models/spree/cms/pages/homepage.rb +20 -0
  36. data/app/models/spree/cms/pages/standard_page.rb +4 -0
  37. data/app/models/spree/cms/sections/featured_article.rb +22 -0
  38. data/app/models/spree/cms/sections/hero_image.rb +38 -0
  39. data/app/models/spree/cms/sections/image_gallery.rb +103 -0
  40. data/app/models/spree/cms/sections/product_carousel.rb +14 -0
  41. data/app/models/spree/cms/sections/rich_text_content.rb +13 -0
  42. data/app/models/spree/cms/sections/side_by_side_images.rb +74 -0
  43. data/app/models/spree/cms_page.rb +66 -0
  44. data/app/models/spree/cms_section.rb +69 -0
  45. data/app/models/spree/country.rb +14 -6
  46. data/app/models/spree/credit_card.rb +2 -8
  47. data/app/models/spree/customer_return.rb +8 -2
  48. data/app/models/spree/gateway/bogus.rb +6 -4
  49. data/app/models/spree/icon.rb +9 -0
  50. data/app/models/spree/image/configuration/active_storage.rb +2 -0
  51. data/app/models/spree/image.rb +5 -24
  52. data/app/models/spree/inventory_unit.rb +1 -1
  53. data/app/models/spree/line_item.rb +1 -1
  54. data/app/models/spree/menu.rb +63 -0
  55. data/app/models/spree/menu_item.rb +76 -0
  56. data/app/models/spree/option_type.rb +1 -1
  57. data/app/models/spree/option_value.rb +11 -0
  58. data/app/models/spree/option_value_variant.rb +1 -1
  59. data/app/models/spree/order/address_book.rb +3 -5
  60. data/app/models/spree/order/currency_updater.rb +1 -1
  61. data/app/models/spree/order/emails.rb +32 -0
  62. data/app/models/spree/order/payments.rb +1 -1
  63. data/app/models/spree/order/store_credit.rb +1 -1
  64. data/app/models/spree/order.rb +46 -45
  65. data/app/models/spree/payment.rb +7 -0
  66. data/app/models/spree/payment_method.rb +16 -0
  67. data/app/models/spree/preferences/preferable.rb +12 -0
  68. data/app/models/spree/preferences/preferable_class_methods.rb +10 -1
  69. data/app/models/spree/product.rb +37 -30
  70. data/app/models/spree/product_property.rb +19 -4
  71. data/app/models/spree/promotion/rules/country.rb +1 -1
  72. data/app/models/spree/promotion/rules/first_order.rb +4 -3
  73. data/app/models/spree/promotion/rules/taxon.rb +10 -7
  74. data/app/models/spree/promotion.rb +6 -15
  75. data/app/models/spree/promotion_handler/cart.rb +7 -2
  76. data/app/models/spree/promotion_handler/coupon.rb +5 -4
  77. data/app/models/spree/promotion_handler/free_shipping.rb +5 -6
  78. data/app/models/spree/promotion_handler/page.rb +3 -2
  79. data/app/models/spree/promotion_handler/promotion_duplicator.rb +1 -0
  80. data/app/models/spree/promotion_rule.rb +2 -0
  81. data/app/models/spree/property.rb +28 -1
  82. data/app/models/spree/reimbursement.rb +3 -1
  83. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +2 -1
  84. data/app/models/spree/shipment_handler.rb +4 -2
  85. data/app/models/spree/stock/quantifier.rb +6 -6
  86. data/app/models/spree/stock_location.rb +9 -0
  87. data/app/models/spree/store.rb +90 -7
  88. data/app/models/spree/store_credit.rb +7 -3
  89. data/app/models/spree/store_credit_event.rb +2 -2
  90. data/app/models/spree/store_payment_method.rb +11 -0
  91. data/app/models/spree/store_product.rb +11 -0
  92. data/app/models/spree/store_promotion.rb +11 -0
  93. data/app/models/spree/taxon.rb +22 -1
  94. data/app/models/spree/taxon_image/configuration/active_storage.rb +2 -0
  95. data/app/models/spree/taxon_image.rb +1 -0
  96. data/app/models/spree/taxonomy.rb +3 -1
  97. data/app/models/spree/variant.rb +21 -6
  98. data/app/presenters/spree/filters/options_presenter.rb +47 -0
  99. data/app/presenters/spree/filters/price_presenter.rb +22 -0
  100. data/app/presenters/spree/filters/price_range_presenter.rb +29 -0
  101. data/app/presenters/spree/filters/properties_presenter.rb +23 -0
  102. data/app/presenters/spree/filters/property_presenter.rb +42 -0
  103. data/app/presenters/spree/filters/quantified_price_range_presenter.rb +44 -0
  104. data/app/services/spree/account/addresses/create.rb +1 -0
  105. data/app/services/spree/account/addresses/helper.rb +6 -0
  106. data/app/services/spree/account/addresses/update.rb +9 -3
  107. data/app/services/spree/account/create.rb +17 -0
  108. data/app/services/spree/account/update.rb +15 -0
  109. data/app/services/spree/build_localized_redirect_url.rb +1 -1
  110. data/app/services/spree/cart/associate.rb +16 -0
  111. data/app/services/spree/cart/change_currency.rb +27 -0
  112. data/app/services/spree/cart/create.rb +5 -3
  113. data/app/services/spree/cart/destroy.rb +40 -0
  114. data/app/services/spree/cart/empty.rb +36 -0
  115. data/app/services/spree/cart/estimate_shipping_rates.rb +3 -3
  116. data/app/services/spree/checkout/add_store_credit.rb +1 -1
  117. data/app/services/spree/classifications/reposition.rb +18 -0
  118. data/app/services/spree/credit_cards/destroy.rb +41 -0
  119. data/app/sorters/spree/base_sorter.rb +23 -11
  120. data/app/sorters/spree/products/sort.rb +23 -7
  121. data/app/validators/db_maximum_length_validator.rb +5 -0
  122. data/app/validators/email_validator.rb +3 -1
  123. data/config/initializers/active_storage.rb +2 -0
  124. data/config/locales/en.yml +177 -3
  125. data/config/routes.rb +0 -5
  126. data/db/migrate/20201023152810_add_filterable_to_spree_properties.rb +8 -0
  127. data/db/migrate/20210407200948_create_spree_menus.rb +16 -0
  128. data/db/migrate/20210408092939_create_spree_menu_items.rb +31 -0
  129. data/db/migrate/20210504163720_add_filter_param_to_spree_product_properties.rb +8 -0
  130. data/db/migrate/20210505114659_add_filter_param_to_spree_properties.rb +8 -0
  131. data/db/migrate/20210512191732_create_spree_cms_pages.rb +24 -0
  132. data/db/migrate/20210514204251_create_spree_cms_sections.rb +22 -0
  133. data/db/migrate/20210527094055_create_spree_products_stores.rb +36 -0
  134. data/db/migrate/20210608045519_ensure_store_default_country_is_set.rb +5 -0
  135. data/db/migrate/20210702112334_add_missing_timestamp_columns.rb +46 -0
  136. data/db/migrate/20210713131614_add_unique_index_on_property_id_and_product_id_to_product_properties.rb +29 -0
  137. data/db/migrate/20210715091956_add_store_id_to_spree_store_credits.rb +10 -0
  138. data/db/migrate/20210716093151_add_store_id_to_spree_taxonomies.rb +11 -0
  139. data/db/migrate/20210716104141_add_index_on_name_parent_id_and_taxonomy_id_on_spree_taxons.rb +31 -0
  140. data/db/migrate/20210721120857_add_index_on_permalink_parent_id_and_taxonomy_id_on_spree_taxons.rb +31 -0
  141. data/db/migrate/20210721125657_create_spree_promotions_stores.rb +29 -0
  142. data/db/migrate/20210722090705_add_store_id_to_spree_customer_returns.rb +11 -0
  143. data/db/migrate/20210726065456_change_integer_id_columns_into_bigint.rb +305 -0
  144. data/db/migrate/20210730154425_fix_promotion_code_and_path_unique_indexes.rb +9 -0
  145. data/lib/generators/spree/dummy/dummy_generator.rb +11 -6
  146. data/lib/generators/spree/dummy/templates/rails/test.rb +2 -0
  147. data/lib/generators/spree/dummy_model/templates/model.rb.tt +1 -1
  148. data/lib/generators/spree/install/install_generator.rb +12 -24
  149. data/lib/spree/core/components.rb +8 -0
  150. data/lib/spree/core/controller_helpers/auth.rb +7 -1
  151. data/lib/spree/core/controller_helpers/common.rb +1 -1
  152. data/lib/spree/core/controller_helpers/order.rb +4 -4
  153. data/lib/spree/core/controller_helpers/search.rb +1 -0
  154. data/lib/spree/core/controller_helpers/store.rb +24 -1
  155. data/lib/spree/core/engine.rb +6 -0
  156. data/lib/spree/core/importer/product.rb +3 -1
  157. data/lib/spree/core/product_duplicator.rb +1 -0
  158. data/lib/spree/core/search/base.rb +17 -22
  159. data/lib/spree/core/version.rb +1 -1
  160. data/lib/spree/core.rb +8 -4
  161. data/lib/spree/i18n.rb +1 -1
  162. data/lib/spree/money.rb +2 -1
  163. data/lib/spree/permitted_attributes.rb +21 -3
  164. data/lib/spree/testing_support/authorization_helpers.rb +6 -3
  165. data/lib/spree/testing_support/capybara_config.rb +3 -1
  166. data/lib/spree/testing_support/common_rake.rb +17 -4
  167. data/lib/spree/testing_support/extension_rake.rb +2 -2
  168. data/lib/spree/testing_support/factories/address_factory.rb +1 -1
  169. data/lib/spree/testing_support/factories/classification_factory.rb +8 -0
  170. data/lib/spree/testing_support/factories/cms_page_factory.rb +20 -0
  171. data/lib/spree/testing_support/factories/cms_section_factory.rb +31 -0
  172. data/lib/spree/testing_support/factories/customer_return_factory.rb +24 -17
  173. data/lib/spree/testing_support/factories/icon_factory.rb +7 -0
  174. data/lib/spree/testing_support/factories/line_item_factory.rb +6 -2
  175. data/lib/spree/testing_support/factories/menu_factory.rb +16 -0
  176. data/lib/spree/testing_support/factories/menu_item_factory.rb +10 -0
  177. data/lib/spree/testing_support/factories/options_factory.rb +5 -0
  178. data/lib/spree/testing_support/factories/order_factory.rb +11 -2
  179. data/lib/spree/testing_support/factories/payment_method_factory.rb +6 -2
  180. data/lib/spree/testing_support/factories/product_factory.rb +17 -1
  181. data/lib/spree/testing_support/factories/product_property_factory.rb +1 -1
  182. data/lib/spree/testing_support/factories/promotion_factory.rb +18 -9
  183. data/lib/spree/testing_support/factories/property_factory.rb +22 -0
  184. data/lib/spree/testing_support/factories/stock_location_factory.rb +5 -4
  185. data/lib/spree/testing_support/factories/store_credit_factory.rb +1 -0
  186. data/lib/spree/testing_support/factories/store_factory.rb +11 -0
  187. data/lib/spree/testing_support/factories/taxon_factory.rb +3 -1
  188. data/lib/spree/testing_support/factories/taxon_image_factory.rb +7 -0
  189. data/lib/spree/testing_support/factories/taxonomy_factory.rb +1 -0
  190. data/lib/spree/testing_support/factories/user_factory.rb +7 -2
  191. data/lib/spree/testing_support/factories/variant_factory.rb +2 -2
  192. data/lib/spree/testing_support/flatpickr_capybara.rb +58 -35
  193. data/lib/spree/testing_support/locale_helpers.rb +1 -1
  194. data/lib/spree/testing_support/order_walkthrough.rb +9 -9
  195. data/lib/spree/testing_support/rspec_retry_config.rb +5 -0
  196. data/lib/tasks/core.rake +1 -1
  197. data/spec/fixtures/favicon.ico +0 -0
  198. data/spec/fixtures/files/icon_256x256.gif +0 -0
  199. data/spec/fixtures/files/icon_256x256.png +0 -0
  200. data/spec/fixtures/files/icon_512x512.png +0 -0
  201. data/spec/fixtures/files/img_256x128.png +0 -0
  202. data/spree_core.gemspec +12 -11
  203. metadata +211 -159
  204. data/app/assets/images/logo/spree_50.png +0 -0
  205. data/app/assets/images/noimage/large.png +0 -0
  206. data/app/assets/images/noimage/mini.png +0 -0
  207. data/app/assets/images/noimage/product.png +0 -0
  208. data/app/assets/images/noimage/small.png +0 -0
  209. data/app/assets/javascripts/spree.js +0 -78
  210. data/app/controllers/spree/errors_controller.rb +0 -11
  211. data/app/helpers/spree/mail_helper.rb +0 -29
  212. data/app/mailers/spree/base_mailer.rb +0 -46
  213. data/app/mailers/spree/order_mailer.rb +0 -26
  214. data/app/mailers/spree/reimbursement_mailer.rb +0 -12
  215. data/app/mailers/spree/shipment_mailer.rb +0 -12
  216. data/app/mailers/spree/test_mailer.rb +0 -8
  217. data/app/models/spree/validations/db_maximum_length_validator.rb +0 -22
  218. data/app/views/layouts/spree/base_mailer.html.erb +0 -46
  219. data/app/views/spree/errors/forbidden.html.erb +0 -0
  220. data/app/views/spree/errors/unauthorized.html.erb +0 -0
  221. data/app/views/spree/order_mailer/cancel_email.html.erb +0 -24
  222. data/app/views/spree/order_mailer/cancel_email.text.erb +0 -38
  223. data/app/views/spree/order_mailer/confirm_email.html.erb +0 -23
  224. data/app/views/spree/order_mailer/confirm_email.text.erb +0 -39
  225. data/app/views/spree/order_mailer/store_owner_notification_email.html.erb +0 -23
  226. data/app/views/spree/order_mailer/store_owner_notification_email.text.erb +0 -38
  227. data/app/views/spree/reimbursement_mailer/reimbursement_email.html.erb +0 -56
  228. data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +0 -24
  229. data/app/views/spree/shared/_base_mailer_footer.html.erb +0 -12
  230. data/app/views/spree/shared/_base_mailer_header.html.erb +0 -13
  231. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +0 -456
  232. data/app/views/spree/shared/_error_messages.html.erb +0 -11
  233. data/app/views/spree/shared/_mailer_line_item.html.erb +0 -16
  234. data/app/views/spree/shared/_paths.html.erb +0 -8
  235. data/app/views/spree/shared/_purchased_items_table.html.erb +0 -69
  236. data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +0 -13
  237. data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +0 -27
  238. data/app/views/spree/shared/purchased_items_table/_subtotal.html.erb +0 -13
  239. data/app/views/spree/shared/purchased_items_table/_total.html.erb +0 -13
  240. data/app/views/spree/shipment_mailer/shipped_email.html.erb +0 -36
  241. data/app/views/spree/shipment_mailer/shipped_email.text.erb +0 -17
  242. data/app/views/spree/test_mailer/test_email.html.erb +0 -40
  243. data/app/views/spree/test_mailer/test_email.text.erb +0 -4
  244. data/config/initializers/assets.rb +0 -2
  245. data/config/initializers/premailer_assets.rb +0 -1
  246. data/config/initializers/premailer_rails.rb +0 -3
  247. data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +0 -10
  248. data/lib/generators/spree/dummy/templates/initializers/bullet.rb +0 -5
  249. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -15
  250. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -16
  251. data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -16
  252. data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -16
  253. data/lib/generators/spree/mailers_preview/mailers_preview_generator.rb +0 -23
  254. data/lib/generators/spree/mailers_preview/templates/mailers/previews/order_preview.rb +0 -13
  255. data/lib/generators/spree/mailers_preview/templates/mailers/previews/reimbursement_preview.rb +0 -5
  256. data/lib/generators/spree/mailers_preview/templates/mailers/previews/shipment_preview.rb +0 -5
  257. data/lib/generators/spree/mailers_preview/templates/mailers/previews/user_preview.rb +0 -11
  258. data/lib/tasks/email.rake +0 -10
  259. data/vendor/assets/javascripts/cleave.js +0 -1669
  260. data/vendor/assets/javascripts/fetch.umd.js +0 -531
  261. data/vendor/assets/javascripts/jquery.payment.js +0 -652
  262. data/vendor/assets/javascripts/jsuri.js +0 -458
  263. data/vendor/assets/javascripts/polyfill.min.js +0 -1
@@ -1,11 +0,0 @@
1
- <% if target && target.errors.any? %>
2
- <div id="errorExplanation" class="errorExplanation" data-hook>
3
- <h2><%= Spree.t(:errors_prohibited_this_record_from_being_saved, count: target.errors.size) %>:</h2>
4
- <p><%= Spree.t(:there_were_problems_with_the_following_fields) %>:</p>
5
- <ul>
6
- <% target.errors.full_messages.each do |msg| %>
7
- <li><%= msg %></li>
8
- <% end %>
9
- </ul>
10
- </div>
11
- <% end %>
@@ -1,16 +0,0 @@
1
- <tr>
2
- <td class="six sub-columns">
3
- <strong>
4
- <% if frontend_available? %>
5
- <%= link_to raw(line_item.variant.product.name), spree.product_url(line_item.variant.product) %>
6
- <% else %>
7
- <%= raw(line_item.variant.product.name) %>
8
- <% end %>
9
- </strong>
10
- <%= raw(line_item.variant.options_text) -%>
11
- (<%= line_item.variant.sku %>)
12
- </td>
13
- <td class="six sub-columns last right">
14
- <%= line_item.quantity %> x <%= line_item.single_money %> = <%= line_item.display_amount %>
15
- </td>
16
- </tr>
@@ -1,8 +0,0 @@
1
- <script>
2
- SpreePaths = <%==
3
- {
4
- mounted_at: Rails.application.routes.url_helpers.spree_path(trailing_slash: true),
5
- admin: Spree.admin_path.gsub(/\A(\/)?(.*[^\/])(\/)?\z/, '\\2/')
6
- }.to_json
7
- %>
8
- </script>
@@ -1,69 +0,0 @@
1
- <table class="purchase_content">
2
- <%= render collection: line_items, partial: 'spree/shared/purchased_items_table/line_item', as: :line_item %>
3
- <%= render 'spree/shared/purchased_items_table/subtotal', order: order %>
4
- <% if order.line_item_adjustments.exists? %>
5
- <% if order.all_adjustments.promotion.eligible.exists? %>
6
- <% order.all_adjustments.promotion.eligible.group_by(&:label).each do |label, adjustments| %>
7
- <tr>
8
- <td></td>
9
- <td>
10
- <p class="f-fallback purchase_total purchase_total--label">
11
- <%= Spree.t(:promotion) %>:
12
- </p>
13
- <p class="f-fallback purchase_total--name purchase_total--label">
14
- <%= label %>
15
- </p>
16
- </td>
17
- <td class="purchase_total-col">
18
- <p class="f-fallback purchase_total">
19
- <%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency) %>
20
- </p>
21
- </td>
22
- </tr>
23
- <% end %>
24
- <% end %>
25
- <% end %>
26
- <% order.shipments.group_by { |s| s.selected_shipping_rate&.name }.each do |name, shipments| %>
27
- <tr>
28
- <td></td>
29
- <td>
30
- <p class="f-fallback purchase_total purchase_total--label">
31
- <%= Spree.t(:shipping) %>:
32
- </p>
33
- <p class="f-fallback purchase_total--name purchase_total--label">
34
- <%= name %>
35
- </p>
36
- </td>
37
- <td class="purchase_total-col">
38
- <p class="f-fallback purchase_total">
39
- <%= Spree::Money.new(shipments.sum(&:discounted_cost), currency: order.currency) %>
40
- </p>
41
- </td>
42
- </tr>
43
- <% end %>
44
- <% if order.all_adjustments.eligible.tax.exists? %>
45
- <% order.all_adjustments.eligible.tax.group_by(&:label).each do |label, adjustments| %>
46
- <tr>
47
- <td></td>
48
- <td>
49
- <p class="f-fallback purchase_total purchase_total--label">
50
- <%= Spree.t(:tax) %>:
51
- </p>
52
- <p class="f-fallback purchase_total--name purchase_total--label">
53
- <%= label %>
54
- </p>
55
- </td>
56
- <td class="purchase_total-col">
57
- <p class="f-fallback purchase_total">
58
- <%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency) %>
59
- </p>
60
- </td>
61
- </tr>
62
- <% end %>
63
- <% end %>
64
- <% order.adjustments.eligible.each do |adjustment| %>
65
- <% next if (adjustment.source_type == 'Spree::TaxRate') || (adjustment.amount == 0) %>
66
- <%= render 'spree/shared/purchased_items_table/adjustment', adjustment: adjustment, order: order %>
67
- <% end %>
68
- <%= render 'spree/shared/purchased_items_table/total', order: order %>
69
- </table>
@@ -1,13 +0,0 @@
1
- <tr>
2
- <td></td>
3
- <td>
4
- <p class="f-fallback purchase_total purchase_total--label">
5
- <%= raw(adjustment.label) %>:
6
- </p>
7
- </td>
8
- <td class="purchase_total-col">
9
- <p class="f-fallback purchase_total">
10
- <%= Spree::Money.new(adjustment.amount, currency: order.currency) %>
11
- </p>
12
- </td>
13
- </tr>
@@ -1,27 +0,0 @@
1
- <tr>
2
- <td class="purchase_image">
3
- <% if frontend_available? %>
4
- <%= link_to(image_tag(variant_image_url(line_item.variant)), spree.product_url(line_item.product)) %>
5
- <% else %>
6
- <%= image_tag(variant_image_url(line_item.variant)) %>
7
- <% end %>
8
- </td>
9
- <td class="purchase_item">
10
- <strong>
11
- <span class="f-fallback">
12
- <% if frontend_available? %>
13
- <%= link_to raw(line_item.name), spree.product_url(line_item.product) %>
14
- <% else %>
15
- <%= raw(line_item.name) %>
16
- <% end %>
17
- </span>
18
- </strong>
19
- <p class="purchase_item--additional"><%= raw(line_item.variant.options_text) -%></p>
20
- </td>
21
- <td class="align-right" width="30%">
22
- <span class="f-fallback purchase_item_price">
23
- <%= line_item.quantity %> x <%= line_item.single_money %><br>
24
- <%= line_item.display_amount %>
25
- </span>
26
- </td>
27
- </tr>
@@ -1,13 +0,0 @@
1
- <tr>
2
- <td class="purchase_footer" valign="middle"></td>
3
- <td class="purchase_footer" valign="middle">
4
- <p class="f-fallback purchase_total purchase_total--label">
5
- <%= Spree.t('order_mailer.subtotal') %>
6
- </p>
7
- </td>
8
- <td class="purchase_footer" valign="middle">
9
- <p class="f-fallback purchase_total">
10
- <%= order.display_item_total %>
11
- </p>
12
- </td>
13
- </tr>
@@ -1,13 +0,0 @@
1
- <tr>
2
- <td></td>
3
- <td>
4
- <p class="f-fallback purchase_total purchase_total--label">
5
- <strong><%= Spree.t('order_mailer.total') %></strong>
6
- </p>
7
- </td>
8
- <td>
9
- <p class="f-fallback purchase_total">
10
- <strong><%= order.display_total %></strong>
11
- </p>
12
- </td>
13
- </tr>
@@ -1,36 +0,0 @@
1
- <h1>
2
- <%= Spree.t('shipment_mailer.shipped_email.dear_customer', name: name_for(@shipment.order)) %>
3
- </h1>
4
- <p>
5
- <%= Spree.t('shipment_mailer.shipped_email.instructions', number: @shipment.order.number) %>
6
- </p>
7
- <table class="purchase" role="presentation">
8
- <tr>
9
- <td>
10
- <h3><%= Spree.t('shipment_mailer.shipped_email.shipment_summary') %></h3>
11
- </td>
12
- </tr>
13
- <tr>
14
- <td colspan="2">
15
- <%= render 'spree/shared/purchased_items_table', line_items: @shipment.manifest.map(&:line_item), order: @shipment.order %>
16
- </td>
17
- </tr>
18
- </table>
19
- <p>
20
- <%= Spree.t('shipment_mailer.shipped_email.shipping_method', shipping_method: @shipment.shipping_method.name) %>
21
- </p>
22
- <% if @shipment.tracking %>
23
- <p>
24
- <%= Spree.t('shipment_mailer.shipped_email.track_information', tracking: @shipment.tracking) %>
25
- </p>
26
- <% end %>
27
- <% if @shipment.tracking_url %>
28
- <p>
29
- <%= Spree.t('shipment_mailer.shipped_email.track_link', url: link_to(@shipment.tracking_url, @shipment.tracking_url)).html_safe %>
30
- </p>
31
- <% end %>
32
- <p>
33
- <%= Spree.t('shipment_mailer.shipped_email.thanks') %>
34
- <br />
35
- <%= Spree.t('shipment_mailer.shipped_email.store_team', store_name: current_store.name) %>
36
- </p>
@@ -1,17 +0,0 @@
1
- <%= Spree.t('shipment_mailer.shipped_email.dear_customer', name: name_for(@shipment.order)) %>
2
-
3
- <%= Spree.t('shipment_mailer.shipped_email.instructions', number: @shipment.order.number) %>
4
-
5
- ============================================================
6
- <%= Spree.t('shipment_mailer.shipped_email.shipment_summary') %>
7
- ============================================================
8
- <% @shipment.manifest.each do |item| %>
9
- <%= item.variant.sku %> <%= item.variant.product.name %> <%= item.variant.options_text %>
10
- <% end %>
11
- ============================================================
12
-
13
- <%= Spree.t('shipment_mailer.shipped_email.track_information', tracking: @shipment.tracking) if @shipment.tracking %>
14
- <%= Spree.t('shipment_mailer.shipped_email.track_link', url: @shipment.tracking_url) if @shipment.tracking_url %>
15
-
16
- <%= Spree.t('shipment_mailer.shipped_email.thanks') %>
17
- <%= Spree.t('shipment_mailer.shipped_email.store_team', store_name: current_store.name) %>
@@ -1,40 +0,0 @@
1
- <table>
2
- <tr>
3
- <td>
4
-
5
- <center>
6
- <h1 class="center">
7
- <%= Spree.t('test_mailer.test_email.greeting') %>
8
- </h1>
9
- </center>
10
-
11
- </td>
12
- <td class="expander"></td>
13
- </tr>
14
- </table>
15
-
16
- <table>
17
- <tr>
18
- <td>
19
-
20
- <p class="lede">
21
- <%= Spree.t('test_mailer.test_email.message') %>
22
- </p>
23
-
24
- <p>
25
- Please remember to configure all of the emails that Spree has provided to your needs.
26
- Spree comes shipped with <a href="http://zurb.com/ink/" target="_blank"> Ink </a>
27
- prepackaged, but you can use your own version. Ink is not placed in the asset pipeline.
28
- </p>
29
-
30
- <p>
31
- Also take note that Gmail does not support <code>&lt;style&gt;</code> tags.
32
- Therefore, you will need a gem that will be able to remove your <code>&lt;style&gt;</code>
33
- tags and place them inline. Gmail only supports inline styles. We use
34
- <a href="https://github.com/fphilipe/premailer-rails" target="_blank">Premailer for Rails</a> by default.
35
- </p>
36
-
37
- </td>
38
- <td class="expander"></td>
39
- </tr>
40
- </table>
@@ -1,4 +0,0 @@
1
- <%= Spree.t('test_mailer.test_email.greeting') %>
2
- ================
3
-
4
- <%= Spree.t('test_mailer.test_email.message') %>
@@ -1,2 +0,0 @@
1
- Rails.application.config.assets.precompile += %w(logo/spree_50.png noimage/*.png)
2
- Rails.application.config.active_storage.content_types_to_serve_as_binary.delete('image/svg+xml')
@@ -1 +0,0 @@
1
- Rails.application.config.assets.precompile += %w(ink.css)
@@ -1,3 +0,0 @@
1
- if Gem.loaded_specs['premailer-rails'].version >= Gem::Version.create('1.10.0')
2
- Premailer::Rails.config[:strategies] = [:filesystem, :network, :asset_pipeline]
3
- end
@@ -1,10 +0,0 @@
1
- class MakeExistingCreditCardsDefault < ActiveRecord::Migration[4.2]
2
- def up
3
- # set the newest credit card for every user to be the default; SQL technique from
4
- # http://stackoverflow.com/questions/121387/fetch-the-row-which-has-the-max-value-for-a-column
5
- Spree::CreditCard.where.not(user_id: nil).joins("LEFT OUTER JOIN spree_credit_cards cc2 ON cc2.user_id = spree_credit_cards.user_id AND spree_credit_cards.created_at < cc2.created_at").where("cc2.user_id IS NULL").update_all(default: true)
6
- end
7
- def down
8
- # do nothing
9
- end
10
- end
@@ -1,5 +0,0 @@
1
- if Rails.env.development? && defined?(Bullet)
2
- Bullet.enable = true
3
- Bullet.rails_logger = true
4
- Bullet.stacktrace_includes = [ 'spree_core', 'spree_frontend', 'spree_api', 'spree_backend' ]
5
- end
@@ -1,15 +0,0 @@
1
- // This is a manifest file that'll be compiled into including all the files listed below.
2
- // Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
3
- // be included in the compiled file accessible from http://example.com/assets/application.js
4
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
5
- // the compiled file.
6
- //
7
- //= require spree/backend
8
- <% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/backend' %>
9
- <% filename = "spree/backend/#{ options[:lib_name].gsub("/", "_") }" %>
10
- <% filepath = File.join(File.dirname(__FILE__), "../../app/assets/javascripts/#{filename}") %>
11
- <% if javascript_exists?(filepath) %>
12
- //= require <%= filename %>
13
- <% end %>
14
- <% end %>
15
- //= require_tree .
@@ -1,16 +0,0 @@
1
- // This is a manifest file that'll be compiled into including all the files listed below.
2
- // Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
3
- // be included in the compiled file accessible from http://example.com/assets/application.js
4
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
5
- // the compiled file.
6
- //
7
- //= require accounting.min
8
- //= require spree/frontend
9
- <% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/frontend' %>
10
- <% filename = "spree/frontend/#{ options[:lib_name].gsub("/", "_") }" %>
11
- <% filepath = File.join(File.dirname(__FILE__), "../../app/assets/javascripts/#{ filename }") %>
12
- <% if javascript_exists?(filepath) %>
13
- //= require <%= filename %>
14
- <% end %>
15
- <% end %>
16
- //= require_tree .
@@ -1,16 +0,0 @@
1
- /*
2
- * This is a manifest file that'll automatically include all the stylesheets available in this directory
3
- * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4
- * the top of the compiled file, but it's generally better to create a new file per style scope.
5
- *
6
- *= require spree/backend
7
- <% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/backend' %>
8
- <% filename = "spree/backend/#{ options[:lib_name].gsub("/", "_") }" %>
9
- <% filepath = File.join(File.dirname(__FILE__), "../../app/assets/stylesheets/#{ filename }") %>
10
- <% if stylesheet_exists?(filepath) %>
11
- *= require <%= filename %>
12
- <% end %>
13
- <% end %>
14
- *= require_self
15
- *= require_tree .
16
- */
@@ -1,16 +0,0 @@
1
- /*
2
- * This is a manifest file that'll automatically include all the stylesheets available in this directory
3
- * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4
- * the top of the compiled file, but it's generally better to create a new file per style scope.
5
- *
6
- *= require spree/frontend
7
- <% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/frontend' %>
8
- <% filename = "spree/frontend/#{ options[:lib_name].gsub("/", "_") }" %>
9
- <% filepath = File.join(File.dirname(__FILE__), "../../app/assets/stylesheets/#{ filename }") %>
10
- <% if stylesheet_exists?(filepath) %>
11
- *= require <%= filename %>
12
- <% end %>
13
- <% end %>
14
- *= require_self
15
- *= require_tree .
16
- */
@@ -1,23 +0,0 @@
1
- require 'rails/generators'
2
- require 'spree/core'
3
-
4
- module Spree
5
- class MailersPreviewGenerator < Rails::Generators::Base
6
- desc 'Generates mailers preview for development proposes'
7
-
8
- def self.source_paths
9
- [
10
- File.expand_path('templates', __dir__)
11
- ]
12
- end
13
-
14
- def copy_mailers_previews
15
- preview_path = Rails.application.config.action_mailer.preview_path || 'test/mailers/previews'
16
-
17
- template 'mailers/previews/order_preview.rb', "#{preview_path}/order_preview.rb"
18
- template 'mailers/previews/shipment_preview.rb', "#{preview_path}/shipment_preview.rb"
19
- template 'mailers/previews/reimbursement_preview.rb', "#{preview_path}/reimbursement_preview.rb"
20
- template 'mailers/previews/user_preview.rb', "#{preview_path}/user_preview.rb"
21
- end
22
- end
23
- end
@@ -1,13 +0,0 @@
1
- class OrderPreview < ActionMailer::Preview
2
- def confirm_email
3
- Spree::OrderMailer.confirm_email(Spree::Order.complete.first)
4
- end
5
-
6
- def cancel_email
7
- Spree::OrderMailer.cancel_email(Spree::Order.complete.first)
8
- end
9
-
10
- def store_owner_notification_email
11
- Spree::OrderMailer.store_owner_notification_email(Spree::Order.complete.first)
12
- end
13
- end
@@ -1,5 +0,0 @@
1
- class ReimbursementPreview < ActionMailer::Preview
2
- def reimbursement_email
3
- Spree::ReimbursementMailer.reimbursement_email(Spree::Reimbursement.first)
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- class ShipmentPreview < ActionMailer::Preview
2
- def shipped_email
3
- Spree::ShipmentMailer.shipped_email(Spree::Shipment.shipped.first)
4
- end
5
- end