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
@@ -2,9 +2,7 @@
|
|
2
2
|
|
3
3
|
$gray-25: #F9F9F9;
|
4
4
|
$gray-50: #F3F3F3;
|
5
|
-
$gray-
|
6
|
-
$gray-100: #EAEAEA !default;
|
7
|
-
$gray-150: #E0E0E0 !default;
|
5
|
+
$gray-100: #E7E5E4 !default;
|
8
6
|
$gray-200: #D5D5D5 !default;
|
9
7
|
$gray-300: #B3B3B3 !default;
|
10
8
|
$gray-400: #999999 !default;
|
@@ -24,6 +22,15 @@ $white: #FFFFFF !default;
|
|
24
22
|
$action: #F4F9FF !default;
|
25
23
|
$action-border: #e2ecff !default;
|
26
24
|
|
25
|
+
// Override Bootstrap 4.6 breakpoints
|
26
|
+
$container-max-widths: (
|
27
|
+
sm: 540px,
|
28
|
+
md: 720px,
|
29
|
+
lg: 960px,
|
30
|
+
xl: 1240px
|
31
|
+
) !default;
|
32
|
+
|
33
|
+
|
27
34
|
$theme-colors: (
|
28
35
|
"white": $white,
|
29
36
|
"black": $black,
|
@@ -50,7 +57,7 @@ $theme-colors: (
|
|
50
57
|
);
|
51
58
|
|
52
59
|
$body-color: #333 !default;
|
53
|
-
$body-bg:
|
60
|
+
$body-bg: $gray-25 !default;
|
54
61
|
$enable-shadows: false;
|
55
62
|
$enable-responsive-font-sizes: true;
|
56
63
|
$font-family-sans-serif: Inter, sans-serif !default;
|
@@ -65,19 +72,18 @@ $line-height-base: 1.5 !default;
|
|
65
72
|
$border-radius: 0.5rem !default;
|
66
73
|
$border-radius-sm: 0.4rem !default;
|
67
74
|
$border-radius-lg: 0.75rem !default;
|
68
|
-
$card-border-radius: $border-radius-lg !default;
|
69
75
|
$border-color: $gray-100 !default;
|
70
|
-
$input-border-color: $
|
76
|
+
$input-border-color: $border-color !default;
|
71
77
|
$list-group-border-color: $border-color !default;
|
72
78
|
$list-group-hover-bg: $gray-25 !default;
|
73
79
|
$list-group-active-bg: $action !default;
|
74
80
|
$list-group-active-border-color: $action-border !default;
|
75
81
|
|
76
|
-
$thumbnail-border-color: $
|
82
|
+
$thumbnail-border-color: $border-color !default;
|
77
83
|
$hr-border-color: $border-color !default;
|
78
|
-
$table-border-color: $
|
84
|
+
$table-border-color: $border-color !default;
|
79
85
|
$card-border-color: $border-color !default;
|
80
|
-
$input-btn-focus-width: 0.
|
86
|
+
$input-btn-focus-width: 0.18rem !default;
|
81
87
|
|
82
88
|
$card-spacer-y: .75rem !default;
|
83
89
|
$card-spacer-x: 1rem !default;
|
@@ -87,6 +93,9 @@ $component-active-bg: $blue !default;
|
|
87
93
|
$input-placeholder-color: $gray-500;
|
88
94
|
$input-padding-y: .5rem !default;
|
89
95
|
$input-disabled-bg: $gray-50 !default;
|
96
|
+
$input-focus-border-color: $blue !default;
|
97
|
+
$input-box-shadow: none !default;
|
98
|
+
$btn-box-shadow: $input-box-shadow !default;
|
90
99
|
$custom-select-disabled-bg: $gray-50 !default;
|
91
100
|
|
92
101
|
$text-muted: $gray-400 !default;
|
@@ -104,6 +113,11 @@ $box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06
|
|
104
113
|
$box-shadow-xs: rgba(43, 34, 51, 0.04) 0px 1px 2px !default;
|
105
114
|
$box-shadow-lg: rgba(0, 5, 13, 0.5) 0px 4px 8px 2px;
|
106
115
|
|
116
|
+
$card-border-width: 0px !default;
|
117
|
+
$card-box-shadow: 0 0 0 1px $card-border-color, 0 1px 2px 0 rgba(0, 0, 0, 0.05) !default;
|
118
|
+
$card-bg: $white !default;
|
119
|
+
$card-border-radius: $border-radius-lg !default;
|
120
|
+
|
107
121
|
$tooltip-border-radius: $border-radius !default;
|
108
122
|
$tooltip-opacity: 1 !default;
|
109
123
|
$tooltip-margin: 0.25rem 0 !default;
|
@@ -149,27 +163,26 @@ $display4-weight: 400 !default;
|
|
149
163
|
|
150
164
|
$dropdown-border-width: 0px !default;
|
151
165
|
$dropdown-border-radius: $border-radius-lg !default;
|
152
|
-
$dropdown-link-hover-bg: $
|
153
|
-
$dropdown-link-hover-color: $white !default;
|
166
|
+
$dropdown-link-hover-bg: $gray-50 !default;
|
154
167
|
$dropdown-box-shadow: rgba(209, 217, 224, 0.8) 0px 0px 0px 1px, rgba(37, 41, 46, 0.04) 0px 6px 12px -3px, rgba(37, 41, 46, 0.12) 0px 6px 18px 0px !default;
|
155
168
|
$dropdown-padding-x: 0.25rem !default;
|
156
169
|
$dropdown-padding-y: 0.25rem !default;
|
157
|
-
$dropdown-divider-bg: $gray-
|
170
|
+
$dropdown-divider-bg: $gray-50 !default;
|
158
171
|
$dropdown-divider-margin-y: 0.25rem !default;
|
159
172
|
$dropdown-header-color: $gray-500 !default;
|
160
173
|
|
161
|
-
$modal-backdrop-bg: $
|
174
|
+
$modal-backdrop-bg: $body-bg !default;
|
162
175
|
$modal-backdrop-opacity: 0.8 !default;
|
163
|
-
$modal-content-border-color:
|
176
|
+
$modal-content-border-color: $border-color !default;
|
177
|
+
$modal-content-border-width: 0px !default;
|
164
178
|
$modal-header-padding: 1rem 1.25rem 1rem 1.25rem !default;
|
165
179
|
$modal-inner-padding: 1rem 1.25rem 1rem 1.25rem !default;
|
166
180
|
$modal-fade-transform: translate(0, 0) !default;
|
167
181
|
$modal-show-transform: none !default;
|
168
182
|
$modal-transition: transform .2s ease-out !default;
|
169
183
|
$modal-scale-transform: scale(1.02) !default;
|
170
|
-
$modal-content-border-width: 0px !default;
|
171
184
|
$modal-header-border-width: 1px !default;
|
172
|
-
$modal-content-box-shadow-xs:
|
185
|
+
$modal-content-box-shadow-xs: $border-color 0px 0px 0px 1px, rgba(0, 0, 0, 0.02) 0px 1px 1px 0px, rgba(0, 0, 0, 0.04) 0px 8px 16px -4px, rgba(0, 0, 0, 0.06) 0px 24px 32px -8px !default;
|
173
186
|
$modal-content-box-shadow-sm-up: $modal-content-box-shadow-xs !default;
|
174
187
|
$modal-footer-margin-between: 0 !default;
|
175
188
|
|
@@ -177,6 +190,11 @@ $alert-padding-y: 0.5rem !default;
|
|
177
190
|
$alert-padding-x: 1rem !default;
|
178
191
|
$alert-border-radius: $border-radius-lg;
|
179
192
|
|
193
|
+
$breadcrumb-bg: transparent !default;
|
194
|
+
$breadcrumb-padding-y: 0 !default;
|
195
|
+
$breadcrumb-padding-x: 1rem !default;
|
196
|
+
$breadcrumb-margin-bottom: 0 !default;
|
197
|
+
|
180
198
|
$embed-responsive-aspect-ratios: (
|
181
199
|
(21 9),
|
182
200
|
(16 9),
|
@@ -193,4 +211,6 @@ $code-color: $gray-600 !default;
|
|
193
211
|
$list-group-bg: transparent !default;
|
194
212
|
$list-group-item-padding-x: 1rem !default;
|
195
213
|
|
196
|
-
$
|
214
|
+
$header-height: 52px !default;
|
215
|
+
$sidebar-width: 220px !default;
|
216
|
+
$sidebar-bg: $body-bg !default;
|
@@ -29,9 +29,9 @@ $select-color-optgroup-text: $dropdown-header-color !default;
|
|
29
29
|
$select-color-optgroup-border: $dropdown-divider-bg !default;
|
30
30
|
$select-color-dropdown: $dropdown-bg !default;
|
31
31
|
$select-color-dropdown-border-top: mix($input-border-color, $input-bg, 0.8) !default;
|
32
|
-
$select-color-dropdown-item-active: $
|
33
|
-
$select-color-dropdown-item-active-text: $
|
34
|
-
$select-color-dropdown-item-create-active-text: $
|
32
|
+
$select-color-dropdown-item-active: $gray-50 !default;
|
33
|
+
$select-color-dropdown-item-active-text: $gray-900 !default;
|
34
|
+
$select-color-dropdown-item-create-active-text: $gray-900 !default;
|
35
35
|
$select-opacity-disabled: 0.5 !default;
|
36
36
|
|
37
37
|
$select-border: 1px solid $input-border-color !default;
|
@@ -67,8 +67,9 @@ $select-arrow-offset: calc(#{$select-padding-x} + 5px) !default;
|
|
67
67
|
z-index: $zindex-dropdown;
|
68
68
|
background: $select-color-dropdown;
|
69
69
|
border: 1px solid $dropdown-border-color; //$dropdown-fallback-border
|
70
|
-
border-radius: $border-radius;
|
70
|
+
border-radius: $border-radius-lg;
|
71
71
|
box-shadow: 0 6px 12px rgba(0,0,0,.175);
|
72
|
+
top: 110%;
|
72
73
|
}
|
73
74
|
|
74
75
|
.#{$select-ns}-dropdown {
|
@@ -224,19 +224,6 @@ strong {
|
|
224
224
|
z-index: 99999999;
|
225
225
|
}
|
226
226
|
|
227
|
-
figure.admin-img-holder {
|
228
|
-
max-width: 275px;
|
229
|
-
border: 2px dashed grey;
|
230
|
-
border-radius: $border-radius;
|
231
|
-
overflow: hidden;
|
232
|
-
display: inline-block;
|
233
|
-
|
234
|
-
img {
|
235
|
-
max-width: 100%;
|
236
|
-
height: auto;
|
237
|
-
}
|
238
|
-
}
|
239
|
-
|
240
227
|
.image-container {
|
241
228
|
.img-fluid {
|
242
229
|
transition: transform .5s ease;
|
@@ -388,8 +375,8 @@ small,
|
|
388
375
|
}
|
389
376
|
|
390
377
|
.sortable-chosen {
|
391
|
-
|
392
|
-
border
|
378
|
+
background-color: theme-color('action') !important;
|
379
|
+
border: 2px dashed $blue !important;
|
393
380
|
}
|
394
381
|
|
395
382
|
.handle {
|
@@ -492,6 +479,9 @@ turbo-frame[busy] #turbo-spinner {
|
|
492
479
|
height: 2rem;
|
493
480
|
}
|
494
481
|
}
|
482
|
+
turbo-frame[loading] .spinner-border, turbo-frame[busy] .spinner-border {
|
483
|
+
display: block !important;
|
484
|
+
}
|
495
485
|
|
496
486
|
.fill-primary {
|
497
487
|
& > * {
|
@@ -662,12 +652,32 @@ div.uppy-Root {
|
|
662
652
|
border-radius: $border-radius-lg;
|
663
653
|
}
|
664
654
|
|
655
|
+
.rounded-lg-top {
|
656
|
+
border-top-left-radius: $border-radius-lg;
|
657
|
+
border-top-right-radius: $border-radius-lg;
|
658
|
+
}
|
659
|
+
|
660
|
+
.rounded-lg-bottom {
|
661
|
+
border-bottom-left-radius: $border-radius-lg;
|
662
|
+
border-bottom-right-radius: $border-radius-lg;
|
663
|
+
}
|
664
|
+
|
665
|
+
.rounded-lg-left {
|
666
|
+
border-top-left-radius: $border-radius-lg;
|
667
|
+
border-bottom-left-radius: $border-radius-lg;
|
668
|
+
}
|
669
|
+
|
670
|
+
.rounded-lg-right {
|
671
|
+
border-top-right-radius: $border-radius-lg;
|
672
|
+
border-bottom-right-radius: $border-radius-lg;
|
673
|
+
}
|
674
|
+
|
665
675
|
.turbo-progress-bar {
|
666
676
|
background-color: theme-color('blue');
|
667
677
|
}
|
668
678
|
|
669
679
|
.tooltip-inner {
|
670
|
-
border: 1px solid $
|
680
|
+
border: 1px solid $border-color;
|
671
681
|
box-shadow: $box-shadow-xs;
|
672
682
|
}
|
673
683
|
|
@@ -675,9 +685,32 @@ div.uppy-Root {
|
|
675
685
|
border-radius: 50%;
|
676
686
|
background-color: $gray-200;
|
677
687
|
color: $gray-500;
|
678
|
-
font-size:
|
688
|
+
font-size: $font-size-base;
|
679
689
|
font-weight: 500;
|
680
690
|
display: flex;
|
681
691
|
align-items: center;
|
682
692
|
justify-content: center;
|
683
693
|
}
|
694
|
+
|
695
|
+
.breadcrumb {
|
696
|
+
gap: 0.5rem;
|
697
|
+
align-items: center;
|
698
|
+
color: $gray-500;
|
699
|
+
font-size: $font-size-sm;
|
700
|
+
|
701
|
+
i {
|
702
|
+
opacity: 0.5;
|
703
|
+
}
|
704
|
+
|
705
|
+
li {
|
706
|
+
a {
|
707
|
+
color: $gray-500;
|
708
|
+
text-decoration: none;
|
709
|
+
|
710
|
+
&:hover {
|
711
|
+
color: $primary;
|
712
|
+
}
|
713
|
+
}
|
714
|
+
}
|
715
|
+
}
|
716
|
+
|
@@ -1,6 +1,6 @@
|
|
1
1
|
.custom-checkbox .custom-control-label::before {
|
2
2
|
border-radius: 0.25rem !important;
|
3
|
-
border-color: $
|
3
|
+
border-color: $input-border-color;
|
4
4
|
}
|
5
5
|
|
6
6
|
label {
|
@@ -27,11 +27,15 @@ label {
|
|
27
27
|
}
|
28
28
|
|
29
29
|
.form-control, .text-input, .trix-container, .ts-control, trix-toolbar .trix-dialog .trix-input, .custom-select, .input-group-text, .custom-file-label {
|
30
|
+
box-shadow: $input-box-shadow;
|
31
|
+
transition-property: box-shadow;
|
32
|
+
transition-duration: 0.2s;
|
33
|
+
|
30
34
|
&:disabled, &[readonly] {
|
31
35
|
@extend .shadow-none;
|
32
36
|
@extend .text-muted;
|
33
37
|
background-color: $gray-50 !important;
|
34
|
-
border: 1px solid $
|
38
|
+
border: 1px solid $border-color !important;
|
35
39
|
cursor: not-allowed;
|
36
40
|
}
|
37
41
|
}
|
@@ -1,8 +1,12 @@
|
|
1
|
+
$sidebar-width: 345px;
|
2
|
+
$header-height: 43px;
|
3
|
+
|
1
4
|
#page-builder {
|
2
5
|
background-color: $gray-100;
|
3
6
|
|
4
7
|
#content {
|
5
8
|
margin-left: 0;
|
9
|
+
padding-top: 0;
|
6
10
|
}
|
7
11
|
|
8
12
|
#main-part {
|
@@ -15,9 +19,8 @@
|
|
15
19
|
}
|
16
20
|
|
17
21
|
.nav-pills {
|
18
|
-
border: 1px solid $gray-100;
|
19
22
|
border-radius: $border-radius;
|
20
|
-
background-color: $gray-
|
23
|
+
background-color: $gray-100;
|
21
24
|
padding: 0.1rem;
|
22
25
|
|
23
26
|
.nav-link {
|
@@ -28,7 +31,7 @@
|
|
28
31
|
|
29
32
|
&.active {
|
30
33
|
background-color: $white;
|
31
|
-
border: 1px solid $
|
34
|
+
border: 1px solid $border-color;
|
32
35
|
}
|
33
36
|
}
|
34
37
|
}
|
@@ -39,8 +42,8 @@
|
|
39
42
|
|
40
43
|
#page-builder-header {
|
41
44
|
z-index: 1031;
|
42
|
-
border-bottom: 1px solid $
|
43
|
-
|
45
|
+
border-bottom: 1px solid $border-color;
|
46
|
+
height: $header-height;
|
44
47
|
nav {
|
45
48
|
width: 100%;
|
46
49
|
display: flex;
|
@@ -50,17 +53,20 @@
|
|
50
53
|
}
|
51
54
|
}
|
52
55
|
#page-builder-sidebar {
|
53
|
-
|
54
|
-
|
56
|
+
position: fixed;
|
57
|
+
width: $sidebar-width;
|
58
|
+
top: $header-height;
|
55
59
|
left: 0px;
|
56
60
|
background-color: $body-bg;
|
57
|
-
border-right: 1px solid $
|
58
|
-
|
61
|
+
border-right: 1px solid $border-color;
|
62
|
+
overflow-y: scroll;
|
63
|
+
overflow-x: hidden;
|
64
|
+
height: calc(100vh - $header-height);
|
59
65
|
.sidebar-header {
|
60
66
|
height: 48px;
|
61
|
-
padding: 0.5rem
|
62
|
-
background-color: $
|
63
|
-
border-bottom: 1px solid $
|
67
|
+
padding: 0.5rem 0.7rem;
|
68
|
+
background-color: $body-bg;
|
69
|
+
border-bottom: 1px solid $border-color;
|
64
70
|
display: flex;
|
65
71
|
align-items: center;
|
66
72
|
margin-bottom: 0.5rem;
|
@@ -74,17 +80,24 @@
|
|
74
80
|
position: fixed;
|
75
81
|
bottom: 0;
|
76
82
|
left: 0;
|
77
|
-
width:
|
78
|
-
padding: 0.5rem
|
79
|
-
background-color: $
|
80
|
-
|
83
|
+
width: calc($sidebar-width - 1px);
|
84
|
+
padding: 0.5rem;
|
85
|
+
background-color: $body-bg;
|
86
|
+
box-shadow: 0 0 0 1px $border-color;
|
81
87
|
z-index: 1031;
|
88
|
+
display: flex;
|
89
|
+
align-items: center;
|
90
|
+
justify-content: space-between;
|
91
|
+
}
|
92
|
+
|
93
|
+
.list-group-item {
|
94
|
+
padding: 0.5rem 0.5rem;
|
82
95
|
}
|
83
96
|
}
|
84
97
|
#page-builder-preview {
|
85
98
|
border-radius: $border-radius;
|
86
99
|
border: 1px solid $gray-300;
|
87
|
-
margin-top:
|
100
|
+
margin-top: calc($header-height + 1rem);
|
88
101
|
}
|
89
102
|
|
90
103
|
|
@@ -139,10 +152,6 @@
|
|
139
152
|
}
|
140
153
|
}
|
141
154
|
|
142
|
-
main#content {
|
143
|
-
padding-top: 0 !important;
|
144
|
-
}
|
145
|
-
|
146
155
|
.editor-add-section {
|
147
156
|
position: fixed;
|
148
157
|
right: 20px;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Spree
|
2
|
+
module Admin
|
3
|
+
module BreadcrumbConcern
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
class_attribute :breadcrumb_icon
|
8
|
+
before_action :add_breadcrumb_icon_instance_var
|
9
|
+
end
|
10
|
+
|
11
|
+
class_methods do
|
12
|
+
def add_breadcrumb_icon(icon_name)
|
13
|
+
self.breadcrumb_icon = icon_name
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def add_breadcrumb_icon_instance_var
|
18
|
+
@breadcrumb_icon = self.class.breadcrumb_icon
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Spree
|
2
|
+
module Admin
|
3
|
+
module PreferencesConcern
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
def clear_empty_password_preferences(param_name)
|
9
|
+
if params[param_name].present?
|
10
|
+
password_preferences = @object.preferences_of_type(:password)
|
11
|
+
password_preferences.each do |preference|
|
12
|
+
preference_key = "preferred_#{preference}"
|
13
|
+
|
14
|
+
if params.dig(param_name, preference_key).blank? && @object.preferences[preference].present?
|
15
|
+
params[param_name].delete(preference_key)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Spree
|
2
|
+
module Admin
|
3
|
+
module ProductsBreadcrumbConcern
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
add_breadcrumb_icon 'box'
|
8
|
+
add_breadcrumb Spree.t(:products), :admin_products_path
|
9
|
+
|
10
|
+
before_action :add_breadcrumb_for_product, only: [:edit, :update]
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def add_breadcrumb_for_product
|
16
|
+
return unless @product.present?
|
17
|
+
return if @product.new_record?
|
18
|
+
add_breadcrumb @product.name, spree.edit_admin_product_path(@product)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Spree
|
2
|
+
module Admin
|
3
|
+
module PromotionsBreadcrumbConcern
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
add_breadcrumb_icon 'discount'
|
8
|
+
add_breadcrumb Spree.t(:promotions), :admin_promotions_path
|
9
|
+
|
10
|
+
before_action :add_breadcrumb_for_promotion
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def add_breadcrumb_for_promotion
|
16
|
+
return unless @promotion.present?
|
17
|
+
return if @promotion.new_record?
|
18
|
+
|
19
|
+
add_breadcrumb @promotion.name, spree.admin_promotion_path(@promotion)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
module Spree
|
2
|
+
module Admin
|
3
|
+
class AdminUsersController < BaseController
|
4
|
+
add_breadcrumb Spree.t(:users), :admin_admin_users_path
|
5
|
+
|
6
|
+
skip_before_action :authorize_admin, only: [:new, :create]
|
7
|
+
before_action :load_parent, except: [:new, :create]
|
8
|
+
before_action :load_roles, except: [:index]
|
9
|
+
before_action :load_invitation, only: [:new, :create]
|
10
|
+
before_action :load_admin_user, only: [:show, :edit, :update]
|
11
|
+
|
12
|
+
layout :choose_layout
|
13
|
+
|
14
|
+
# GET /admin/admin_users
|
15
|
+
def index
|
16
|
+
params[:q] ||= {}
|
17
|
+
params[:q][:s] ||= 'created_at asc'
|
18
|
+
@search = scope.includes(role_users: :role, avatar_attachment: :blob).
|
19
|
+
where(role_users: { resource: @parent }).
|
20
|
+
ransack(params[:q])
|
21
|
+
@collection = @search.result
|
22
|
+
end
|
23
|
+
|
24
|
+
# GET /admin/admin_users/:id
|
25
|
+
def show
|
26
|
+
authorize! :read, @admin_user
|
27
|
+
@role_users = @admin_user.role_users.includes(:role).where(resource: @parent)
|
28
|
+
|
29
|
+
add_breadcrumb @admin_user.email, spree.admin_admin_user_path(@admin_user)
|
30
|
+
end
|
31
|
+
|
32
|
+
# GET /admin/admin_users/new?token=<token>
|
33
|
+
# this is a self signup flow for admin users from the invitation email
|
34
|
+
def new
|
35
|
+
@admin_user = Spree.admin_user_class.new
|
36
|
+
@admin_user.email = @invitation.email
|
37
|
+
end
|
38
|
+
|
39
|
+
# POST /admin/admin_users
|
40
|
+
# this is a self signup flow for admin users from the invitation email
|
41
|
+
def create
|
42
|
+
@admin_user = Spree.admin_user_class.new(permitted_params)
|
43
|
+
@invitation.invitee = @admin_user
|
44
|
+
if @admin_user.save && @invitation.accept!
|
45
|
+
# Automatically log in the user after successful signup
|
46
|
+
# if Devise is installed
|
47
|
+
if defined?(sign_in)
|
48
|
+
sign_in(Spree.admin_user_class.model_name.singular_route_key, @admin_user)
|
49
|
+
end
|
50
|
+
redirect_to spree.admin_path
|
51
|
+
else
|
52
|
+
render :new, status: :unprocessable_entity
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# GET /admin/admin_users/:id/edit
|
57
|
+
def edit
|
58
|
+
authorize! :update, @admin_user
|
59
|
+
end
|
60
|
+
|
61
|
+
# PUT /admin/admin_users/:id
|
62
|
+
def update
|
63
|
+
authorize! :update, @admin_user
|
64
|
+
|
65
|
+
permitted_params = params.require(:admin_user).permit(permitted_user_attributes | [spree_role_ids: []])
|
66
|
+
|
67
|
+
if @admin_user.update(permitted_params)
|
68
|
+
redirect_to spree.admin_admin_user_path(@admin_user), status: :see_other, notice: flash_message_for(@admin_user, :successfully_updated)
|
69
|
+
else
|
70
|
+
render :edit, status: :unprocessable_entity
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
private
|
75
|
+
|
76
|
+
def permitted_params
|
77
|
+
params.require(:admin_user).permit(:email, :password, :password_confirmation, :first_name, :last_name)
|
78
|
+
end
|
79
|
+
|
80
|
+
def load_invitation
|
81
|
+
raise ActiveRecord::RecordNotFound if params[:token].blank?
|
82
|
+
|
83
|
+
@invitation = Spree::Invitation.pending.not_expired.find_by!(token: params[:token])
|
84
|
+
end
|
85
|
+
|
86
|
+
def load_parent
|
87
|
+
@parent = current_store
|
88
|
+
end
|
89
|
+
|
90
|
+
def scope
|
91
|
+
@parent.users.accessible_by(current_ability, :manage)
|
92
|
+
end
|
93
|
+
|
94
|
+
def load_admin_user
|
95
|
+
@admin_user = Spree.admin_user_class.accessible_by(current_ability).find(params[:id])
|
96
|
+
end
|
97
|
+
|
98
|
+
# for self signup flow, we use the minimal layout
|
99
|
+
def choose_layout
|
100
|
+
@invitation.present? ? 'spree/minimal' : 'spree/admin'
|
101
|
+
end
|
102
|
+
|
103
|
+
def load_roles
|
104
|
+
@roles = Spree::Role.accessible_by(current_ability)
|
105
|
+
end
|
106
|
+
|
107
|
+
def model_class
|
108
|
+
Spree.admin_user_class
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
@@ -3,14 +3,8 @@ module Spree
|
|
3
3
|
class AssetsController < ResourceController
|
4
4
|
include Spree::Admin::SessionAssetsHelper
|
5
5
|
|
6
|
-
ALLOWED_ASSET_TYPES = ['Spree::Asset', 'Spree::Image'].freeze
|
7
|
-
|
8
6
|
def create
|
9
|
-
|
10
|
-
@asset = asset_type.constantize.new(permitted_resource_params)
|
11
|
-
else
|
12
|
-
raise "Invalid asset type"
|
13
|
-
end
|
7
|
+
@asset = asset_type.new(permitted_resource_params)
|
14
8
|
|
15
9
|
# we only should check this for vendor users
|
16
10
|
authorize! :update, @asset.viewable if @asset.viewable.present? && current_vendor
|
@@ -47,7 +41,7 @@ module Spree
|
|
47
41
|
private
|
48
42
|
|
49
43
|
def permitted_resource_params
|
50
|
-
params.require(:asset).permit(
|
44
|
+
params.require(:asset).permit(Spree::PermittedAttributes.asset_attributes)
|
51
45
|
end
|
52
46
|
|
53
47
|
def create_turbo_stream_enabled?
|
@@ -63,7 +57,11 @@ module Spree
|
|
63
57
|
end
|
64
58
|
|
65
59
|
def asset_type
|
66
|
-
permitted_resource_params[:type] || model_class
|
60
|
+
allowed_asset_types.find { |type| type.to_s == permitted_resource_params[:type] } || model_class
|
61
|
+
end
|
62
|
+
|
63
|
+
def allowed_asset_types
|
64
|
+
[Spree::Asset, Spree::Image]
|
67
65
|
end
|
68
66
|
end
|
69
67
|
end
|