spree_admin 5.4.0.beta6 → 5.4.0.beta8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d8f0000fdaf838bef91f05f407dd75593d99af44dd2792da78d63634468432d
4
- data.tar.gz: 2e1df4e21ceec6019d796efe210ca08b5ad4d273be9ad49bd5861969760d95eb
3
+ metadata.gz: 454dbbe0a9053023024e22984b2e9593ed882e0a91ebd77cdf2937de1e770156
4
+ data.tar.gz: e101e0f64fa6328aebb27441857e5a75e9489aac155e48f5c6d414f164de3255
5
5
  SHA512:
6
- metadata.gz: 31a8dd9cb7a88265a79058c0cbcc17778408859cf074e36246057bb5b67c539f560014161d51d2aeb7fa2fac7e92998d32d6b64f109a3a17268e7bc0afbb8cb8
7
- data.tar.gz: ff3e3a049b0fed5999d81db446f32895b2545e71a0e94316ce078bcc226a09ad35a507416692da4640a18f29bcd14aa0c8521a9b17b61bb5aec97b20140e04b5
6
+ metadata.gz: 484d4e4f75257c673d102b298bf1b8406640e607a75b5d607d2aff096c46b886e64bc9207be0889e6dfbb00d646c60bf8daeacb2f667294653144100abbe083c
7
+ data.tar.gz: 0e4cbc1181f745f73a6b98ab9bb1a6f863545cd2dbc550df1a83393879e482ca108e5bd3dca0cc7957836fe7c6befc73252d9a2482500c50e111ae55dd57b500
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module Admin
5
+ class AllowedOriginsController < ResourceController
6
+ include Spree::Admin::SettingsConcern
7
+ include Spree::Admin::TableConcern
8
+
9
+ private
10
+
11
+ def model_class
12
+ Spree::AllowedOrigin
13
+ end
14
+
15
+ def scope
16
+ current_store.allowed_origins
17
+ end
18
+
19
+ def object_name
20
+ 'allowed_origin'
21
+ end
22
+
23
+ def permitted_resource_params
24
+ params.require(:allowed_origin).permit(permitted_allowed_origin_attributes)
25
+ end
26
+
27
+ def location_after_save
28
+ spree.admin_allowed_origins_path
29
+ end
30
+
31
+ def location_after_destroy
32
+ spree.admin_allowed_origins_path
33
+ end
34
+ end
35
+ end
36
+ end
@@ -38,7 +38,7 @@ module Spree
38
38
  includes(
39
39
  :taxon,
40
40
  product: {
41
- thumbnail: [attachment_attachment: :blob],
41
+ primary_media: [attachment_attachment: :blob],
42
42
  master: [:stock_items, :stock_locations],
43
43
  variants: [:stock_items, :stock_locations]
44
44
  }
@@ -35,7 +35,7 @@ module Spree
35
35
 
36
36
  scope = current_store.products.not_archived.accessible_by(current_ability, :index)
37
37
  scope = scope.where.not(id: params[:omit_ids].split(',')) if params[:omit_ids].present?
38
- @products = scope.includes(:thumbnail).multi_search(query).limit(params[:limit] || 10)
38
+ @products = scope.includes(:primary_media).multi_search(query).limit(params[:limit] || 10)
39
39
 
40
40
  respond_to do |format|
41
41
  format.turbo_stream do
@@ -223,7 +223,7 @@ module Spree
223
223
 
224
224
  def collection_includes
225
225
  {
226
- thumbnail: [attachment_attachment: :blob],
226
+ primary_media: [attachment_attachment: :blob],
227
227
  stock_items: [],
228
228
  master: [:prices, :stock_items],
229
229
  variants: [:prices, :stock_items]
@@ -0,0 +1,9 @@
1
+ <div class="card mb-6">
2
+ <div class="card-header">
3
+ <h5 class="card-title"><%= Spree.t('admin.allowed_origins.origin_settings') %></h5>
4
+ </div>
5
+ <div class="card-body">
6
+ <%= f.spree_text_field :origin, required: true, autofocus: f.object.new_record?, placeholder: 'https://myshop.com' %>
7
+ <p class="text-sm text-gray-500 mt-1"><%= Spree.t('admin.allowed_origins.origin_help') %></p>
8
+ </div>
9
+ </div>
@@ -0,0 +1 @@
1
+ <%= render 'spree/admin/shared/edit_resource' %>
@@ -0,0 +1,9 @@
1
+ <%= render 'spree/admin/shared/developers_nav' %>
2
+
3
+ <%= content_for(:title, Spree.t(:allowed_origins)) %>
4
+
5
+ <% content_for :page_actions do %>
6
+ <%= link_to_with_icon 'plus', Spree.t(:new_allowed_origin), new_object_url, class: "btn btn-primary" if can? :create, Spree::AllowedOrigin %>
7
+ <% end %>
8
+
9
+ <%= render_table @collection, :allowed_origins %>
@@ -0,0 +1 @@
1
+ <%= render 'spree/admin/shared/new_resource' %>
@@ -21,7 +21,7 @@
21
21
  <%= link_to_with_icon 'send', Spree.t('admin.send_payment_link'), spree.admin_order_payment_links_path(@order), data: { turbo_method: :post }, class: 'btn btn-light', title: Spree.t(:send_payment_link_title) %>
22
22
 
23
23
  <div data-controller="clipboard" data-clipboard-success-content-value="<%= Spree.t('admin.copied') %>">
24
- <input type="hidden" value="<%= spree.checkout_state_url(@order.token, :payment, host: current_store.url_or_custom_domain) %>" readonly data-clipboard-target="source">
24
+ <input type="hidden" value="<%= spree.checkout_state_url(@order.token, :payment, host: current_store.storefront_url) %>" readonly data-clipboard-target="source">
25
25
  <button class="btn btn-light" type="button" data-clipboard-target="button" data-action="click->clipboard#copy">
26
26
  <%= icon('copy') %>
27
27
  <%= Spree.t('admin.copy_payment_link') %>
@@ -1,7 +1,7 @@
1
1
  <% width ||= 50 %>
2
2
  <% height ||= 50 %>
3
3
  <% variant ||= :mini %>
4
- <% image ||= object.default_image %>
4
+ <% image ||= object.primary_media %>
5
5
 
6
6
  <% if image.present? && image.attached? && image.variable? %>
7
7
  <% alt ||= image.alt || object.name %>
@@ -9,7 +9,7 @@
9
9
  <%= meta_title.presence || title %>
10
10
  </div>
11
11
  <div class="seo__preview__link">
12
- <%= current_store.formatted_url_or_custom_domain %>/<%= slug_path %>/<span data-seo-form-target="slugPreview"><%= slug %></span>
12
+ <%= current_store.storefront_url %>/<%= slug_path %>/<span data-seo-form-target="slugPreview"><%= slug %></span>
13
13
  </div>
14
14
  <div class="seo__preview__description break-words" data-seo-form-target="descriptionPreview"></div>
15
15
  </div>
@@ -7,7 +7,7 @@
7
7
  </span>
8
8
  <% end %>
9
9
  <%= dropdown_menu do %>
10
- <%= link_to current_store.formatted_url_or_custom_domain, class: 'dropdown-item', target: '_blank' do %>
10
+ <%= link_to current_store.storefront_url, class: 'dropdown-item', target: '_blank' do %>
11
11
  <%= icon 'eye' %>
12
12
  <%= Spree.t(:view_store) %>
13
13
  <% end %>
@@ -334,7 +334,7 @@ Rails.application.config.after_initialize do
334
334
  url: :admin_api_keys_path,
335
335
  icon: 'terminal',
336
336
  position: 150,
337
- active: -> { %w[oauth_applications api_keys webhooks_subscribers webhook_endpoints webhook_deliveries].include?(controller_name) },
337
+ active: -> { %w[oauth_applications api_keys webhooks_subscribers webhook_endpoints webhook_deliveries allowed_origins].include?(controller_name) },
338
338
  if: -> { can?(:manage, Spree::ApiKey) }
339
339
 
340
340
  # Edit Profile
@@ -456,6 +456,13 @@ Rails.application.config.after_initialize do
456
456
  active: -> { %w[webhook_endpoints webhook_deliveries].include?(controller_name) },
457
457
  if: -> { can?(:manage, Spree::WebhookEndpoint) }
458
458
 
459
+ developers_tabs_nav.add :allowed_origins,
460
+ label: :allowed_origins,
461
+ url: :admin_allowed_origins_path,
462
+ position: 30,
463
+ active: -> { controller_name == 'allowed_origins' },
464
+ if: -> { can?(:manage, Spree::AllowedOrigin) }
465
+
459
466
  # Audit Tab Navigation
460
467
  audit_tabs_nav = Spree.admin.navigation.audit_tabs
461
468
 
@@ -1865,7 +1865,7 @@ Rails.application.config.after_initialize do
1865
1865
  # ==========================================
1866
1866
  # Register Taxonomies table
1867
1867
  # ==========================================
1868
- Spree.admin.tables.register(:taxonomies, model_class: Spree::Taxonomy, search_param: :name_cont)
1868
+ Spree.admin.tables.register(:taxonomies, model_class: Spree::Taxonomy, search_param: :name_cont, link_to_action: :show)
1869
1869
 
1870
1870
  Spree.admin.tables.taxonomies.add :name,
1871
1871
  label: :name,
@@ -1998,4 +1998,23 @@ Rails.application.config.after_initialize do
1998
1998
  default: true,
1999
1999
  position: 60,
2000
2000
  method: ->(sm) { sm.display_on.presence || 'both' }
2001
+
2002
+ # Register Allowed Origins table
2003
+ Spree.admin.tables.register(:allowed_origins, model_class: Spree::AllowedOrigin, search_param: :origin_cont)
2004
+
2005
+ Spree.admin.tables.allowed_origins.add :origin,
2006
+ label: :origin,
2007
+ type: :string,
2008
+ sortable: true,
2009
+ filterable: true,
2010
+ default: true,
2011
+ position: 10
2012
+
2013
+ Spree.admin.tables.allowed_origins.add :created_at,
2014
+ label: :created_at,
2015
+ type: :datetime,
2016
+ sortable: true,
2017
+ filterable: true,
2018
+ default: true,
2019
+ position: 20
2001
2020
  end
@@ -5,6 +5,9 @@ en:
5
5
  not_found: Can't embed a video using the provided URL
6
6
  spree:
7
7
  admin:
8
+ allowed_origins:
9
+ origin_help: Enter the full origin URL of your storefront (e.g. https://myshop.com). Do not include paths or query strings.
10
+ origin_settings: Origin Settings
8
11
  amount_spent: Amount spent
9
12
  api_keys:
10
13
  example_request: Example Request
data/config/routes.rb CHANGED
@@ -258,6 +258,7 @@ Spree::Core::Engine.add_routes do
258
258
  resources :webhook_endpoints do
259
259
  resources :webhook_deliveries, only: [:index, :show]
260
260
  end
261
+ resources :allowed_origins, except: :show
261
262
 
262
263
  # errors
263
264
  get '/forbidden', to: 'errors#show', code: 403, as: :forbidden
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.4.0.beta6
4
+ version: 5.4.0.beta8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vendo Connect Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-11 00:00:00.000000000 Z
11
+ date: 2026-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.4.0.beta6
19
+ version: 5.4.0.beta8
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 5.4.0.beta6
26
+ version: 5.4.0.beta8
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: active_link_to
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -310,6 +310,7 @@ files:
310
310
  - app/controllers/spree/admin/action_text/video_embeds_controller.rb
311
311
  - app/controllers/spree/admin/addresses_controller.rb
312
312
  - app/controllers/spree/admin/admin_users_controller.rb
313
+ - app/controllers/spree/admin/allowed_origins_controller.rb
313
314
  - app/controllers/spree/admin/api_keys_controller.rb
314
315
  - app/controllers/spree/admin/assets_controller.rb
315
316
  - app/controllers/spree/admin/base_controller.rb
@@ -534,6 +535,10 @@ files:
534
535
  - app/views/spree/admin/admin_users/index.html.erb
535
536
  - app/views/spree/admin/admin_users/new.html.erb
536
537
  - app/views/spree/admin/admin_users/show.html.erb
538
+ - app/views/spree/admin/allowed_origins/_form.html.erb
539
+ - app/views/spree/admin/allowed_origins/edit.html.erb
540
+ - app/views/spree/admin/allowed_origins/index.html.erb
541
+ - app/views/spree/admin/allowed_origins/new.html.erb
537
542
  - app/views/spree/admin/api_keys/_details.html.erb
538
543
  - app/views/spree/admin/api_keys/_form.html.erb
539
544
  - app/views/spree/admin/api_keys/_token_card.html.erb
@@ -1164,9 +1169,9 @@ licenses:
1164
1169
  - BSD-3-Clause
1165
1170
  metadata:
1166
1171
  bug_tracker_uri: https://github.com/spree/spree/issues
1167
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.beta6
1172
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.beta8
1168
1173
  documentation_uri: https://docs.spreecommerce.org/
1169
- source_code_uri: https://github.com/spree/spree/tree/v5.4.0.beta6
1174
+ source_code_uri: https://github.com/spree/spree/tree/v5.4.0.beta8
1170
1175
  post_install_message:
1171
1176
  rdoc_options: []
1172
1177
  require_paths: