spree_admin 5.0.3 → 5.1.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/app/assets/images/login_sidebar_background.png +0 -0
- data/app/assets/stylesheets/spree/admin/components/_bulk_panel.scss +8 -1
- data/app/assets/stylesheets/spree/admin/components/_buttons.scss +12 -20
- data/app/assets/stylesheets/spree/admin/components/_cards.scss +9 -3
- data/app/assets/stylesheets/spree/admin/components/_dropdowns.scss +13 -40
- data/app/assets/stylesheets/spree/admin/components/_filters.scss +32 -3
- data/app/assets/stylesheets/spree/admin/components/_main.scss +107 -31
- data/app/assets/stylesheets/spree/admin/components/_media_form.scss +21 -9
- data/app/assets/stylesheets/spree/admin/components/_modals.scss +4 -3
- data/app/assets/stylesheets/spree/admin/components/_navbar.scss +5 -9
- data/app/assets/stylesheets/spree/admin/components/_navigation.scss +0 -1
- data/app/assets/stylesheets/spree/admin/components/_sortable_tree.scss +6 -2
- data/app/assets/stylesheets/spree/admin/components/_tables.scss +35 -5
- data/app/assets/stylesheets/spree/admin/global/_variables.scss +37 -17
- data/app/assets/stylesheets/spree/admin/plugins/tom-select.bootstrap4.scss +5 -4
- data/app/assets/stylesheets/spree/admin/shared/_base.scss +50 -17
- data/app/assets/stylesheets/spree/admin/shared/_forms.scss +6 -2
- data/app/assets/stylesheets/spree/admin/views/_page_builder.scss +30 -21
- data/app/controllers/concerns/spree/admin/breadcrumb_concern.rb +22 -0
- data/app/controllers/concerns/spree/admin/preferences_concern.rb +22 -0
- data/app/controllers/concerns/spree/admin/products_breadcrumb_concern.rb +22 -0
- data/app/controllers/concerns/spree/admin/promotions_breadcrumb_concern.rb +23 -0
- data/app/controllers/concerns/spree/admin/storefront_breadcrumb_concern.rb +12 -0
- data/app/controllers/spree/admin/addresses_controller.rb +4 -0
- data/app/controllers/spree/admin/admin_users_controller.rb +112 -0
- data/app/controllers/spree/admin/assets_controller.rb +7 -9
- data/app/controllers/spree/admin/base_controller.rb +21 -10
- data/app/controllers/spree/admin/checkouts_controller.rb +4 -0
- data/app/controllers/spree/admin/classifications_controller.rb +4 -0
- data/app/controllers/spree/admin/coupon_codes_controller.rb +2 -0
- data/app/controllers/spree/admin/custom_domains_controller.rb +6 -0
- data/app/controllers/spree/admin/customer_returns_controller.rb +4 -0
- data/app/controllers/spree/admin/dashboard_controller.rb +19 -14
- data/app/controllers/spree/admin/digital_assets_controller.rb +8 -0
- data/app/controllers/spree/admin/exports_controller.rb +6 -2
- data/app/controllers/spree/admin/integrations_controller.rb +61 -0
- data/app/controllers/spree/admin/invitations_controller.rb +128 -0
- data/app/controllers/spree/admin/line_items_controller.rb +4 -0
- data/app/controllers/spree/admin/oauth_applications_controller.rb +6 -0
- data/app/controllers/spree/admin/option_types_controller.rb +15 -0
- data/app/controllers/spree/admin/option_values_controller.rb +4 -0
- data/app/controllers/spree/admin/orders/return_authorizations_controller.rb +4 -0
- data/app/controllers/spree/admin/orders_controller.rb +11 -0
- data/app/controllers/spree/admin/page_blocks_controller.rb +3 -2
- data/app/controllers/spree/admin/page_links_controller.rb +9 -0
- data/app/controllers/spree/admin/page_sections_controller.rb +13 -4
- data/app/controllers/spree/admin/pages_controller.rb +7 -0
- data/app/controllers/spree/admin/payment_methods_controller.rb +23 -12
- data/app/controllers/spree/admin/post_categories_controller.rb +3 -0
- data/app/controllers/spree/admin/posts_controller.rb +11 -0
- data/app/controllers/spree/admin/products_controller.rb +11 -8
- data/app/controllers/spree/admin/promotion_actions_controller.rb +10 -2
- data/app/controllers/spree/admin/promotion_rules_controller.rb +10 -2
- data/app/controllers/spree/admin/promotions_controller.rb +6 -0
- data/app/controllers/spree/admin/properties_controller.rb +15 -0
- data/app/controllers/spree/admin/refund_reasons_controller.rb +7 -0
- data/app/controllers/spree/admin/refunds_controller.rb +4 -0
- data/app/controllers/spree/admin/reimbursement_types_controller.rb +7 -0
- data/app/controllers/spree/admin/reimbursements_controller.rb +4 -0
- data/app/controllers/spree/admin/reports_controller.rb +12 -2
- data/app/controllers/spree/admin/resource_controller.rb +1 -1
- data/app/controllers/spree/admin/return_authorization_reasons_controller.rb +7 -0
- data/app/controllers/spree/admin/return_authorizations_controller.rb +4 -0
- data/app/controllers/spree/admin/return_items_controller.rb +6 -0
- data/app/controllers/spree/admin/role_users_controller.rb +36 -0
- data/app/controllers/spree/admin/roles_controller.rb +8 -0
- data/app/controllers/spree/admin/shipments_controller.rb +2 -2
- data/app/controllers/spree/admin/shipping_categories_controller.rb +7 -0
- data/app/controllers/spree/admin/shipping_methods_controller.rb +6 -0
- data/app/controllers/spree/admin/stock_items_controller.rb +13 -0
- data/app/controllers/spree/admin/stock_locations_controller.rb +7 -0
- data/app/controllers/spree/admin/stock_transfers_controller.rb +14 -2
- data/app/controllers/spree/admin/store_credit_categories_controller.rb +5 -0
- data/app/controllers/spree/admin/store_credits_controller.rb +4 -0
- data/app/controllers/spree/admin/storefront_controller.rb +3 -0
- data/app/controllers/spree/admin/stores_controller.rb +17 -2
- data/app/controllers/spree/admin/tax_categories_controller.rb +7 -0
- data/app/controllers/spree/admin/tax_rates_controller.rb +6 -0
- data/app/controllers/spree/admin/taxonomies_controller.rb +15 -0
- data/app/controllers/spree/admin/taxons_controller.rb +24 -1
- data/app/controllers/spree/admin/themes_controller.rb +7 -0
- data/app/controllers/spree/admin/translations_controller.rb +9 -1
- data/app/controllers/spree/admin/user_passwords_controller.rb +22 -0
- data/app/controllers/spree/admin/user_sessions_controller.rb +23 -0
- data/app/controllers/spree/admin/users_controller.rb +11 -2
- data/app/controllers/spree/admin/variants_controller.rb +13 -0
- data/app/controllers/spree/admin/webhooks_subscribers_controller.rb +34 -12
- data/app/controllers/spree/admin/zones_controller.rb +5 -0
- data/app/helpers/spree/admin/base_helper.rb +33 -32
- data/app/helpers/spree/admin/bulk_operations_helper.rb +8 -2
- data/app/helpers/spree/admin/modal_helper.rb +1 -1
- data/app/helpers/spree/admin/navigation_helper.rb +12 -6
- data/app/helpers/spree/admin/posts_helper.rb +1 -1
- data/app/helpers/spree/admin/session_assets_helper.rb +1 -1
- data/app/helpers/spree/admin/stores_helper.rb +1 -18
- data/app/helpers/spree/admin/tags_helper.rb +2 -2
- data/app/javascript/spree/admin/application.js +2 -2
- data/app/javascript/spree/admin/controllers/asset_uploader_controller.js +3 -2
- data/app/javascript/spree/admin/controllers/variants_form_controller.js +3 -2
- data/app/javascript/spree/admin/helpers/bootstrap.js +3 -3
- data/app/javascript/spree/admin/helpers/trix/video_embed.js +2 -2
- data/app/views/active_storage/_upload_form.html.erb +1 -1
- data/app/views/layouts/spree/minimal.html.erb +22 -0
- data/app/views/spree/admin/admin_users/_admin_user.html.erb +19 -0
- data/app/views/spree/admin/admin_users/_audit_log.html.erb +5 -0
- data/app/views/spree/admin/admin_users/_form.html.erb +12 -0
- data/app/views/spree/admin/admin_users/edit.html.erb +35 -0
- data/app/views/spree/admin/admin_users/index.html.erb +18 -0
- data/app/views/spree/admin/admin_users/new.html.erb +21 -0
- data/app/views/spree/admin/admin_users/show.html.erb +113 -0
- data/app/views/spree/admin/coupon_codes/index.html.erb +6 -6
- data/app/views/spree/admin/custom_domains/_custom_domains.html.erb +1 -1
- data/app/views/spree/admin/customer_returns/index.html.erb +1 -1
- data/app/views/spree/admin/dashboard/_store_preview.html.erb +1 -1
- data/app/views/spree/admin/dashboard/_top_products.html.erb +5 -3
- data/app/views/spree/admin/digital_assets/_table.html.erb +1 -1
- data/app/views/spree/admin/digital_assets/index.html.erb +0 -1
- data/app/views/spree/admin/exports/index.html.erb +1 -1
- data/app/views/spree/admin/integrations/_integration.html.erb +36 -0
- data/app/views/spree/admin/integrations/edit.html.erb +11 -0
- data/app/views/spree/admin/integrations/index.html.erb +23 -0
- data/app/views/spree/admin/integrations/new.html.erb +14 -0
- data/app/views/spree/admin/invitations/_invitation.html.erb +52 -0
- data/app/views/spree/admin/invitations/create.turbo_stream.erb +4 -0
- data/app/views/spree/admin/invitations/index.html.erb +21 -0
- data/app/views/spree/admin/invitations/new.html.erb +32 -0
- data/app/views/spree/admin/invitations/show.html.erb +9 -0
- data/app/views/spree/admin/line_items/new.html.erb +2 -2
- data/app/views/spree/admin/oauth_applications/index.html.erb +1 -1
- data/app/views/spree/admin/option_types/edit.html.erb +1 -1
- data/app/views/spree/admin/option_types/index.html.erb +1 -1
- data/app/views/spree/admin/orders/_customer.html.erb +1 -2
- data/app/views/spree/admin/orders/_filters.html.erb +28 -22
- data/app/views/spree/admin/orders/_list.html.erb +1 -1
- data/app/views/spree/admin/orders/_refunds.html.erb +1 -1
- data/app/views/spree/admin/orders/_shipment.html.erb +1 -1
- data/app/views/spree/admin/orders/_summary.html.erb +1 -1
- data/app/views/spree/admin/orders/_table_filter_dropdown.html.erb +2 -2
- data/app/views/spree/admin/orders/customer_returns/_customer_return.html.erb +1 -1
- data/app/views/spree/admin/orders/customer_returns/_return_item_decision.html.erb +1 -1
- data/app/views/spree/admin/orders/return_authorizations/_form.html.erb +1 -1
- data/app/views/spree/admin/orders/return_authorizations/show.html.erb +2 -2
- data/app/views/spree/admin/page_blocks/_form_tab_buttons.html.erb +5 -7
- data/app/views/spree/admin/page_blocks/edit.html.erb +3 -5
- data/app/views/spree/admin/page_blocks/forms/_image.html.erb +9 -0
- data/app/views/spree/admin/page_builder/_add_block.html.erb +1 -1
- data/app/views/spree/admin/page_builder/_header.html.erb +35 -28
- data/app/views/spree/admin/page_builder/_pages_dropdown.html.erb +15 -21
- data/app/views/spree/admin/page_builder/_sidebar.html.erb +1 -1
- data/app/views/spree/admin/page_builder/_sidebar_block.html.erb +11 -10
- data/app/views/spree/admin/page_builder/_sidebar_sections_toolbar.html.erb +152 -39
- data/app/views/spree/admin/page_links/_list.html.erb +2 -2
- data/app/views/spree/admin/page_links/edit.html.erb +2 -4
- data/app/views/spree/admin/page_sections/_form_tab_buttons.html.erb +6 -10
- data/app/views/spree/admin/page_sections/new.html.erb +1 -1
- data/app/views/spree/admin/pages/edit.html.erb +2 -2
- data/app/views/spree/admin/payment_methods/_form.html.erb +1 -1
- data/app/views/spree/admin/payment_methods/index.html.erb +16 -15
- data/app/views/spree/admin/payments/_payment.html.erb +1 -1
- data/app/views/spree/admin/post_categories/index.html.erb +1 -1
- data/app/views/spree/admin/posts/index.html.erb +1 -1
- data/app/views/spree/admin/products/_bulk_operations.html.erb +1 -1
- data/app/views/spree/admin/products/_filters.html.erb +2 -5
- data/app/views/spree/admin/products/_list.html.erb +1 -1
- data/app/views/spree/admin/products/_table_filter_dropdown.html.erb +2 -2
- data/app/views/spree/admin/products/form/_categorization.html.erb +34 -30
- data/app/views/spree/admin/products/form/_variants.html.erb +1 -0
- data/app/views/spree/admin/promotion_actions/_promotion_action.html.erb +1 -1
- data/app/views/spree/admin/promotion_rules/_promotion_rule.html.erb +1 -1
- data/app/views/spree/admin/promotions/_filters.html.erb +2 -6
- data/app/views/spree/admin/promotions/_header.html.erb +1 -3
- data/app/views/spree/admin/promotions/_sidebar.html.erb +18 -0
- data/app/views/spree/admin/promotions/_table_filter_dropdown.html.erb +2 -2
- data/app/views/spree/admin/promotions/index.html.erb +1 -1
- data/app/views/spree/admin/properties/edit.html.erb +1 -1
- data/app/views/spree/admin/properties/index.html.erb +1 -1
- data/app/views/spree/admin/refund_reasons/index.html.erb +1 -1
- data/app/views/spree/admin/reimbursement_types/index.html.erb +1 -1
- data/app/views/spree/admin/reimbursements/edit.html.erb +2 -2
- data/app/views/spree/admin/reimbursements/show.html.erb +1 -1
- data/app/views/spree/admin/reports/_report.html.erb +1 -1
- data/app/views/spree/admin/return_authorization_reasons/index.html.erb +1 -1
- data/app/views/spree/admin/return_authorizations/_filters.html.erb +2 -2
- data/app/views/spree/admin/return_authorizations/_list.html.erb +1 -1
- data/app/views/spree/admin/roles/edit.html.erb +6 -4
- data/app/views/spree/admin/roles/index.html.erb +11 -7
- data/app/views/spree/admin/shared/_alerts.html.erb +1 -1
- data/app/views/spree/admin/shared/_breadcrumbs.html.erb +13 -0
- data/app/views/spree/admin/shared/_calendar_range_picker.html.erb +1 -1
- data/app/views/spree/admin/shared/_content_header.html.erb +3 -3
- data/app/views/spree/admin/shared/_filters_button.html.erb +1 -1
- data/app/views/spree/admin/shared/_filters_search_bar.html.erb +1 -1
- data/app/views/spree/admin/shared/_head.html.erb +10 -1
- data/app/views/spree/admin/shared/_header.html.erb +26 -17
- data/app/views/spree/admin/shared/_index_table_options.html.erb +1 -1
- data/app/views/spree/admin/shared/_multi_product_picker.html.erb +1 -1
- data/app/views/spree/admin/shared/_new_item_dropdown.html.erb +32 -0
- data/app/views/spree/admin/shared/_no_resource_found.html.erb +6 -3
- data/app/views/spree/admin/shared/_offcanvas_nav.html.erb +1 -14
- data/app/views/spree/admin/shared/_refunds.html.erb +1 -1
- data/app/views/spree/admin/shared/_sidebar.html.erb +0 -8
- data/app/views/spree/admin/shared/_tax_nav.html.erb +1 -0
- data/app/views/spree/admin/shared/_team_nav.html.erb +13 -0
- data/app/views/spree/admin/shared/_user_dropdown.html.erb +25 -20
- data/app/views/spree/admin/shared/devise/_links.html.erb +18 -0
- data/app/views/spree/admin/shared/sidebar/_enterprise_edition_notice.html.erb +7 -5
- data/app/views/spree/admin/shared/sidebar/_integrations_nav.html.erb +5 -7
- data/app/views/spree/admin/shared/sidebar/_orders_nav.html.erb +2 -2
- data/app/views/spree/admin/shared/sidebar/_products_nav.html.erb +2 -2
- data/app/views/spree/admin/shared/sidebar/_promotions_nav.html.erb +17 -0
- data/app/views/spree/admin/shared/sidebar/_returns_nav.html.erb +1 -1
- data/app/views/spree/admin/shared/sidebar/_store_dropdown.html.erb +33 -75
- data/app/views/spree/admin/shared/sidebar/_store_nav.html.erb +17 -36
- data/app/views/spree/admin/shared/sidebar/_storefront_nav.html.erb +6 -2
- data/app/views/spree/admin/shared/sidebar/_vendors_nav.html.erb +9 -7
- data/app/views/spree/admin/shared/sortable_tree/_taxonomy.html.erb +1 -1
- data/app/views/spree/admin/shipping_categories/index.html.erb +1 -1
- data/app/views/spree/admin/shipping_methods/_form.html.erb +7 -134
- data/app/views/spree/admin/shipping_methods/form/_display.html.erb +25 -0
- data/app/views/spree/admin/shipping_methods/form/_estimated_transit_business_days.html.erb +23 -0
- data/app/views/spree/admin/shipping_methods/form/_shipping_categories.html.erb +21 -0
- data/app/views/spree/admin/shipping_methods/form/_tax_category.html.erb +16 -0
- data/app/views/spree/admin/shipping_methods/form/_tracking_url.html.erb +18 -0
- data/app/views/spree/admin/shipping_methods/form/_zones.html.erb +26 -0
- data/app/views/spree/admin/shipping_methods/index.html.erb +1 -1
- data/app/views/spree/admin/stock_items/index.html.erb +1 -1
- data/app/views/spree/admin/stock_locations/_stock_location.html.erb +5 -3
- data/app/views/spree/admin/stock_locations/index.html.erb +4 -2
- data/app/views/spree/admin/stock_transfers/index.html.erb +1 -1
- data/app/views/spree/admin/store_credit_categories/index.html.erb +1 -1
- data/app/views/spree/admin/store_credits/_list.html.erb +1 -1
- data/app/views/spree/admin/stores/edit_emails.html.erb +1 -1
- data/app/views/spree/admin/stores/form/_basic.html.erb +1 -1
- data/app/views/spree/admin/stores/form/_emails.html.erb +1 -1
- data/app/views/spree/admin/tax_categories/index.html.erb +1 -1
- data/app/views/spree/admin/tax_rates/index.html.erb +1 -1
- data/app/views/spree/admin/taxonomies/index.html.erb +1 -1
- data/app/views/spree/admin/themes/_theme.html.erb +6 -4
- data/app/views/spree/admin/themes/_theme_preview_image.html.erb +6 -4
- data/app/views/spree/admin/themes/index.html.erb +1 -1
- data/app/views/spree/admin/translations/edit.html.erb +1 -1
- data/app/views/spree/admin/user_passwords/edit.html.erb +21 -0
- data/app/views/spree/admin/user_passwords/new.html.erb +12 -0
- data/app/views/spree/admin/user_sessions/new.html.erb +16 -0
- data/app/views/spree/admin/users/_form.html.erb +10 -8
- data/app/views/spree/admin/users/_user.html.erb +4 -4
- data/app/views/spree/admin/users/index.html.erb +4 -4
- data/app/views/spree/admin/users/new.html.erb +1 -1
- data/app/views/spree/admin/variants/_search_result.html.erb +1 -1
- data/app/views/spree/admin/variants/form/_media.html.erb +1 -0
- data/app/views/spree/admin/variants/form/_media_asset.html.erb +1 -1
- data/app/views/spree/admin/webhooks_subscribers/_form.html.erb +37 -19
- data/app/views/spree/admin/webhooks_subscribers/_webhooks_subscriber.html.erb +12 -6
- data/app/views/spree/admin/webhooks_subscribers/edit.html.erb +2 -2
- data/app/views/spree/admin/webhooks_subscribers/index.html.erb +1 -1
- data/app/views/spree/admin/webhooks_subscribers/show.html.erb +58 -47
- data/app/views/spree/admin/zones/_form.html.erb +11 -15
- data/app/views/spree/admin/zones/index.html.erb +1 -1
- data/config/importmap.rb +2 -2
- data/config/locales/en.yml +3 -0
- data/config/routes.rb +13 -1
- data/lib/spree/admin/engine.rb +11 -1
- data/lib/spree/admin.rb +1 -0
- data/vendor/javascript/bootstrap--dist--js--bootstrap.bundle.min.js.js +4 -4
- data/vendor/javascript/dompurify.js +24 -24
- metadata +65 -9
- data/app/javascript/spree/admin/controllers/webhook_subscriber_events_controller.js +0 -19
@@ -3,6 +3,11 @@ module Spree
|
|
3
3
|
class PostsController < ResourceController
|
4
4
|
before_action :load_post_categories
|
5
5
|
|
6
|
+
include StorefrontBreadcrumbConcern
|
7
|
+
add_breadcrumb Spree.t(:posts), :admin_posts_path
|
8
|
+
|
9
|
+
before_action :add_breadcrumb_for_post, only: [:edit, :update]
|
10
|
+
|
6
11
|
def select_options
|
7
12
|
render json: current_store.posts.published.to_tom_select_json
|
8
13
|
end
|
@@ -24,6 +29,12 @@ module Spree
|
|
24
29
|
def load_post_categories
|
25
30
|
@post_categories = current_store.post_categories.accessible_by(current_ability).order(:title)
|
26
31
|
end
|
32
|
+
|
33
|
+
def add_breadcrumb_for_post
|
34
|
+
return unless @post.present?
|
35
|
+
|
36
|
+
add_breadcrumb @post.title, spree.edit_admin_post_path(@post)
|
37
|
+
end
|
27
38
|
end
|
28
39
|
end
|
29
40
|
end
|
@@ -4,6 +4,7 @@ module Spree
|
|
4
4
|
include Spree::Admin::StockLocationsHelper
|
5
5
|
include Spree::Admin::BulkOperationsConcern
|
6
6
|
include Spree::Admin::SessionAssetsHelper
|
7
|
+
include Spree::Admin::ProductsBreadcrumbConcern
|
7
8
|
|
8
9
|
helper 'spree/admin/products'
|
9
10
|
helper 'spree/admin/taxons'
|
@@ -282,14 +283,6 @@ module Spree
|
|
282
283
|
clone_admin_product_url resource
|
283
284
|
end
|
284
285
|
|
285
|
-
def permitted_resource_params
|
286
|
-
if cannot?(:activate, @product) && @new_status&.to_sym == :active
|
287
|
-
super.except(:status, :make_active_at).permit!
|
288
|
-
else
|
289
|
-
super
|
290
|
-
end
|
291
|
-
end
|
292
|
-
|
293
286
|
private
|
294
287
|
|
295
288
|
def variant_stock_includes
|
@@ -360,6 +353,16 @@ module Spree
|
|
360
353
|
new_slug = permitted_resource_params[:slug]
|
361
354
|
permitted_resource_params[:slug] = @product.ensure_slug_is_unique(new_slug)
|
362
355
|
end
|
356
|
+
|
357
|
+
def permitted_resource_params
|
358
|
+
@permitted_resource_params ||= begin
|
359
|
+
if cannot?(:activate, @product) && @new_status&.to_sym == :active
|
360
|
+
params.require(:product).permit(permitted_product_attributes).except(:status, :make_active_at)
|
361
|
+
else
|
362
|
+
params.require(:product).permit(permitted_product_attributes)
|
363
|
+
end
|
364
|
+
end
|
365
|
+
end
|
363
366
|
end
|
364
367
|
end
|
365
368
|
end
|
@@ -11,8 +11,12 @@ module Spree
|
|
11
11
|
|
12
12
|
def model_class
|
13
13
|
@model_class = if params.dig(:promotion_action, :type).present?
|
14
|
-
|
15
|
-
|
14
|
+
# Find the actual class from allowed types rather than using constantize
|
15
|
+
action_type = params.dig(:promotion_action, :type)
|
16
|
+
action_class = allowed_action_types.find { |type| type.to_s == action_type }
|
17
|
+
|
18
|
+
if action_class
|
19
|
+
action_class
|
16
20
|
else
|
17
21
|
raise 'Unknown promotion action type'
|
18
22
|
end
|
@@ -42,6 +46,10 @@ module Spree
|
|
42
46
|
@promotion_action.calculator_type = @promotion_action.class.calculators.first.name
|
43
47
|
end
|
44
48
|
end
|
49
|
+
|
50
|
+
def permitted_resource_params
|
51
|
+
params.require(:promotion_action).permit(permitted_promotion_action_attributes)
|
52
|
+
end
|
45
53
|
end
|
46
54
|
end
|
47
55
|
end
|
@@ -9,8 +9,12 @@ module Spree
|
|
9
9
|
|
10
10
|
def model_class
|
11
11
|
@model_class = if params.dig(:promotion_rule, :type).present?
|
12
|
-
|
13
|
-
|
12
|
+
# Find the actual class from allowed types rather than using constantize
|
13
|
+
rule_type = params.dig(:promotion_rule, :type)
|
14
|
+
rule_class = allowed_rule_types.find { |type| type.to_s == rule_type }
|
15
|
+
|
16
|
+
if rule_class
|
17
|
+
rule_class
|
14
18
|
else
|
15
19
|
raise 'Unknown promotion rule type'
|
16
20
|
end
|
@@ -34,6 +38,10 @@ module Spree
|
|
34
38
|
def collection_url
|
35
39
|
spree.admin_promotion_path(parent)
|
36
40
|
end
|
41
|
+
|
42
|
+
def permitted_resource_params
|
43
|
+
params.require(:promotion_rule).permit(*permitted_promotion_rule_attributes + @object.preferences.keys.map { |key| "preferred_#{key}" })
|
44
|
+
end
|
37
45
|
end
|
38
46
|
end
|
39
47
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class PromotionsController < ResourceController
|
4
|
+
include PromotionsBreadcrumbConcern
|
5
|
+
|
4
6
|
before_action :load_form_data, except: :index
|
5
7
|
|
6
8
|
# POST /admin/promotions/:id/clone
|
@@ -56,6 +58,10 @@ module Spree
|
|
56
58
|
|
57
59
|
@collection
|
58
60
|
end
|
61
|
+
|
62
|
+
def permitted_resource_params
|
63
|
+
params.require(:promotion).permit(permitted_promotion_attributes)
|
64
|
+
end
|
59
65
|
end
|
60
66
|
end
|
61
67
|
end
|
@@ -1,6 +1,11 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class PropertiesController < ResourceController
|
4
|
+
include ProductsBreadcrumbConcern
|
5
|
+
add_breadcrumb Spree.t(:properties), :admin_properties_path
|
6
|
+
|
7
|
+
before_action :add_breadcrumbs
|
8
|
+
|
4
9
|
protected
|
5
10
|
|
6
11
|
def update_turbo_stream_enabled?
|
@@ -18,6 +23,16 @@ module Spree
|
|
18
23
|
@collection = @search.result.
|
19
24
|
page(params[:page])
|
20
25
|
end
|
26
|
+
|
27
|
+
def add_breadcrumbs
|
28
|
+
if @property.present? && @property.persisted?
|
29
|
+
add_breadcrumb @property.presentation, spree.edit_admin_property_path(@property)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def permitted_resource_params
|
34
|
+
params.require(:property).permit(permitted_property_attributes)
|
35
|
+
end
|
21
36
|
end
|
22
37
|
end
|
23
38
|
end
|
@@ -1,6 +1,13 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class RefundReasonsController < ResourceController
|
4
|
+
add_breadcrumb Spree.t(:refund_reasons), :admin_refund_reasons_path
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
def permitted_resource_params
|
9
|
+
params.require(:refund_reason).permit(permitted_refund_reason_attributes)
|
10
|
+
end
|
4
11
|
end
|
5
12
|
end
|
6
13
|
end
|
@@ -1,6 +1,13 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class ReimbursementTypesController < ResourceController
|
4
|
+
add_breadcrumb Spree.t(:reimbursement_types), :admin_reimbursement_types_path
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
def permitted_resource_params
|
9
|
+
params.require(:reimbursement_type).permit(permitted_reimbursement_type_attributes)
|
10
|
+
end
|
4
11
|
end
|
5
12
|
end
|
6
13
|
end
|
@@ -42,6 +42,10 @@ module Spree
|
|
42
42
|
flash[:error] = error.message
|
43
43
|
redirect_to spree.edit_admin_order_reimbursement_path(parent, @reimbursement)
|
44
44
|
end
|
45
|
+
|
46
|
+
def permitted_resource_params
|
47
|
+
params.require(:reimbursement).permit(permitted_reimbursement_attributes)
|
48
|
+
end
|
45
49
|
end
|
46
50
|
end
|
47
51
|
end
|
@@ -3,6 +3,9 @@ module Spree
|
|
3
3
|
class ReportsController < ResourceController
|
4
4
|
include ActiveStorage::SetCurrent
|
5
5
|
|
6
|
+
add_breadcrumb_icon 'chart-bar'
|
7
|
+
add_breadcrumb Spree.t(:reports), :admin_reports_path
|
8
|
+
|
6
9
|
before_action :set_user, only: [:new, :create]
|
7
10
|
|
8
11
|
def show
|
@@ -33,9 +36,12 @@ module Spree
|
|
33
36
|
|
34
37
|
def model_class
|
35
38
|
@model_class = if params[:type].present?
|
39
|
+
# Find the actual class from allowed types rather than using constantize
|
36
40
|
report_type = "Spree::Reports::#{params[:type].classify}"
|
37
|
-
|
38
|
-
|
41
|
+
report_class = allowed_report_types.find { |type| type == report_type }
|
42
|
+
|
43
|
+
if report_class
|
44
|
+
Object.const_get(report_class)
|
39
45
|
else
|
40
46
|
raise 'Unknown report type'
|
41
47
|
end
|
@@ -47,6 +53,10 @@ module Spree
|
|
47
53
|
def allowed_report_types
|
48
54
|
Rails.application.config.spree.reports.map(&:to_s)
|
49
55
|
end
|
56
|
+
|
57
|
+
def permitted_resource_params
|
58
|
+
params.require(:report).permit(permitted_report_attributes)
|
59
|
+
end
|
50
60
|
end
|
51
61
|
end
|
52
62
|
end
|
@@ -294,7 +294,7 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
|
|
294
294
|
#
|
295
295
|
# Other controllers can, should, override it to set custom logic
|
296
296
|
def permitted_resource_params
|
297
|
-
|
297
|
+
raise NotImplementedError, "You must implement the permitted_resource_params method"
|
298
298
|
end
|
299
299
|
|
300
300
|
def collection_actions
|
@@ -1,6 +1,13 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class ReturnAuthorizationReasonsController < ResourceController
|
4
|
+
add_breadcrumb Spree.t(:return_authorization_reasons), :admin_return_authorization_reasons_path
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
def permitted_resource_params
|
9
|
+
params.require(:return_authorization_reason).permit(permitted_return_authorization_reason_attributes)
|
10
|
+
end
|
4
11
|
end
|
5
12
|
end
|
6
13
|
end
|
@@ -11,6 +11,10 @@ module Spree
|
|
11
11
|
|
12
12
|
private
|
13
13
|
|
14
|
+
def permitted_resource_params
|
15
|
+
params.require(:return_authorization).permit(permitted_return_authorization_attributes)
|
16
|
+
end
|
17
|
+
|
14
18
|
def location_after_destroy
|
15
19
|
spree.edit_admin_order_path(@return_authorization.order)
|
16
20
|
end
|
@@ -1,9 +1,15 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class ReturnItemsController < ResourceController
|
4
|
+
private
|
5
|
+
|
4
6
|
def location_after_save
|
5
7
|
spree.edit_admin_order_customer_return_path(@return_item.customer_return.order, @return_item.customer_return)
|
6
8
|
end
|
9
|
+
|
10
|
+
def permitted_resource_params
|
11
|
+
params.require(:return_item).permit(permitted_return_item_attributes)
|
12
|
+
end
|
7
13
|
end
|
8
14
|
end
|
9
15
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Spree
|
2
|
+
module Admin
|
3
|
+
class RoleUsersController < BaseController
|
4
|
+
before_action :load_parent
|
5
|
+
before_action :load_role_user, only: [:edit, :update, :destroy]
|
6
|
+
|
7
|
+
# DELETE /admin/store/role_users/:id
|
8
|
+
def destroy
|
9
|
+
authorize! :destroy, @role_user
|
10
|
+
|
11
|
+
@role_user.destroy
|
12
|
+
redirect_back fallback_location: spree.admin_admin_users_path, status: :see_other, notice: flash_message_for(@role_user, :successfully_removed)
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
# load the resource to be used for authorization
|
18
|
+
# this can be extended to load different resources, eg vendor users
|
19
|
+
def load_parent
|
20
|
+
@parent = current_store
|
21
|
+
end
|
22
|
+
|
23
|
+
def scope
|
24
|
+
@parent.role_users.accessible_by(current_ability, :manage)
|
25
|
+
end
|
26
|
+
|
27
|
+
def load_role_user
|
28
|
+
@role_user = scope.find(params[:id])
|
29
|
+
end
|
30
|
+
|
31
|
+
def model_class
|
32
|
+
Spree::RoleUser
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -1,6 +1,14 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class RolesController < ResourceController
|
4
|
+
add_breadcrumb Spree.t(:users), :admin_admin_users_path
|
5
|
+
add_breadcrumb Spree.t(:roles), :admin_roles_path
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def permitted_resource_params
|
10
|
+
params.require(:role).permit(permitted_role_attributes)
|
11
|
+
end
|
4
12
|
end
|
5
13
|
end
|
6
14
|
end
|
@@ -55,7 +55,7 @@ module Spree
|
|
55
55
|
|
56
56
|
if errors.any?
|
57
57
|
flash[:error] = errors.to_sentence
|
58
|
-
return
|
58
|
+
return redirect_back(fallback_location: spree.edit_admin_order_path(@order))
|
59
59
|
end
|
60
60
|
|
61
61
|
if transfer.valid? && transfer.run!
|
@@ -64,7 +64,7 @@ module Spree
|
|
64
64
|
flash[:error] = transfer.errors.full_messages.to_sentence
|
65
65
|
end
|
66
66
|
|
67
|
-
|
67
|
+
redirect_back(fallback_location: spree.edit_admin_order_path(@order))
|
68
68
|
end
|
69
69
|
|
70
70
|
private
|
@@ -1,6 +1,13 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class ShippingCategoriesController < ResourceController
|
4
|
+
add_breadcrumb Spree.t(:shipping_categories), :admin_shipping_categories_path
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
def permitted_resource_params
|
9
|
+
params.require(:shipping_category).permit(permitted_shipping_category_attributes)
|
10
|
+
end
|
4
11
|
end
|
5
12
|
end
|
6
13
|
end
|
@@ -4,6 +4,8 @@ module Spree
|
|
4
4
|
before_action :load_data, except: :index
|
5
5
|
before_action :set_default_values, only: :new
|
6
6
|
|
7
|
+
add_breadcrumb Spree.t(:shipping_methods), :admin_shipping_methods_path
|
8
|
+
|
7
9
|
private
|
8
10
|
|
9
11
|
def set_default_values
|
@@ -24,6 +26,10 @@ module Spree
|
|
24
26
|
def update_turbo_stream_enabled?
|
25
27
|
true
|
26
28
|
end
|
29
|
+
|
30
|
+
def permitted_resource_params
|
31
|
+
params.require(:shipping_method).permit(permitted_shipping_method_attributes)
|
32
|
+
end
|
27
33
|
end
|
28
34
|
end
|
29
35
|
end
|
@@ -1,6 +1,10 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class StockItemsController < ResourceController
|
4
|
+
include ProductsBreadcrumbConcern
|
5
|
+
|
6
|
+
before_action :add_breadcrumbs
|
7
|
+
|
4
8
|
private
|
5
9
|
|
6
10
|
def update_turbo_stream_enabled?
|
@@ -20,6 +24,15 @@ module Spree
|
|
20
24
|
page(params[:page]).
|
21
25
|
per(params[:per_page])
|
22
26
|
end
|
27
|
+
|
28
|
+
def add_breadcrumbs
|
29
|
+
add_breadcrumb Spree.t(:stock), spree.admin_stock_items_path
|
30
|
+
add_breadcrumb Spree.t(:stock_items), spree.admin_stock_items_path
|
31
|
+
end
|
32
|
+
|
33
|
+
def permitted_resource_params
|
34
|
+
params.require(:stock_item).permit(permitted_stock_item_attributes)
|
35
|
+
end
|
23
36
|
end
|
24
37
|
end
|
25
38
|
end
|
@@ -3,6 +3,9 @@ module Spree
|
|
3
3
|
class StockLocationsController < ResourceController
|
4
4
|
before_action :set_country, only: :new
|
5
5
|
|
6
|
+
add_breadcrumb Spree.t(:stock_locations), :admin_stock_locations_path
|
7
|
+
|
8
|
+
# PUT /admin/stock_locations/:id/mark_as_default
|
6
9
|
def mark_as_default
|
7
10
|
@stock_location.update(default: true)
|
8
11
|
|
@@ -19,6 +22,10 @@ module Spree
|
|
19
22
|
def set_country
|
20
23
|
@stock_location.country = current_store.default_country
|
21
24
|
end
|
25
|
+
|
26
|
+
def permitted_resource_params
|
27
|
+
params.require(:stock_location).permit(permitted_stock_location_attributes)
|
28
|
+
end
|
22
29
|
end
|
23
30
|
end
|
24
31
|
end
|
@@ -3,8 +3,12 @@ module Spree
|
|
3
3
|
class StockTransfersController < ResourceController
|
4
4
|
before_action :prepare_params, only: :create
|
5
5
|
|
6
|
+
include ProductsBreadcrumbConcern
|
7
|
+
|
6
8
|
create.fails :load_variant_omit_ids
|
7
9
|
|
10
|
+
before_action :add_breadcrumbs
|
11
|
+
|
8
12
|
private
|
9
13
|
|
10
14
|
def location_after_save
|
@@ -22,8 +26,7 @@ module Spree
|
|
22
26
|
end
|
23
27
|
|
24
28
|
def permitted_resource_params
|
25
|
-
params.require(:stock_transfer).permit(
|
26
|
-
stock_movements_attributes: [:variant_id, :quantity, :originator_id, :stock_item_id])
|
29
|
+
params.require(:stock_transfer).permit(permitted_stock_transfer_attributes)
|
27
30
|
end
|
28
31
|
|
29
32
|
def prepare_params
|
@@ -43,6 +46,15 @@ module Spree
|
|
43
46
|
def load_variant_omit_ids
|
44
47
|
@variant_omit_ids = @stock_transfer.stock_movements.map(&:variant_id)
|
45
48
|
end
|
49
|
+
|
50
|
+
def add_breadcrumbs
|
51
|
+
add_breadcrumb Spree.t(:stock), spree.admin_stock_items_path
|
52
|
+
add_breadcrumb Spree.t(:stock_transfers), spree.admin_stock_transfers_path
|
53
|
+
|
54
|
+
if @stock_transfer.present? && @stock_transfer.persisted?
|
55
|
+
add_breadcrumb @stock_transfer.number, spree.admin_stock_transfer_path(@stock_transfer)
|
56
|
+
end
|
57
|
+
end
|
46
58
|
end
|
47
59
|
end
|
48
60
|
end
|
@@ -73,6 +73,10 @@ module Spree
|
|
73
73
|
flash[:error] = Spree.t(:user_not_found)
|
74
74
|
redirect_to spree.admin_path
|
75
75
|
end
|
76
|
+
|
77
|
+
@breadcrumb_icon = 'users'
|
78
|
+
add_breadcrumb Spree.t(:customers), :admin_users_path
|
79
|
+
add_breadcrumb @user.name, spree.admin_user_path(@user)
|
76
80
|
end
|
77
81
|
|
78
82
|
def load_store_credit
|
@@ -19,6 +19,11 @@ module Spree
|
|
19
19
|
@store.mail_from_address = current_store.mail_from_address
|
20
20
|
|
21
21
|
if @store.save
|
22
|
+
# Move/copy all existing users (staff) to the new store
|
23
|
+
current_store.role_users.each do |role_user|
|
24
|
+
@store.add_user(role_user.user, role_user.role)
|
25
|
+
end
|
26
|
+
|
22
27
|
flash[:success] = flash_message_for(@store, :successfully_created)
|
23
28
|
# redirect in view, Turbo doesn't support redirecting to a different host
|
24
29
|
else
|
@@ -26,7 +31,17 @@ module Spree
|
|
26
31
|
end
|
27
32
|
end
|
28
33
|
|
29
|
-
def edit
|
34
|
+
def edit
|
35
|
+
if params[:section] == 'emails'
|
36
|
+
add_breadcrumb Spree.t(:emails), spree.edit_admin_store_path(section: params[:section])
|
37
|
+
elsif params[:section] == 'policies'
|
38
|
+
add_breadcrumb Spree.t(:policies), spree.edit_admin_store_path(section: params[:section])
|
39
|
+
elsif params[:section] == 'checkout'
|
40
|
+
add_breadcrumb Spree.t(:checkout), spree.edit_admin_store_path(section: params[:section])
|
41
|
+
else
|
42
|
+
add_breadcrumb Spree.t(:store_details), spree.edit_admin_store_path(section: params[:section])
|
43
|
+
end
|
44
|
+
end
|
30
45
|
|
31
46
|
def edit_emails; end
|
32
47
|
|
@@ -53,7 +68,7 @@ module Spree
|
|
53
68
|
protected
|
54
69
|
|
55
70
|
def permitted_store_params
|
56
|
-
params.require(:store).permit(permitted_store_attributes)
|
71
|
+
params.require(:store).permit(permitted_store_attributes + current_store.preferences.keys.map { |key| "preferred_#{key}" })
|
57
72
|
end
|
58
73
|
|
59
74
|
private
|
@@ -1,6 +1,13 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class TaxCategoriesController < ResourceController
|
4
|
+
add_breadcrumb Spree.t(:tax_categories), :admin_tax_categories_path
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
def permitted_resource_params
|
9
|
+
params.require(:tax_category).permit(permitted_tax_category_attributes)
|
10
|
+
end
|
4
11
|
end
|
5
12
|
end
|
6
13
|
end
|
@@ -4,6 +4,8 @@ module Spree
|
|
4
4
|
before_action :load_data
|
5
5
|
before_action :set_defaults, only: :new
|
6
6
|
|
7
|
+
add_breadcrumb Spree.t(:tax_rates), :admin_tax_rates_path
|
8
|
+
|
7
9
|
private
|
8
10
|
|
9
11
|
def set_defaults
|
@@ -15,6 +17,10 @@ module Spree
|
|
15
17
|
@available_categories = Spree::TaxCategory.order(:name)
|
16
18
|
@calculators = Spree::TaxRate.calculators.sort_by(&:name)
|
17
19
|
end
|
20
|
+
|
21
|
+
def permitted_resource_params
|
22
|
+
params.require(:tax_rate).permit(permitted_tax_rate_attributes)
|
23
|
+
end
|
18
24
|
end
|
19
25
|
end
|
20
26
|
end
|
@@ -1,6 +1,11 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class TaxonomiesController < ResourceController
|
4
|
+
include ProductsBreadcrumbConcern
|
5
|
+
add_breadcrumb Spree.t(:taxonomies), :admin_taxonomies_path
|
6
|
+
|
7
|
+
before_action :add_breadcrumbs
|
8
|
+
|
4
9
|
private
|
5
10
|
|
6
11
|
def collection
|
@@ -16,6 +21,16 @@ module Spree
|
|
16
21
|
def location_after_save
|
17
22
|
spree.admin_taxonomy_path(@taxonomy)
|
18
23
|
end
|
24
|
+
|
25
|
+
def add_breadcrumbs
|
26
|
+
if @taxonomy.present? && @taxonomy.persisted?
|
27
|
+
add_breadcrumb @taxonomy.name, spree.admin_taxonomy_path(@taxonomy)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def permitted_resource_params
|
32
|
+
params.require(:taxonomy).permit(permitted_taxonomy_attributes)
|
33
|
+
end
|
19
34
|
end
|
20
35
|
end
|
21
36
|
end
|