spree_admin 5.3.4 → 5.4.0.beta2

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 (170) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/controllers/concerns/spree/admin/order_concern.rb +1 -1
  4. data/app/controllers/spree/admin/action_text/video_embeds_controller.rb +1 -1
  5. data/app/controllers/spree/admin/addresses_controller.rb +1 -1
  6. data/app/controllers/spree/admin/admin_users_controller.rb +3 -3
  7. data/app/controllers/spree/admin/api_keys_controller.rb +77 -0
  8. data/app/controllers/spree/admin/assets_controller.rb +2 -2
  9. data/app/controllers/spree/admin/base_controller.rb +4 -4
  10. data/app/controllers/spree/admin/classifications_controller.rb +5 -4
  11. data/app/controllers/spree/admin/coupon_codes_controller.rb +1 -1
  12. data/app/controllers/spree/admin/customer_group_users_controller.rb +3 -2
  13. data/app/controllers/spree/admin/dashboard_controller.rb +2 -1
  14. data/app/controllers/spree/admin/digital_assets_controller.rb +1 -1
  15. data/app/controllers/spree/admin/exports_controller.rb +2 -1
  16. data/app/controllers/spree/admin/gift_cards_controller.rb +5 -5
  17. data/app/controllers/spree/admin/import_mappings_controller.rb +1 -1
  18. data/app/controllers/spree/admin/import_rows_controller.rb +1 -1
  19. data/app/controllers/spree/admin/integrations_controller.rb +1 -1
  20. data/app/controllers/spree/admin/invitations_controller.rb +6 -5
  21. data/app/controllers/spree/admin/line_items_controller.rb +1 -1
  22. data/app/controllers/spree/admin/markets_controller.rb +28 -0
  23. data/app/controllers/spree/admin/option_values_controller.rb +1 -1
  24. data/app/controllers/spree/admin/orders/adjustments_controller.rb +4 -4
  25. data/app/controllers/spree/admin/orders/billing_address_controller.rb +4 -4
  26. data/app/controllers/spree/admin/orders/customer_returns_controller.rb +1 -1
  27. data/app/controllers/spree/admin/orders/shipping_address_controller.rb +3 -3
  28. data/app/controllers/spree/admin/orders/user_controller.rb +4 -4
  29. data/app/controllers/spree/admin/orders_controller.rb +8 -4
  30. data/app/controllers/spree/admin/payments_controller.rb +3 -3
  31. data/app/controllers/spree/admin/price_list_products_controller.rb +1 -1
  32. data/app/controllers/spree/admin/price_rules_controller.rb +1 -1
  33. data/app/controllers/spree/admin/products_controller.rb +21 -24
  34. data/app/controllers/spree/admin/profile_controller.rb +1 -1
  35. data/app/controllers/spree/admin/promotion_actions_controller.rb +1 -1
  36. data/app/controllers/spree/admin/promotion_rules_controller.rb +1 -1
  37. data/app/controllers/spree/admin/promotions_controller.rb +1 -1
  38. data/app/controllers/spree/admin/refunds_controller.rb +1 -1
  39. data/app/controllers/spree/admin/reimbursements_controller.rb +2 -2
  40. data/app/controllers/spree/admin/resource_controller.rb +30 -11
  41. data/app/controllers/spree/admin/shipments_controller.rb +3 -3
  42. data/app/controllers/spree/admin/shipping_methods_controller.rb +1 -1
  43. data/app/controllers/spree/admin/store_credits_controller.rb +5 -5
  44. data/app/controllers/spree/admin/stores_controller.rb +1 -32
  45. data/app/controllers/spree/admin/taxons_controller.rb +3 -3
  46. data/app/controllers/spree/admin/translations_controller.rb +1 -0
  47. data/app/controllers/spree/admin/users_controller.rb +2 -2
  48. data/app/helpers/spree/admin/api_keys_helper.rb +36 -0
  49. data/app/helpers/spree/admin/base_helper.rb +6 -1
  50. data/app/helpers/spree/admin/json_preview_helper.rb +29 -25
  51. data/app/helpers/spree/admin/navigation_helper.rb +2 -4
  52. data/app/helpers/spree/admin/orders_filters_helper.rb +1 -1
  53. data/app/helpers/spree/admin/products_helper.rb +0 -3
  54. data/app/helpers/spree/admin/sortable_tree_helper.rb +1 -1
  55. data/app/helpers/spree/admin/stores_helper.rb +0 -4
  56. data/app/helpers/spree/admin/tags_helper.rb +0 -11
  57. data/app/javascript/spree/admin/controllers/autocomplete_select_controller.js +5 -1
  58. data/app/javascript/spree/admin/controllers/search_clear_controller.js +1 -1
  59. data/app/javascript/spree/admin/controllers/select_controller.js +4 -0
  60. data/app/javascript/spree/admin/controllers/variants_form_controller.js +4 -3
  61. data/app/models/action_text/video_embed.rb +13 -0
  62. data/app/presenters/spree/admin/order_summary_presenter.rb +12 -0
  63. data/app/views/action_text/video_embeds/_thumbnail.html.erb +1 -0
  64. data/app/views/action_text/video_embeds/_video_embed.html.erb +3 -0
  65. data/app/views/layouts/action_text/contents/_content.html.erb +3 -0
  66. data/app/views/spree/admin/api_keys/_details.html.erb +51 -0
  67. data/app/views/spree/admin/api_keys/_form.html.erb +26 -0
  68. data/app/views/spree/admin/api_keys/_token_card.html.erb +55 -0
  69. data/app/views/spree/admin/api_keys/_usage_info.html.erb +17 -0
  70. data/app/views/spree/admin/api_keys/index.html.erb +9 -0
  71. data/app/views/spree/admin/api_keys/show.html.erb +26 -0
  72. data/app/views/spree/admin/classifications/_classification.html.erb +2 -2
  73. data/app/views/spree/admin/classifications/index.html.erb +1 -1
  74. data/app/views/spree/admin/classifications/new.html.erb +1 -1
  75. data/app/views/spree/admin/exports/create.turbo_stream.erb +1 -1
  76. data/app/views/spree/admin/exports/new.html.erb +3 -3
  77. data/app/views/spree/admin/json_previews/show.html.erb +6 -6
  78. data/app/views/spree/admin/markets/_form.html.erb +28 -0
  79. data/app/views/spree/admin/markets/index.html.erb +9 -0
  80. data/app/views/spree/admin/orders/billing_address/_form.html.erb +2 -2
  81. data/app/views/spree/admin/orders/shipping_address/_form.html.erb +2 -2
  82. data/app/views/spree/admin/payment_methods/_form.html.erb +0 -12
  83. data/app/views/spree/admin/payment_methods/descriptions/_gateway.html.erb +1 -1
  84. data/app/views/spree/admin/payment_methods/index.html.erb +12 -11
  85. data/app/views/spree/admin/price_rules/forms/_market_rule.html.erb +7 -0
  86. data/app/views/spree/admin/products/_form.html.erb +0 -3
  87. data/app/views/spree/admin/products/form/_variants.html.erb +4 -3
  88. data/app/views/spree/admin/promotion_rules/forms/_country.html.erb +1 -1
  89. data/app/views/spree/admin/shared/_content_header.html.erb +1 -1
  90. data/app/views/spree/admin/shared/sidebar/_store_dropdown.html.erb +0 -33
  91. data/app/views/spree/admin/shared/sidebar/_store_nav.html.erb +3 -125
  92. data/app/views/spree/admin/shared/sortable_tree/_taxonomy.html.erb +2 -2
  93. data/app/views/spree/admin/stores/form/_basic.html.erb +10 -7
  94. data/app/views/spree/admin/stores/form/_checkout.html.erb +5 -8
  95. data/app/views/spree/admin/tables/columns/_api_key_status.html.erb +2 -0
  96. data/app/views/spree/admin/tables/columns/_api_key_type.html.erb +2 -0
  97. data/app/views/spree/admin/taxonomies/show.html.erb +1 -1
  98. data/app/views/spree/admin/taxons/_form.html.erb +2 -2
  99. data/app/views/spree/admin/taxons/edit.html.erb +1 -2
  100. data/app/views/spree/admin/taxons/update.turbo_stream.erb +1 -1
  101. data/app/views/spree/admin/users/_billing.html.erb +2 -2
  102. data/app/views/spree/admin/users/_shipping.html.erb +1 -1
  103. data/app/views/spree/admin/variants/_variant.html.erb +1 -1
  104. data/config/brakeman.ignore +28 -0
  105. data/config/initializers/oembed.rb +1 -0
  106. data/config/initializers/spree_admin_navigation.rb +16 -31
  107. data/config/initializers/spree_admin_tables.rb +94 -99
  108. data/config/locales/en.yml +35 -1
  109. data/config/routes.rb +6 -18
  110. data/db/migrate/20250217171018_create_action_text_video_embeds.rb +11 -0
  111. data/lib/spree/admin/engine.rb +9 -0
  112. data/lib/spree/admin/tailwind_helper.rb +11 -1
  113. data/lib/spree/admin/testing_support/tom_select.rb +1 -1
  114. data/lib/spree/admin.rb +1 -0
  115. metadata +50 -63
  116. data/LICENSE.md +0 -13
  117. data/app/controllers/spree/admin/custom_domains_controller.rb +0 -21
  118. data/app/controllers/spree/admin/oauth_applications_controller.rb +0 -23
  119. data/app/controllers/spree/admin/post_categories_controller.rb +0 -21
  120. data/app/controllers/spree/admin/posts_controller.rb +0 -37
  121. data/app/controllers/spree/admin/properties_controller.rb +0 -26
  122. data/app/helpers/spree/admin/posts_helper.rb +0 -9
  123. data/app/views/spree/admin/custom_domains/_custom_domain.html.erb +0 -11
  124. data/app/views/spree/admin/custom_domains/_custom_domains.html.erb +0 -19
  125. data/app/views/spree/admin/custom_domains/_form.html.erb +0 -7
  126. data/app/views/spree/admin/custom_domains/index.html.erb +0 -65
  127. data/app/views/spree/admin/oauth_applications/_form.html.erb +0 -6
  128. data/app/views/spree/admin/oauth_applications/_table_header.html.erb +0 -7
  129. data/app/views/spree/admin/oauth_applications/_table_row.html.erb +0 -34
  130. data/app/views/spree/admin/oauth_applications/create.turbo_stream.erb +0 -31
  131. data/app/views/spree/admin/oauth_applications/edit.html.erb +0 -1
  132. data/app/views/spree/admin/oauth_applications/index.html.erb +0 -21
  133. data/app/views/spree/admin/oauth_applications/new.html.erb +0 -1
  134. data/app/views/spree/admin/post_categories/_form.html.erb +0 -6
  135. data/app/views/spree/admin/post_categories/_table_header.html.erb +0 -5
  136. data/app/views/spree/admin/post_categories/_table_row.html.erb +0 -9
  137. data/app/views/spree/admin/post_categories/index.html.erb +0 -10
  138. data/app/views/spree/admin/post_categories/new.html.erb +0 -1
  139. data/app/views/spree/admin/posts/_extra_actions.html.erb +0 -0
  140. data/app/views/spree/admin/posts/_form.html.erb +0 -54
  141. data/app/views/spree/admin/posts/_table_header.html.erb +0 -7
  142. data/app/views/spree/admin/posts/_table_row.html.erb +0 -22
  143. data/app/views/spree/admin/posts/edit.html.erb +0 -5
  144. data/app/views/spree/admin/posts/filters.html.erb +0 -39
  145. data/app/views/spree/admin/posts/index.html.erb +0 -10
  146. data/app/views/spree/admin/posts/new.html.erb +0 -1
  147. data/app/views/spree/admin/products/form/_properties.html.erb +0 -46
  148. data/app/views/spree/admin/products/form/_stores.html.erb +0 -27
  149. data/app/views/spree/admin/properties/_filters.html.erb +0 -5
  150. data/app/views/spree/admin/properties/_form.html.erb +0 -8
  151. data/app/views/spree/admin/properties/_table_header.html.erb +0 -9
  152. data/app/views/spree/admin/properties/_table_row.html.erb +0 -25
  153. data/app/views/spree/admin/properties/edit.html.erb +0 -2
  154. data/app/views/spree/admin/properties/index.html.erb +0 -22
  155. data/app/views/spree/admin/properties/update.turbo_stream.erb +0 -1
  156. data/app/views/spree/admin/shared/_posts_tabs.html.erb +0 -8
  157. data/app/views/spree/admin/shared/sidebar/_customers_nav.html.erb +0 -15
  158. data/app/views/spree/admin/shared/sidebar/_integrations_nav.html.erb +0 -3
  159. data/app/views/spree/admin/shared/sidebar/_orders_nav.html.erb +0 -45
  160. data/app/views/spree/admin/shared/sidebar/_products_nav.html.erb +0 -42
  161. data/app/views/spree/admin/shared/sidebar/_promotions_nav.html.erb +0 -15
  162. data/app/views/spree/admin/shared/sidebar/_returns_nav.html.erb +0 -26
  163. data/app/views/spree/admin/shared/sidebar/_storefront_nav.html.erb +0 -46
  164. data/app/views/spree/admin/shared/sidebar/_vendors_nav.html.erb +0 -17
  165. data/app/views/spree/admin/stores/new.html.erb +0 -128
  166. data/app/views/spree/admin/stores/new.turbo_stream.erb +0 -1
  167. /data/app/views/spree/admin/{custom_domains → api_keys}/edit.html.erb +0 -0
  168. /data/app/views/spree/admin/{custom_domains → api_keys}/new.html.erb +0 -0
  169. /data/app/views/spree/admin/{post_categories → markets}/edit.html.erb +0 -0
  170. /data/app/views/spree/admin/{properties → markets}/new.html.erb +0 -0
@@ -1,17 +0,0 @@
1
- <% if can?(:manage, current_store) %>
2
- <% if enterprise_edition? %>
3
- <%= render_admin_partials(:vendors_nav_partials) %>
4
- <% else %>
5
- <li class="nav-item">
6
- <%= external_link_to nil, 'https://spreecommerce.org/pricing', class: 'nav-link flex items-center w-full', data: { controller: 'tooltip' } do %>
7
- <%= icon 'heart-handshake' %>
8
- <%= Spree.t(:vendors) %>
9
-
10
- <span class="badge ml-auto rounded-full">
11
- Enterprise
12
- </span>
13
- <%= tooltip('This feature is part of the Enterprise Edition.') %>
14
- <% end %>
15
- </li>
16
- <% end %>
17
- <% end%>
@@ -1,128 +0,0 @@
1
- <%= form_for @store, url: spree.admin_stores_path, data: { turbo: false, controller: 'store-form enable-button' } do |f| %>
2
- <div class="container mx-auto px-4 pt-8">
3
- <h1 class="mb-6"><%= Spree.t(:new_store) %></h1>
4
-
5
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @store } %>
6
- <div class="grid grid-cols-12 gap-16">
7
- <div class="col-span-12 lg:col-span-6">
8
- <div class="form-group">
9
- <%= f.label :name %>
10
- <%= f.text_field :name, class: 'form-input',
11
- placeholder: Spree.t(:store_name),
12
- required: true,
13
- autofocus: true,
14
- data: {
15
- enable_button_target: 'input',
16
- } %>
17
- </div>
18
-
19
- <div class="form-group">
20
- <%= f.label :default_country_iso, Spree.t(:country) %>
21
- <%= f.collection_select :default_country_iso, Spree::Country.order(:name), :iso, :name, { }, { data: { controller: 'autocomplete-select', enable_button_target: 'input', action: 'store-form#updateCurrency' } } %>
22
- </div>
23
-
24
- <div class="form-group">
25
- <%= f.label :default_locale %>
26
- <%= f.select :default_locale, options_from_collection_for_select(all_locales_options, :last, :first, current_store.default_locale || I18n.locale), { }, { data: { controller: 'autocomplete-select', enable_button_target: 'input', action: 'store-form#updateCurrency' } } %>
27
- </div>
28
-
29
- <div class="form-group">
30
- <%= f.label :default_currency, Spree.t(:currency) %>
31
- <%= f.select :default_currency, currency_options, {}, { data: { controller: 'autocomplete-select', enable_button_target: 'input', store_form_target: 'currency' } } %>
32
- </div>
33
-
34
- <% if available_stores.any? %>
35
- <div class="form-group">
36
- <%= f.label :import_products_from_store_id, Spree.t(:import_products_from) %>
37
- <%= f.select :import_products_from_store_id,
38
- options_for_select(available_stores.pluck(:name, :id)),
39
- { include_blank: Spree.t(:do_not_import) },
40
- {
41
- data: { controller: 'autocomplete-select' }
42
- } %>
43
- </div>
44
-
45
- <div class="form-group">
46
- <%= f.label :import_payment_methods_from_store_id, Spree.t(:import_payment_methods_from) %>
47
- <%= f.select :import_payment_methods_from_store_id,
48
- options_for_select(available_stores.pluck(:name, :id)),
49
- { include_blank: Spree.t(:do_not_import) },
50
- {
51
- data: { controller: 'autocomplete-select' }
52
- } %>
53
- </div>
54
- <% end %>
55
- </div>
56
- <div class="col-span-12 lg:col-span-5 lg:col-start-8">
57
- <h5 class="mb-2">What will be shared with this new store:</h5>
58
- <ul class="list-none p-0">
59
- <li>
60
- <%= icon('check', class: 'text-green-700') %>
61
- <%= Spree.t(:products) %>, <%= Spree.t(:stock_locations) %> & <%= Spree.t(:inventory) %><br />
62
- <em class="ml-5 text-gray-600 text-sm">you can select which ones will be available for this store</em>
63
- </li>
64
- <li>
65
- <%= icon('check', class: 'text-green-700') %>
66
- <%= Spree.t(:customers) %>
67
- </li>
68
- <li>
69
- <%= icon('check', class: 'text-green-700') %>
70
- Shipping methods, rates and markets
71
- </li>
72
- <li>
73
- <%= icon('check', class: 'text-green-700') %>
74
- <%= Spree.t(:payment_methods) %><br />
75
- <em class="ml-5 text-gray-600 text-sm">you can select which ones will be available for this store</em>
76
- </li>
77
- <li>
78
- <%= icon('check', class: 'text-green-700') %>
79
- Admin user privileges
80
- </li>
81
- </ul>
82
-
83
- <h5 class="mt-6 mb-2">What will not be shared with this new store:</h5>
84
- <ul class="list-none p-0">
85
- <li>
86
- <%= icon('x', class: 'text-danger') %>
87
- <%= Spree.t(:orders) %>
88
- </li>
89
- <li>
90
- <%= icon('x', class: 'text-danger') %>
91
- <%= Spree.t(:shipments) %>
92
- </li>
93
- <li>
94
- <%= icon('x', class: 'text-danger') %>
95
- <%= Spree.t(:payments) %>
96
- </li>
97
- <li>
98
- <%= icon('x', class: 'text-danger') %>
99
- <%= Spree.t(:refunds) %>
100
- </li>
101
- <li>
102
- <%= icon('x', class: 'text-danger') %>
103
- <%= Spree.t(:store_credits) %>
104
- </li>
105
- <li>
106
- <%= icon('x', class: 'text-danger') %>
107
- <%= Spree.t(:gift_cards) %>
108
- </li>
109
- <li>
110
- <%= icon('x', class: 'text-danger') %>
111
- <%= Spree.t(:blogs_posts) %>
112
- </li>
113
- <li>
114
- <%= icon('x', class: 'text-danger') %>
115
- <%= Spree.t(:themes) %> & <%= Spree.t(:pages) %>
116
- </li>
117
- <li>
118
- <%= icon('x', class: 'text-danger') %>
119
- <%= Spree.t(:integrations) %> eg. Google Analytics, Meta Pixel, etc.
120
- </li>
121
- </ul>
122
- </div>
123
- </div>
124
- </div>
125
- <footer id="footer" class="fixed bottom-0 left-0 w-full border-t border-gray-200 px-6 py-4 bg-gray-25 flex items-center justify-end gap-4 z-[1000]">
126
- <%= turbo_save_button_tag Spree.t('actions.create'), data: { admin_target: 'save' } %>
127
- </footer>
128
- <% end %>
@@ -1 +0,0 @@
1
- <%= render template: 'spree/admin/stores/new', formats: [:html] %>