spree_admin 5.3.5 → 5.4.0.beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/app/controllers/concerns/spree/admin/order_concern.rb +1 -1
- data/app/controllers/spree/admin/action_text/video_embeds_controller.rb +1 -1
- data/app/controllers/spree/admin/addresses_controller.rb +1 -1
- data/app/controllers/spree/admin/admin_users_controller.rb +3 -3
- data/app/controllers/spree/admin/api_keys_controller.rb +56 -0
- data/app/controllers/spree/admin/assets_controller.rb +2 -2
- data/app/controllers/spree/admin/base_controller.rb +4 -4
- data/app/controllers/spree/admin/classifications_controller.rb +5 -4
- data/app/controllers/spree/admin/coupon_codes_controller.rb +1 -1
- data/app/controllers/spree/admin/customer_group_users_controller.rb +3 -2
- data/app/controllers/spree/admin/dashboard_controller.rb +2 -1
- data/app/controllers/spree/admin/digital_assets_controller.rb +1 -1
- data/app/controllers/spree/admin/exports_controller.rb +1 -2
- data/app/controllers/spree/admin/gift_cards_controller.rb +5 -5
- data/app/controllers/spree/admin/import_mappings_controller.rb +1 -1
- data/app/controllers/spree/admin/import_rows_controller.rb +1 -1
- data/app/controllers/spree/admin/integrations_controller.rb +1 -1
- data/app/controllers/spree/admin/invitations_controller.rb +6 -5
- data/app/controllers/spree/admin/line_items_controller.rb +1 -1
- data/app/controllers/spree/admin/markets_controller.rb +28 -0
- data/app/controllers/spree/admin/option_values_controller.rb +1 -1
- data/app/controllers/spree/admin/orders/adjustments_controller.rb +4 -4
- data/app/controllers/spree/admin/orders/billing_address_controller.rb +4 -4
- data/app/controllers/spree/admin/orders/customer_returns_controller.rb +1 -1
- data/app/controllers/spree/admin/orders/shipping_address_controller.rb +3 -3
- data/app/controllers/spree/admin/orders/user_controller.rb +4 -4
- data/app/controllers/spree/admin/orders_controller.rb +8 -4
- data/app/controllers/spree/admin/payments_controller.rb +3 -3
- data/app/controllers/spree/admin/price_list_products_controller.rb +1 -1
- data/app/controllers/spree/admin/price_rules_controller.rb +1 -1
- data/app/controllers/spree/admin/products_controller.rb +24 -15
- data/app/controllers/spree/admin/profile_controller.rb +1 -1
- data/app/controllers/spree/admin/promotion_actions_controller.rb +1 -1
- data/app/controllers/spree/admin/promotion_rules_controller.rb +1 -1
- data/app/controllers/spree/admin/promotions_controller.rb +1 -1
- data/app/controllers/spree/admin/refunds_controller.rb +1 -1
- data/app/controllers/spree/admin/reimbursements_controller.rb +2 -2
- data/app/controllers/spree/admin/resource_controller.rb +30 -11
- data/app/controllers/spree/admin/shipments_controller.rb +3 -3
- data/app/controllers/spree/admin/shipping_methods_controller.rb +1 -1
- data/app/controllers/spree/admin/store_credits_controller.rb +5 -5
- data/app/controllers/spree/admin/stores_controller.rb +1 -32
- data/app/controllers/spree/admin/taxons_controller.rb +3 -3
- data/app/controllers/spree/admin/translations_controller.rb +1 -0
- data/app/controllers/spree/admin/users_controller.rb +2 -2
- data/app/helpers/spree/admin/api_keys_helper.rb +32 -0
- data/app/helpers/spree/admin/base_helper.rb +6 -1
- data/app/helpers/spree/admin/json_preview_helper.rb +29 -25
- data/app/helpers/spree/admin/orders_filters_helper.rb +1 -1
- data/app/helpers/spree/admin/sortable_tree_helper.rb +1 -1
- data/app/helpers/spree/admin/stores_helper.rb +0 -4
- data/app/javascript/spree/admin/controllers/autocomplete_select_controller.js +5 -1
- data/app/javascript/spree/admin/controllers/search_clear_controller.js +1 -1
- data/app/javascript/spree/admin/controllers/select_controller.js +4 -0
- data/app/javascript/spree/admin/controllers/variants_form_controller.js +4 -3
- data/app/views/spree/admin/api_keys/_details.html.erb +51 -0
- data/app/views/spree/admin/api_keys/_form.html.erb +26 -0
- data/app/views/spree/admin/api_keys/_token_card.html.erb +28 -0
- data/app/views/spree/admin/api_keys/_usage_info.html.erb +16 -0
- data/app/views/spree/admin/api_keys/index.html.erb +9 -0
- data/app/views/spree/admin/api_keys/show.html.erb +26 -0
- data/app/views/spree/admin/classifications/_classification.html.erb +2 -2
- data/app/views/spree/admin/classifications/index.html.erb +1 -1
- data/app/views/spree/admin/classifications/new.html.erb +1 -1
- data/app/views/spree/admin/exports/create.turbo_stream.erb +1 -1
- data/app/views/spree/admin/exports/new.html.erb +3 -3
- data/app/views/spree/admin/json_previews/show.html.erb +6 -6
- data/app/views/spree/admin/markets/_form.html.erb +28 -0
- data/app/views/spree/admin/markets/edit.html.erb +1 -0
- data/app/views/spree/admin/markets/index.html.erb +9 -0
- data/app/views/spree/admin/markets/new.html.erb +1 -0
- data/app/views/spree/admin/orders/billing_address/_form.html.erb +2 -2
- data/app/views/spree/admin/orders/shipping_address/_form.html.erb +2 -2
- data/app/views/spree/admin/payment_methods/_form.html.erb +0 -12
- data/app/views/spree/admin/price_rules/forms/_market_rule.html.erb +7 -0
- data/app/views/spree/admin/products/_form.html.erb +0 -1
- data/app/views/spree/admin/products/form/_variants.html.erb +4 -3
- data/app/views/spree/admin/promotion_rules/forms/_country.html.erb +1 -1
- data/app/views/spree/admin/shared/_content_header.html.erb +1 -1
- data/app/views/spree/admin/shared/sidebar/_store_dropdown.html.erb +0 -33
- data/app/views/spree/admin/shared/sidebar/_store_nav.html.erb +2 -2
- data/app/views/spree/admin/shared/sortable_tree/_taxonomy.html.erb +2 -2
- data/app/views/spree/admin/stores/form/_basic.html.erb +10 -7
- data/app/views/spree/admin/stores/form/_checkout.html.erb +5 -8
- data/app/views/spree/admin/tables/columns/_api_key_status.html.erb +2 -0
- data/app/views/spree/admin/tables/columns/_api_key_type.html.erb +2 -0
- data/app/views/spree/admin/taxonomies/show.html.erb +1 -1
- data/app/views/spree/admin/taxons/_form.html.erb +2 -2
- data/app/views/spree/admin/taxons/edit.html.erb +1 -2
- data/app/views/spree/admin/taxons/update.turbo_stream.erb +1 -1
- data/app/views/spree/admin/users/_billing.html.erb +2 -2
- data/app/views/spree/admin/users/_shipping.html.erb +1 -1
- data/app/views/spree/admin/variants/_variant.html.erb +1 -1
- data/config/brakeman.ignore +28 -0
- data/config/initializers/spree_admin_navigation.rb +16 -16
- data/config/initializers/spree_admin_tables.rb +94 -0
- data/config/locales/en.yml +31 -0
- data/config/routes.rb +6 -6
- data/lib/spree/admin/engine.rb +1 -0
- data/lib/spree/admin/tailwind_helper.rb +11 -1
- data/lib/spree/admin/testing_support/tom_select.rb +1 -1
- metadata +30 -27
- data/LICENSE.md +0 -13
- data/app/controllers/spree/admin/custom_domains_controller.rb +0 -21
- data/app/controllers/spree/admin/oauth_applications_controller.rb +0 -23
- data/app/views/spree/admin/custom_domains/_custom_domain.html.erb +0 -11
- data/app/views/spree/admin/custom_domains/_custom_domains.html.erb +0 -19
- data/app/views/spree/admin/custom_domains/_form.html.erb +0 -7
- data/app/views/spree/admin/custom_domains/index.html.erb +0 -65
- data/app/views/spree/admin/oauth_applications/_form.html.erb +0 -6
- data/app/views/spree/admin/oauth_applications/_table_header.html.erb +0 -7
- data/app/views/spree/admin/oauth_applications/_table_row.html.erb +0 -34
- data/app/views/spree/admin/oauth_applications/create.turbo_stream.erb +0 -31
- data/app/views/spree/admin/oauth_applications/edit.html.erb +0 -1
- data/app/views/spree/admin/oauth_applications/index.html.erb +0 -21
- data/app/views/spree/admin/oauth_applications/new.html.erb +0 -1
- data/app/views/spree/admin/products/form/_stores.html.erb +0 -27
- data/app/views/spree/admin/stores/new.html.erb +0 -128
- data/app/views/spree/admin/stores/new.turbo_stream.erb +0 -1
- /data/app/views/spree/admin/{custom_domains → api_keys}/edit.html.erb +0 -0
- /data/app/views/spree/admin/{custom_domains → api_keys}/new.html.erb +0 -0
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
<%= external_page_preview_link(@taxon, name: Spree.t(:taxonomy)) %>
|
|
8
8
|
<% end %>
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
<% form_url = admin_taxonomy_taxon_path(@taxonomy.id, @taxon.id) %>
|
|
10
|
+
<% form_url = admin_taxonomy_taxon_path(@taxonomy, @taxon) %>
|
|
12
11
|
|
|
13
12
|
<%= render partial: 'spree/admin/shared/error_messages', locals: { target: @taxon } %>
|
|
14
13
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<%= turbo_render_alerts %>
|
|
2
2
|
|
|
3
3
|
<%= turbo_stream.replace :classifications do %>
|
|
4
|
-
<%= turbo_frame_tag :classifications, src: spree.admin_taxon_classifications_path(@taxon
|
|
4
|
+
<%= turbo_frame_tag :classifications, src: spree.admin_taxon_classifications_path(@taxon) do %>
|
|
5
5
|
<%= render 'spree/admin/shared/spinner' %>
|
|
6
6
|
<% end %>
|
|
7
7
|
<% end %>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
</button>
|
|
14
14
|
<% else %>
|
|
15
15
|
<%= link_to_with_icon 'plus', Spree.t(:add),
|
|
16
|
-
spree.new_admin_address_path(user_id: @user.
|
|
16
|
+
spree.new_admin_address_path(user_id: @user.to_param, default_billing: true, type: 'billing'),
|
|
17
17
|
class: 'btn btn-light btn-sm',
|
|
18
18
|
data: { turbo_frame: :new_address_billing } if can?(:create, Spree::Address) && can?(:update, @user) %>
|
|
19
19
|
<% end %>
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
</div>
|
|
43
43
|
|
|
44
44
|
<div class="custom-control custom-radio">
|
|
45
|
-
<%= link_to spree.new_admin_address_path(user_id: @user.
|
|
45
|
+
<%= link_to spree.new_admin_address_path(user_id: @user.to_param, default_billing: true, type: 'billing'), data: { turbo_frame: :new_address_billing } do %>
|
|
46
46
|
<%= radio_button_tag :user_bill_address_id, nil, false,
|
|
47
47
|
id: 'user_bill_address_id_new_address',
|
|
48
48
|
class: 'custom-control-input' %>
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
data: { turbo_frame: :edit_address_shipping } if can?(:update, @user.shipping_address) %>
|
|
10
10
|
<% else %>
|
|
11
11
|
<%= link_to_with_icon 'plus', Spree.t(:add),
|
|
12
|
-
spree.new_admin_address_path(user_id: @user.
|
|
12
|
+
spree.new_admin_address_path(user_id: @user.to_param, default_shipping: true, type: 'shipping'),
|
|
13
13
|
class: 'btn btn-light btn-sm',
|
|
14
14
|
data: { turbo_frame: :new_address_shipping } if can?(:create, Spree::Address) && can?(:update, @user) %>
|
|
15
15
|
<% end %>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<% variant_url = spree.edit_admin_product_variant_path(variant.product, variant) %>
|
|
6
6
|
<% end %>
|
|
7
7
|
|
|
8
|
-
<%= link_to variant_url, id:
|
|
8
|
+
<%= link_to variant_url, id: dom_id(variant, 'spree'), data: { turbo_permanent: true, turbo_frame: :_top }, class: 'flex items-center justify-start no-underline' do %>
|
|
9
9
|
<%= render "spree/admin/shared/product_image", object: variant %>
|
|
10
10
|
<div class="ml-6">
|
|
11
11
|
<strong><%= variant.name %></strong>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ignored_warnings": [
|
|
3
|
+
{
|
|
4
|
+
"warning_type": "SQL Injection",
|
|
5
|
+
"warning_code": 0,
|
|
6
|
+
"fingerprint": "88419e0a9641c91da76b4b9030cf728cfea25fc84f9715a660f85ae805284d0d",
|
|
7
|
+
"check_name": "SQL",
|
|
8
|
+
"message": "Possible SQL injection",
|
|
9
|
+
"file": "lib/spree/admin/testing_support/capybara_utils.rb",
|
|
10
|
+
"line": 6,
|
|
11
|
+
"link": "https://brakemanscanner.org/docs/warning_types/sql_injection/",
|
|
12
|
+
"code": "first(\".ti-#{type}\")",
|
|
13
|
+
"render_path": null,
|
|
14
|
+
"location": {
|
|
15
|
+
"type": "method",
|
|
16
|
+
"class": "Spree::Admin::TestingSupport::CapybaraUtils",
|
|
17
|
+
"method": "click_icon"
|
|
18
|
+
},
|
|
19
|
+
"user_input": "type",
|
|
20
|
+
"confidence": "Medium",
|
|
21
|
+
"cwe_id": [
|
|
22
|
+
89
|
|
23
|
+
],
|
|
24
|
+
"note": "False positive: this is a Capybara CSS selector, not SQL"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"brakeman_version": "7.1.0"
|
|
28
|
+
}
|
|
@@ -258,15 +258,6 @@ Rails.application.config.after_initialize do
|
|
|
258
258
|
active: -> { controller_name == 'policies' },
|
|
259
259
|
if: -> { can?(:manage, Spree::Policy) }
|
|
260
260
|
|
|
261
|
-
# Domains
|
|
262
|
-
settings_nav.add :domains,
|
|
263
|
-
label: :domains,
|
|
264
|
-
url: :admin_custom_domains_path,
|
|
265
|
-
icon: 'world-www',
|
|
266
|
-
position: 60,
|
|
267
|
-
active: -> { controller_name == 'custom_domains' },
|
|
268
|
-
if: -> { can?(:manage, Spree::CustomDomain) }
|
|
269
|
-
|
|
270
261
|
# Payment Methods
|
|
271
262
|
settings_nav.add :payment_methods,
|
|
272
263
|
label: :payments,
|
|
@@ -276,11 +267,20 @@ Rails.application.config.after_initialize do
|
|
|
276
267
|
active: -> { controller_name == 'payment_methods' },
|
|
277
268
|
if: -> { can?(:manage, Spree::PaymentMethod) }
|
|
278
269
|
|
|
270
|
+
# Markets
|
|
271
|
+
settings_nav.add :markets,
|
|
272
|
+
label: :markets,
|
|
273
|
+
url: :admin_markets_path,
|
|
274
|
+
icon: 'world',
|
|
275
|
+
position: 78,
|
|
276
|
+
active: -> { controller_name == 'markets' },
|
|
277
|
+
if: -> { can?(:manage, Spree::Market) }
|
|
278
|
+
|
|
279
279
|
# Zones
|
|
280
280
|
settings_nav.add :zones,
|
|
281
281
|
label: :zones,
|
|
282
282
|
url: :admin_zones_path,
|
|
283
|
-
icon: '
|
|
283
|
+
icon: 'map-2',
|
|
284
284
|
position: 80,
|
|
285
285
|
active: -> { %w[zones countries states].include?(controller_name) },
|
|
286
286
|
if: -> { can?(:manage, Spree::Zone) }
|
|
@@ -346,11 +346,11 @@ Rails.application.config.after_initialize do
|
|
|
346
346
|
# Developers
|
|
347
347
|
settings_nav.add :developers,
|
|
348
348
|
label: :developers,
|
|
349
|
-
url: :
|
|
349
|
+
url: :admin_api_keys_path,
|
|
350
350
|
icon: 'terminal',
|
|
351
351
|
position: 150,
|
|
352
|
-
active: -> { %w[oauth_applications webhooks_subscribers webhook_endpoints webhook_deliveries].include?(controller_name) },
|
|
353
|
-
if: -> { can?(:manage, Spree::
|
|
352
|
+
active: -> { %w[oauth_applications api_keys webhooks_subscribers webhook_endpoints webhook_deliveries].include?(controller_name) },
|
|
353
|
+
if: -> { can?(:manage, Spree::ApiKey) }
|
|
354
354
|
|
|
355
355
|
# Edit Profile
|
|
356
356
|
settings_nav.add :edit_profile,
|
|
@@ -459,10 +459,10 @@ Rails.application.config.after_initialize do
|
|
|
459
459
|
|
|
460
460
|
developers_tabs_nav.add :api_keys,
|
|
461
461
|
label: :api_keys,
|
|
462
|
-
url: :
|
|
462
|
+
url: :admin_api_keys_path,
|
|
463
463
|
position: 10,
|
|
464
|
-
active: -> { controller_name == '
|
|
465
|
-
if: -> { can?(:manage, Spree::
|
|
464
|
+
active: -> { controller_name == 'api_keys' },
|
|
465
|
+
if: -> { can?(:manage, Spree::ApiKey) }
|
|
466
466
|
|
|
467
467
|
developers_tabs_nav.add :webhook_endpoints,
|
|
468
468
|
label: :webhook_endpoints,
|
|
@@ -1408,6 +1408,66 @@ Rails.application.config.after_initialize do
|
|
|
1408
1408
|
default: false,
|
|
1409
1409
|
position: 80
|
|
1410
1410
|
|
|
1411
|
+
# ==========================================
|
|
1412
|
+
# API Keys Table
|
|
1413
|
+
# ==========================================
|
|
1414
|
+
Spree.admin.tables.register(:api_keys, model_class: Spree::ApiKey, search_param: :name_cont, row_actions: false, link_to_action: :show)
|
|
1415
|
+
|
|
1416
|
+
Spree.admin.tables.api_keys.add :name,
|
|
1417
|
+
label: :name,
|
|
1418
|
+
type: :link,
|
|
1419
|
+
sortable: true,
|
|
1420
|
+
filterable: true,
|
|
1421
|
+
default: true,
|
|
1422
|
+
position: 10
|
|
1423
|
+
|
|
1424
|
+
Spree.admin.tables.api_keys.add :key_type,
|
|
1425
|
+
label: 'admin.api_keys.key_type',
|
|
1426
|
+
type: :custom,
|
|
1427
|
+
sortable: true,
|
|
1428
|
+
filterable: true,
|
|
1429
|
+
default: true,
|
|
1430
|
+
position: 20,
|
|
1431
|
+
partial: 'spree/admin/tables/columns/api_key_type',
|
|
1432
|
+
filter_type: :select,
|
|
1433
|
+
value_options: [
|
|
1434
|
+
{ value: 'publishable', label: 'Publishable' },
|
|
1435
|
+
{ value: 'secret', label: 'Secret' }
|
|
1436
|
+
]
|
|
1437
|
+
|
|
1438
|
+
Spree.admin.tables.api_keys.add :status,
|
|
1439
|
+
label: :status,
|
|
1440
|
+
type: :custom,
|
|
1441
|
+
sortable: false,
|
|
1442
|
+
filterable: false,
|
|
1443
|
+
default: true,
|
|
1444
|
+
position: 30,
|
|
1445
|
+
partial: 'spree/admin/tables/columns/api_key_status'
|
|
1446
|
+
|
|
1447
|
+
Spree.admin.tables.api_keys.add :last_used_at,
|
|
1448
|
+
label: 'admin.api_keys.last_used_at',
|
|
1449
|
+
type: :datetime,
|
|
1450
|
+
sortable: true,
|
|
1451
|
+
filterable: false,
|
|
1452
|
+
default: true,
|
|
1453
|
+
position: 40
|
|
1454
|
+
|
|
1455
|
+
Spree.admin.tables.api_keys.add :created_at,
|
|
1456
|
+
label: :created_at,
|
|
1457
|
+
type: :datetime,
|
|
1458
|
+
sortable: true,
|
|
1459
|
+
filterable: true,
|
|
1460
|
+
default: true,
|
|
1461
|
+
position: 50
|
|
1462
|
+
|
|
1463
|
+
Spree.admin.tables.api_keys.add :updated_at,
|
|
1464
|
+
label: :updated_at,
|
|
1465
|
+
type: :datetime,
|
|
1466
|
+
sortable: true,
|
|
1467
|
+
filterable: true,
|
|
1468
|
+
default: false,
|
|
1469
|
+
position: 60
|
|
1470
|
+
|
|
1411
1471
|
# ==========================================
|
|
1412
1472
|
# Price Lists Table
|
|
1413
1473
|
# ==========================================
|
|
@@ -1619,4 +1679,38 @@ Rails.application.config.after_initialize do
|
|
|
1619
1679
|
button_class: 'btn-danger',
|
|
1620
1680
|
method: :delete,
|
|
1621
1681
|
position: 10
|
|
1682
|
+
|
|
1683
|
+
# ==========================================
|
|
1684
|
+
# Register Markets table
|
|
1685
|
+
# ==========================================
|
|
1686
|
+
Spree.admin.tables.register(:markets, model_class: Spree::Market, search_param: :name_cont)
|
|
1687
|
+
|
|
1688
|
+
Spree.admin.tables.markets.add :name,
|
|
1689
|
+
label: :name,
|
|
1690
|
+
type: :string,
|
|
1691
|
+
sortable: true,
|
|
1692
|
+
filterable: true,
|
|
1693
|
+
default: true,
|
|
1694
|
+
position: 10
|
|
1695
|
+
|
|
1696
|
+
Spree.admin.tables.markets.add :currency,
|
|
1697
|
+
label: :currency,
|
|
1698
|
+
type: :string,
|
|
1699
|
+
sortable: true,
|
|
1700
|
+
default: true,
|
|
1701
|
+
position: 20
|
|
1702
|
+
|
|
1703
|
+
Spree.admin.tables.markets.add :default_locale,
|
|
1704
|
+
label: :default_locale,
|
|
1705
|
+
type: :string,
|
|
1706
|
+
sortable: true,
|
|
1707
|
+
default: true,
|
|
1708
|
+
position: 30
|
|
1709
|
+
|
|
1710
|
+
Spree.admin.tables.markets.add :default,
|
|
1711
|
+
label: :default,
|
|
1712
|
+
type: :boolean,
|
|
1713
|
+
sortable: true,
|
|
1714
|
+
default: true,
|
|
1715
|
+
position: 40
|
|
1622
1716
|
end
|
data/config/locales/en.yml
CHANGED
|
@@ -3,6 +3,31 @@ en:
|
|
|
3
3
|
spree:
|
|
4
4
|
admin:
|
|
5
5
|
amount_spent: Amount spent
|
|
6
|
+
api_keys:
|
|
7
|
+
example_request: Example Request
|
|
8
|
+
key_revoked_message: This API key has been revoked and can no longer be used.
|
|
9
|
+
key_type_descriptions:
|
|
10
|
+
publishable: Safe to use in client-side code like mobile apps or browsers.
|
|
11
|
+
secret: Keep this secure and only use it server-side. Never expose it publicly.
|
|
12
|
+
key_types:
|
|
13
|
+
publishable: Publishable
|
|
14
|
+
secret: Secret
|
|
15
|
+
last_used_at: Last used
|
|
16
|
+
list: API Keys
|
|
17
|
+
name_placeholder: e.g. Mobile App Production
|
|
18
|
+
revoke: Revoke
|
|
19
|
+
revoke_confirmation: Are you sure you want to revoke this API key? This action cannot be undone.
|
|
20
|
+
revoked: API key has been revoked
|
|
21
|
+
revoked_at: Revoked at
|
|
22
|
+
revoked_by: Revoked by
|
|
23
|
+
statuses:
|
|
24
|
+
active: Active
|
|
25
|
+
revoked: Revoked
|
|
26
|
+
token_warning: Store this key securely. It will be shown only this once.
|
|
27
|
+
usage: Usage
|
|
28
|
+
usage_instructions:
|
|
29
|
+
publishable: Use this key for client-side requests. It can be safely included in your frontend code.
|
|
30
|
+
secret: Use this key for server-side requests only. Keep it confidential and never expose it in client-side code.
|
|
6
31
|
audit_log: Audit Log
|
|
7
32
|
avg_order_value: Avg. Order Value
|
|
8
33
|
back_to_dashboard: Back to dashboard
|
|
@@ -49,6 +74,7 @@ en:
|
|
|
49
74
|
description: Links to these pages will be displayed in the checkout footer.
|
|
50
75
|
label: Checkout links
|
|
51
76
|
checkout_message_description: Visible to your customers on the checkout page in the right sidebar.
|
|
77
|
+
countries_managed_by_markets_html: Countries and shipping zones are managed through %{link}.
|
|
52
78
|
guest_checkout:
|
|
53
79
|
description: Allow customers to checkout without creating an account.
|
|
54
80
|
label: Allow guest checkout
|
|
@@ -118,6 +144,11 @@ en:
|
|
|
118
144
|
manage_stock_locations: Manage Stock Locations
|
|
119
145
|
manage_taxons: Manage Taxons
|
|
120
146
|
manage_zones: Manage Zones
|
|
147
|
+
markets:
|
|
148
|
+
edit: Edit Market
|
|
149
|
+
list: Markets
|
|
150
|
+
new: New Market
|
|
151
|
+
supported_locales_hint: Comma-separated list of additional locale codes (e.g. fr,de,es)
|
|
121
152
|
metafield_definitions:
|
|
122
153
|
edit_warning: You can't change the resource type or metafield type after the definition has been used.
|
|
123
154
|
used_in: Used in
|
data/config/routes.rb
CHANGED
|
@@ -208,9 +208,6 @@ Spree::Core::Engine.add_routes do
|
|
|
208
208
|
member do
|
|
209
209
|
get :edit_emails
|
|
210
210
|
end
|
|
211
|
-
end
|
|
212
|
-
# setting up a new store
|
|
213
|
-
resources :stores, only: [:new, :create] do
|
|
214
211
|
resources :role_users, only: [:destroy]
|
|
215
212
|
resources :links, controller: 'page_links', only: [:create]
|
|
216
213
|
end
|
|
@@ -224,14 +221,13 @@ Spree::Core::Engine.add_routes do
|
|
|
224
221
|
resources :reimbursement_types
|
|
225
222
|
resources :refund_reasons, except: :show
|
|
226
223
|
resources :return_authorization_reasons, except: :show
|
|
224
|
+
resources :markets
|
|
227
225
|
resources :zones
|
|
228
226
|
resources :stock_locations, except: :show do
|
|
229
227
|
member do
|
|
230
228
|
put :mark_as_default
|
|
231
229
|
end
|
|
232
230
|
end
|
|
233
|
-
resources :custom_domains, except: :show
|
|
234
|
-
|
|
235
231
|
# integrations
|
|
236
232
|
resources :integrations
|
|
237
233
|
|
|
@@ -266,7 +262,11 @@ Spree::Core::Engine.add_routes do
|
|
|
266
262
|
end
|
|
267
263
|
|
|
268
264
|
# developer tools
|
|
269
|
-
resources :
|
|
265
|
+
resources :api_keys, except: :destroy do
|
|
266
|
+
member do
|
|
267
|
+
put :revoke
|
|
268
|
+
end
|
|
269
|
+
end
|
|
270
270
|
resources :webhook_endpoints do
|
|
271
271
|
resources :webhook_deliveries, only: [:index, :show]
|
|
272
272
|
end
|
data/lib/spree/admin/engine.rb
CHANGED
|
@@ -22,6 +22,16 @@ module Spree
|
|
|
22
22
|
css = File.read(input_path)
|
|
23
23
|
css = css.gsub("$SPREE_ADMIN_PATH", Spree::Admin::Engine.root.to_s)
|
|
24
24
|
css = css.gsub("/* $SPREE_ENGINE_SOURCES */", spree_engine_sources)
|
|
25
|
+
|
|
26
|
+
# Resolve relative @source paths to absolute paths since the resolved
|
|
27
|
+
# CSS is written to tmp/ which changes the relative path base
|
|
28
|
+
source_base = input_path.dirname
|
|
29
|
+
css = css.gsub(%r{@source\s+"(\.\./[^"]+)"}) do |_match|
|
|
30
|
+
relative = Regexp.last_match(1)
|
|
31
|
+
absolute = File.expand_path(relative, source_base)
|
|
32
|
+
%(@source "#{absolute}")
|
|
33
|
+
end
|
|
34
|
+
|
|
25
35
|
css
|
|
26
36
|
end
|
|
27
37
|
|
|
@@ -33,7 +43,7 @@ module Spree
|
|
|
33
43
|
|
|
34
44
|
def spree_engines
|
|
35
45
|
Rails::Engine.subclasses.select do |engine|
|
|
36
|
-
engine.name&.start_with?("Spree::")
|
|
46
|
+
engine.name&.start_with?("Spree::")
|
|
37
47
|
end
|
|
38
48
|
end
|
|
39
49
|
|
|
@@ -8,7 +8,7 @@ module Spree
|
|
|
8
8
|
if create
|
|
9
9
|
first('.ts-dropdown .ts-dropdown-content .create.active').click
|
|
10
10
|
else
|
|
11
|
-
|
|
11
|
+
find('.ts-dropdown .ts-dropdown-content .option', text: /#{Regexp.quote(value)}/i, match: :first).click
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
end
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spree_admin
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.
|
|
4
|
+
version: 5.4.0.beta
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vendo Connect Inc.
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2026-02-25 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: spree
|
|
@@ -15,14 +16,14 @@ dependencies:
|
|
|
15
16
|
requirements:
|
|
16
17
|
- - ">="
|
|
17
18
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 5.
|
|
19
|
+
version: 5.4.0.beta
|
|
19
20
|
type: :runtime
|
|
20
21
|
prerelease: false
|
|
21
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
23
|
requirements:
|
|
23
24
|
- - ">="
|
|
24
25
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 5.
|
|
26
|
+
version: 5.4.0.beta
|
|
26
27
|
- !ruby/object:Gem::Dependency
|
|
27
28
|
name: active_link_to
|
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -240,7 +241,6 @@ executables: []
|
|
|
240
241
|
extensions: []
|
|
241
242
|
extra_rdoc_files: []
|
|
242
243
|
files:
|
|
243
|
-
- LICENSE.md
|
|
244
244
|
- README.md
|
|
245
245
|
- Rakefile
|
|
246
246
|
- app/assets/config/spree_admin_manifest.js
|
|
@@ -296,6 +296,7 @@ files:
|
|
|
296
296
|
- app/controllers/spree/admin/action_text/video_embeds_controller.rb
|
|
297
297
|
- app/controllers/spree/admin/addresses_controller.rb
|
|
298
298
|
- app/controllers/spree/admin/admin_users_controller.rb
|
|
299
|
+
- app/controllers/spree/admin/api_keys_controller.rb
|
|
299
300
|
- app/controllers/spree/admin/assets_controller.rb
|
|
300
301
|
- app/controllers/spree/admin/base_controller.rb
|
|
301
302
|
- app/controllers/spree/admin/bulk_operations_controller.rb
|
|
@@ -303,7 +304,6 @@ files:
|
|
|
303
304
|
- app/controllers/spree/admin/classifications_controller.rb
|
|
304
305
|
- app/controllers/spree/admin/countries_controller.rb
|
|
305
306
|
- app/controllers/spree/admin/coupon_codes_controller.rb
|
|
306
|
-
- app/controllers/spree/admin/custom_domains_controller.rb
|
|
307
307
|
- app/controllers/spree/admin/customer_group_users_controller.rb
|
|
308
308
|
- app/controllers/spree/admin/customer_groups_controller.rb
|
|
309
309
|
- app/controllers/spree/admin/customer_returns_controller.rb
|
|
@@ -320,10 +320,10 @@ files:
|
|
|
320
320
|
- app/controllers/spree/admin/invitations_controller.rb
|
|
321
321
|
- app/controllers/spree/admin/json_previews_controller.rb
|
|
322
322
|
- app/controllers/spree/admin/line_items_controller.rb
|
|
323
|
+
- app/controllers/spree/admin/markets_controller.rb
|
|
323
324
|
- app/controllers/spree/admin/metafield_definitions_controller.rb
|
|
324
325
|
- app/controllers/spree/admin/metafields_controller.rb
|
|
325
326
|
- app/controllers/spree/admin/newsletter_subscribers_controller.rb
|
|
326
|
-
- app/controllers/spree/admin/oauth_applications_controller.rb
|
|
327
327
|
- app/controllers/spree/admin/option_types_controller.rb
|
|
328
328
|
- app/controllers/spree/admin/option_values_controller.rb
|
|
329
329
|
- app/controllers/spree/admin/orders/adjustments_controller.rb
|
|
@@ -385,6 +385,7 @@ files:
|
|
|
385
385
|
- app/controllers/spree/admin/webhook_deliveries_controller.rb
|
|
386
386
|
- app/controllers/spree/admin/webhook_endpoints_controller.rb
|
|
387
387
|
- app/controllers/spree/admin/zones_controller.rb
|
|
388
|
+
- app/helpers/spree/admin/api_keys_helper.rb
|
|
388
389
|
- app/helpers/spree/admin/assets_helper.rb
|
|
389
390
|
- app/helpers/spree/admin/avatars_helper.rb
|
|
390
391
|
- app/helpers/spree/admin/base_helper.rb
|
|
@@ -519,6 +520,14 @@ files:
|
|
|
519
520
|
- app/views/spree/admin/admin_users/index.html.erb
|
|
520
521
|
- app/views/spree/admin/admin_users/new.html.erb
|
|
521
522
|
- app/views/spree/admin/admin_users/show.html.erb
|
|
523
|
+
- app/views/spree/admin/api_keys/_details.html.erb
|
|
524
|
+
- app/views/spree/admin/api_keys/_form.html.erb
|
|
525
|
+
- app/views/spree/admin/api_keys/_token_card.html.erb
|
|
526
|
+
- app/views/spree/admin/api_keys/_usage_info.html.erb
|
|
527
|
+
- app/views/spree/admin/api_keys/edit.html.erb
|
|
528
|
+
- app/views/spree/admin/api_keys/index.html.erb
|
|
529
|
+
- app/views/spree/admin/api_keys/new.html.erb
|
|
530
|
+
- app/views/spree/admin/api_keys/show.html.erb
|
|
522
531
|
- app/views/spree/admin/assets/bulk_destroy.turbo_stream.erb
|
|
523
532
|
- app/views/spree/admin/assets/create.turbo_stream.erb
|
|
524
533
|
- app/views/spree/admin/assets/destroy.turbo_stream.erb
|
|
@@ -539,12 +548,6 @@ files:
|
|
|
539
548
|
- app/views/spree/admin/coupon_codes/_table_row.html.erb
|
|
540
549
|
- app/views/spree/admin/coupon_codes/index.csv.erb
|
|
541
550
|
- app/views/spree/admin/coupon_codes/index.html.erb
|
|
542
|
-
- app/views/spree/admin/custom_domains/_custom_domain.html.erb
|
|
543
|
-
- app/views/spree/admin/custom_domains/_custom_domains.html.erb
|
|
544
|
-
- app/views/spree/admin/custom_domains/_form.html.erb
|
|
545
|
-
- app/views/spree/admin/custom_domains/edit.html.erb
|
|
546
|
-
- app/views/spree/admin/custom_domains/index.html.erb
|
|
547
|
-
- app/views/spree/admin/custom_domains/new.html.erb
|
|
548
551
|
- app/views/spree/admin/customer_group_users/bulk_create.turbo_stream.erb
|
|
549
552
|
- app/views/spree/admin/customer_group_users/bulk_destroy.turbo_stream.erb
|
|
550
553
|
- app/views/spree/admin/customer_group_users/bulk_new.html.erb
|
|
@@ -627,6 +630,10 @@ files:
|
|
|
627
630
|
- app/views/spree/admin/json_previews/show.html.erb
|
|
628
631
|
- app/views/spree/admin/line_items/edit.html.erb
|
|
629
632
|
- app/views/spree/admin/line_items/new.html.erb
|
|
633
|
+
- app/views/spree/admin/markets/_form.html.erb
|
|
634
|
+
- app/views/spree/admin/markets/edit.html.erb
|
|
635
|
+
- app/views/spree/admin/markets/index.html.erb
|
|
636
|
+
- app/views/spree/admin/markets/new.html.erb
|
|
630
637
|
- app/views/spree/admin/metafield_definitions/_filters.html.erb
|
|
631
638
|
- app/views/spree/admin/metafield_definitions/_form.html.erb
|
|
632
639
|
- app/views/spree/admin/metafield_definitions/_table_header.html.erb
|
|
@@ -647,13 +654,6 @@ files:
|
|
|
647
654
|
- app/views/spree/admin/newsletter_subscribers/_table_header.html.erb
|
|
648
655
|
- app/views/spree/admin/newsletter_subscribers/_table_row.html.erb
|
|
649
656
|
- app/views/spree/admin/newsletter_subscribers/index.html.erb
|
|
650
|
-
- app/views/spree/admin/oauth_applications/_form.html.erb
|
|
651
|
-
- app/views/spree/admin/oauth_applications/_table_header.html.erb
|
|
652
|
-
- app/views/spree/admin/oauth_applications/_table_row.html.erb
|
|
653
|
-
- app/views/spree/admin/oauth_applications/create.turbo_stream.erb
|
|
654
|
-
- app/views/spree/admin/oauth_applications/edit.html.erb
|
|
655
|
-
- app/views/spree/admin/oauth_applications/index.html.erb
|
|
656
|
-
- app/views/spree/admin/oauth_applications/new.html.erb
|
|
657
657
|
- app/views/spree/admin/option_types/_filters.html.erb
|
|
658
658
|
- app/views/spree/admin/option_types/_form.html.erb
|
|
659
659
|
- app/views/spree/admin/option_types/_option_value_fields.html.erb
|
|
@@ -792,6 +792,7 @@ files:
|
|
|
792
792
|
- app/views/spree/admin/price_rules/_price_rule.html.erb
|
|
793
793
|
- app/views/spree/admin/price_rules/edit.html.erb
|
|
794
794
|
- app/views/spree/admin/price_rules/forms/_customer_group_rule.html.erb
|
|
795
|
+
- app/views/spree/admin/price_rules/forms/_market_rule.html.erb
|
|
795
796
|
- app/views/spree/admin/price_rules/forms/_user_rule.html.erb
|
|
796
797
|
- app/views/spree/admin/price_rules/forms/_volume_rule.html.erb
|
|
797
798
|
- app/views/spree/admin/price_rules/forms/_zone_rule.html.erb
|
|
@@ -813,7 +814,6 @@ files:
|
|
|
813
814
|
- app/views/spree/admin/products/form/_properties.html.erb
|
|
814
815
|
- app/views/spree/admin/products/form/_shipping.html.erb
|
|
815
816
|
- app/views/spree/admin/products/form/_status.html.erb
|
|
816
|
-
- app/views/spree/admin/products/form/_stores.html.erb
|
|
817
817
|
- app/views/spree/admin/products/form/_tax.html.erb
|
|
818
818
|
- app/views/spree/admin/products/form/_variants.html.erb
|
|
819
819
|
- app/views/spree/admin/products/form/variants/_option_template.html.erb
|
|
@@ -1044,8 +1044,6 @@ files:
|
|
|
1044
1044
|
- app/views/spree/admin/stores/form/_checkout_links.html.erb
|
|
1045
1045
|
- app/views/spree/admin/stores/form/_emails.html.erb
|
|
1046
1046
|
- app/views/spree/admin/stores/form/_policies.html.erb
|
|
1047
|
-
- app/views/spree/admin/stores/new.html.erb
|
|
1048
|
-
- app/views/spree/admin/stores/new.turbo_stream.erb
|
|
1049
1047
|
- app/views/spree/admin/stores/update.turbo_stream.erb
|
|
1050
1048
|
- app/views/spree/admin/tables/_column_selector.html.erb
|
|
1051
1049
|
- app/views/spree/admin/tables/_filter_group.html.erb
|
|
@@ -1055,6 +1053,8 @@ files:
|
|
|
1055
1053
|
- app/views/spree/admin/tables/_table.html.erb
|
|
1056
1054
|
- app/views/spree/admin/tables/_table_body.html.erb
|
|
1057
1055
|
- app/views/spree/admin/tables/_table_row.html.erb
|
|
1056
|
+
- app/views/spree/admin/tables/columns/_api_key_status.html.erb
|
|
1057
|
+
- app/views/spree/admin/tables/columns/_api_key_type.html.erb
|
|
1058
1058
|
- app/views/spree/admin/tables/columns/_gift_card_status.html.erb
|
|
1059
1059
|
- app/views/spree/admin/tables/columns/_metafield_definition_display_on.html.erb
|
|
1060
1060
|
- app/views/spree/admin/tables/columns/_newsletter_subscriber_customer.html.erb
|
|
@@ -1172,6 +1172,7 @@ files:
|
|
|
1172
1172
|
- app/views/spree/admin/zones/edit.html.erb
|
|
1173
1173
|
- app/views/spree/admin/zones/index.html.erb
|
|
1174
1174
|
- app/views/spree/admin/zones/new.html.erb
|
|
1175
|
+
- config/brakeman.ignore
|
|
1175
1176
|
- config/i18n-tasks.yml
|
|
1176
1177
|
- config/importmap.rb
|
|
1177
1178
|
- config/initializers/action_text.rb
|
|
@@ -1254,12 +1255,13 @@ files:
|
|
|
1254
1255
|
- vendor/javascript/w3c-keyname.js
|
|
1255
1256
|
homepage: https://getvendo.com
|
|
1256
1257
|
licenses:
|
|
1257
|
-
-
|
|
1258
|
+
- BSD-3-Clause
|
|
1258
1259
|
metadata:
|
|
1259
1260
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
|
1260
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v5.
|
|
1261
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.beta
|
|
1261
1262
|
documentation_uri: https://docs.spreecommerce.org/
|
|
1262
|
-
source_code_uri: https://github.com/spree/spree/tree/v5.
|
|
1263
|
+
source_code_uri: https://github.com/spree/spree/tree/v5.4.0.beta
|
|
1264
|
+
post_install_message:
|
|
1263
1265
|
rdoc_options: []
|
|
1264
1266
|
require_paths:
|
|
1265
1267
|
- lib
|
|
@@ -1274,7 +1276,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1274
1276
|
- !ruby/object:Gem::Version
|
|
1275
1277
|
version: '0'
|
|
1276
1278
|
requirements: []
|
|
1277
|
-
rubygems_version:
|
|
1279
|
+
rubygems_version: 3.5.22
|
|
1280
|
+
signing_key:
|
|
1278
1281
|
specification_version: 4
|
|
1279
1282
|
summary: Admin Dashboard for Spree Commerce developed by Vendo Connect Inc.
|
|
1280
1283
|
test_files: []
|
data/LICENSE.md
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# License
|
|
2
|
-
|
|
3
|
-
Copyright © 2024-present, Vendo Connect Inc.
|
|
4
|
-
|
|
5
|
-
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
|
6
|
-
|
|
7
|
-
This program is distributed in the hope that it will be useful,
|
|
8
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
10
|
-
GNU Affero General Public License for more details.
|
|
11
|
-
|
|
12
|
-
You should have received a copy of the GNU Affero General Public License
|
|
13
|
-
along with this program. If not, see [https://www.gnu.org/licenses/](https://www.gnu.org/licenses/).
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Admin
|
|
3
|
-
class CustomDomainsController < ResourceController
|
|
4
|
-
include Spree::Admin::SettingsConcern
|
|
5
|
-
|
|
6
|
-
protected
|
|
7
|
-
|
|
8
|
-
def collection_url
|
|
9
|
-
spree.admin_custom_domains_path
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def location_after_save
|
|
13
|
-
spree.admin_custom_domains_path
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def permitted_resource_params
|
|
17
|
-
params.require(:custom_domain).permit(Spree::PermittedAttributes.custom_domain_attributes)
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Admin
|
|
3
|
-
class OauthApplicationsController < ResourceController
|
|
4
|
-
include Spree::Admin::SettingsConcern
|
|
5
|
-
|
|
6
|
-
before_action :set_default_scopes, only: [:new, :edit]
|
|
7
|
-
|
|
8
|
-
private
|
|
9
|
-
|
|
10
|
-
def create_turbo_stream_enabled?
|
|
11
|
-
true
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def set_default_scopes
|
|
15
|
-
@object.scopes = 'admin' if @object.scopes.blank?
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def permitted_resource_params
|
|
19
|
-
params.require(:oauth_application).permit(:name, :scopes)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|