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
@@ -15,6 +15,12 @@ module Spree
|
|
15
15
|
|
16
16
|
before_action :load_form_data, only: [:new, :create, :edit, :update]
|
17
17
|
|
18
|
+
add_breadcrumb Spree.t(:products), :admin_products_path
|
19
|
+
add_breadcrumb Spree.t(:taxonomies), :admin_taxonomies_path
|
20
|
+
|
21
|
+
add_breadcrumb_icon 'package'
|
22
|
+
before_action :add_breadcrumb_taxonomy
|
23
|
+
|
18
24
|
def show
|
19
25
|
redirect_to location_after_save
|
20
26
|
end
|
@@ -71,7 +77,10 @@ module Spree
|
|
71
77
|
end
|
72
78
|
|
73
79
|
def set_permalink_params
|
74
|
-
|
80
|
+
return unless params[:permalink_part]
|
81
|
+
|
82
|
+
params[:taxon] ||= {}
|
83
|
+
params[:taxon][:permalink] = [@parent_permalink.presence, params[:permalink_part]].compact_blank.join('/')
|
75
84
|
end
|
76
85
|
|
77
86
|
def collection_url
|
@@ -93,6 +102,20 @@ module Spree
|
|
93
102
|
[Spree.t("admin.taxon_rules.match_policies.#{policy}"), policy]
|
94
103
|
end
|
95
104
|
end
|
105
|
+
|
106
|
+
def add_breadcrumb_taxonomy
|
107
|
+
return unless @taxonomy.present?
|
108
|
+
|
109
|
+
add_breadcrumb @taxonomy.name, collection_url
|
110
|
+
|
111
|
+
if @object.present? && @object.persisted?
|
112
|
+
add_breadcrumb @object.name, spree.edit_admin_taxonomy_taxon_path(@taxonomy, @object.id)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def permitted_resource_params
|
117
|
+
params.require(:taxon).permit(permitted_taxon_attributes)
|
118
|
+
end
|
96
119
|
end
|
97
120
|
end
|
98
121
|
end
|
@@ -3,6 +3,9 @@ module Spree
|
|
3
3
|
class ThemesController < ResourceController
|
4
4
|
layout :choose_layout
|
5
5
|
|
6
|
+
include StorefrontBreadcrumbConcern
|
7
|
+
add_breadcrumb Spree.t(:themes), :admin_themes_path
|
8
|
+
|
6
9
|
def edit
|
7
10
|
@theme_preview = params[:theme_preview_id].present? ? @theme.previews.find(params[:theme_preview_id]) : @theme.create_preview
|
8
11
|
@page = if params[:page_id].present?
|
@@ -70,6 +73,10 @@ module Spree
|
|
70
73
|
def collection
|
71
74
|
super.without_previews.order(default: :desc).includes(screenshot_attachment: :blob)
|
72
75
|
end
|
76
|
+
|
77
|
+
def permitted_resource_params
|
78
|
+
params.require(:theme).permit(permitted_theme_attributes + @object.preferences.keys.map { |key| "preferred_#{key}" })
|
79
|
+
end
|
73
80
|
end
|
74
81
|
end
|
75
82
|
end
|
@@ -36,7 +36,15 @@ module Spree
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def resource_class
|
39
|
-
@resource_class ||=
|
39
|
+
@resource_class ||= begin
|
40
|
+
klass = params[:resource_type]
|
41
|
+
allowed_resource_class.find { |allowed_class| allowed_class.to_s == klass } ||
|
42
|
+
raise(ActiveRecord::RecordNotFound, "Resource type not found")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def allowed_resource_class
|
47
|
+
Rails.application.config.spree.translatable_resources
|
40
48
|
end
|
41
49
|
|
42
50
|
def set_resource
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Spree
|
2
|
+
module Admin
|
3
|
+
class UserPasswordsController < defined?(Devise::PasswordsController) ? Devise::PasswordsController : Spree::Admin::BaseController
|
4
|
+
layout 'spree/minimal'
|
5
|
+
|
6
|
+
def create
|
7
|
+
self.resource = resource_class.send_reset_password_instructions(resource_params)
|
8
|
+
yield resource if block_given?
|
9
|
+
|
10
|
+
set_flash_message(:notice, :send_instructions) if is_navigational_format?
|
11
|
+
# Don't not show error message that the email was not found
|
12
|
+
respond_with({}, location: after_sending_reset_password_instructions_path_for(resource_name))
|
13
|
+
end
|
14
|
+
|
15
|
+
protected
|
16
|
+
|
17
|
+
def translation_scope
|
18
|
+
'devise.user_passwords'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Spree
|
2
|
+
module Admin
|
3
|
+
class UserSessionsController < defined?(Devise::SessionsController) ? Devise::SessionsController : Spree::Admin::BaseController
|
4
|
+
layout 'spree/minimal'
|
5
|
+
|
6
|
+
# We need to overwrite this action because `return_to` url may be in a different domain
|
7
|
+
# So we need to pass `allow_other_host` option to `redirect_to` method
|
8
|
+
def create
|
9
|
+
self.resource = warden.authenticate!(auth_options)
|
10
|
+
set_flash_message!(:notice, :signed_in)
|
11
|
+
sign_in(resource_name, resource)
|
12
|
+
yield resource if block_given?
|
13
|
+
redirect_to after_sign_in_path_for(resource), allow_other_host: true
|
14
|
+
end
|
15
|
+
|
16
|
+
protected
|
17
|
+
|
18
|
+
def translation_scope
|
19
|
+
'devise.user_sessions'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -10,7 +10,12 @@ module Spree
|
|
10
10
|
before_action :load_last_order_data, only: :show
|
11
11
|
before_action :remove_empty_params, only: :update
|
12
12
|
|
13
|
-
|
13
|
+
add_breadcrumb_icon 'users'
|
14
|
+
add_breadcrumb Spree.t(:customers), :admin_users_path
|
15
|
+
|
16
|
+
def show
|
17
|
+
add_breadcrumb @user.name, spree.admin_user_path(@user)
|
18
|
+
end
|
14
19
|
|
15
20
|
def create
|
16
21
|
@user = Spree.user_class.new(user_params)
|
@@ -52,7 +57,7 @@ module Spree
|
|
52
57
|
params[:q][:s] ||= 'created_at desc'
|
53
58
|
params[:q][:created_at_not_null] ||= 1
|
54
59
|
|
55
|
-
@collection =
|
60
|
+
@collection = model_class.accessible_by(current_ability, :index)
|
56
61
|
@search = @collection.ransack(params[:q])
|
57
62
|
@collection = @search.result(distinct: true).
|
58
63
|
includes(
|
@@ -64,6 +69,10 @@ module Spree
|
|
64
69
|
page(params[:page]).per(params[:per_page])
|
65
70
|
end
|
66
71
|
|
72
|
+
def find_resource
|
73
|
+
model_class.accessible_by(current_ability, :show).find(params[:id])
|
74
|
+
end
|
75
|
+
|
67
76
|
private
|
68
77
|
|
69
78
|
def user_params
|
@@ -3,9 +3,12 @@ module Spree
|
|
3
3
|
class VariantsController < ResourceController
|
4
4
|
include StockLocationsHelper
|
5
5
|
|
6
|
+
include ProductsBreadcrumbConcern
|
7
|
+
|
6
8
|
belongs_to 'spree/product', find_by: :slug
|
7
9
|
before_action :load_data, only: [:edit, :update]
|
8
10
|
before_action :strip_attributes, only: [:update]
|
11
|
+
before_action :add_breadcrumbs
|
9
12
|
|
10
13
|
edit_action.before :build_prices
|
11
14
|
edit_action.before :build_stock_items
|
@@ -85,6 +88,16 @@ module Spree
|
|
85
88
|
params[:variant].delete(:prices_attributes) unless can?(:manage, @variant.prices.first)
|
86
89
|
params[:variant].delete(:stock_items_attributes) unless can?(:manage, @variant.stock_items.first)
|
87
90
|
end
|
91
|
+
|
92
|
+
def add_breadcrumbs
|
93
|
+
if @variant.present? && @variant.persisted?
|
94
|
+
add_breadcrumb @variant.human_name, spree.edit_admin_product_variant_path(@product, @variant)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def permitted_resource_params
|
99
|
+
params.require(:variant).permit(permitted_variant_attributes)
|
100
|
+
end
|
88
101
|
end
|
89
102
|
end
|
90
103
|
end
|
@@ -1,19 +1,13 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class WebhooksSubscribersController < ResourceController
|
4
|
+
before_action :set_supported_events, except: [:index, :show]
|
5
|
+
|
4
6
|
create.before :process_subscriptions
|
5
7
|
update.before :process_subscriptions
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
-
params[:q][:s] ||= 'created_at desc'
|
10
|
-
|
11
|
-
search = Webhooks::Subscriber.accessible_by(current_ability).ransack(params[:q])
|
12
|
-
@webhooks_subscribers = search.result.
|
13
|
-
includes(:events).
|
14
|
-
page(params[:page]).
|
15
|
-
per(params[:per_page])
|
16
|
-
end
|
9
|
+
add_breadcrumb Spree.t(:developers), :admin_oauth_applications_path
|
10
|
+
add_breadcrumb Spree.t(:webhooks), :admin_webhooks_subscribers_path
|
17
11
|
|
18
12
|
def show
|
19
13
|
@webhooks_subscriber = Webhooks::Subscriber.find(params[:id])
|
@@ -26,7 +20,19 @@ module Spree
|
|
26
20
|
@resource ||= Spree::Admin::Resource.new 'spree/admin/webhooks/subscribers', 'subscribers', nil
|
27
21
|
end
|
28
22
|
|
23
|
+
def collection
|
24
|
+
params[:q] ||= {}
|
25
|
+
params[:q][:s] ||= 'created_at desc'
|
26
|
+
|
27
|
+
@search = Webhooks::Subscriber.accessible_by(current_ability).ransack(params[:q])
|
28
|
+
@collection = @search.result.
|
29
|
+
page(params[:page]).
|
30
|
+
per(params[:per_page])
|
31
|
+
end
|
32
|
+
|
29
33
|
def process_subscriptions
|
34
|
+
return if params[:webhooks_subscriber].blank?
|
35
|
+
|
30
36
|
params[:webhooks_subscriber][:subscriptions] = if params[:subscribe_to_all_events] == 'true'
|
31
37
|
['*']
|
32
38
|
else
|
@@ -37,12 +43,28 @@ module Spree
|
|
37
43
|
end
|
38
44
|
|
39
45
|
def selected_events
|
40
|
-
supported_events.select { |resource, _events| params[:webhooks_subscriber][resource] == 'true' }.values.flatten
|
46
|
+
@supported_events.select { |resource, _events| params[:webhooks_subscriber][resource] == 'true' }.values.flatten
|
41
47
|
end
|
42
48
|
|
43
|
-
def
|
49
|
+
def set_supported_events
|
44
50
|
@supported_events ||= Spree::Webhooks::Subscriber.supported_events
|
45
51
|
end
|
52
|
+
|
53
|
+
def supported_events
|
54
|
+
@supported_events
|
55
|
+
end
|
56
|
+
|
57
|
+
def permitted_resource_params
|
58
|
+
params.require(:webhooks_subscriber).permit(:url, :active, subscriptions: [])
|
59
|
+
end
|
60
|
+
|
61
|
+
def location_after_create
|
62
|
+
location_after_save
|
63
|
+
end
|
64
|
+
|
65
|
+
def location_after_save
|
66
|
+
spree.admin_webhooks_subscriber_path(@object)
|
67
|
+
end
|
46
68
|
end
|
47
69
|
end
|
48
70
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class ZonesController < ResourceController
|
4
|
+
add_breadcrumb Spree.t(:zones), :admin_zones_path
|
4
5
|
before_action :load_data, except: :index
|
5
6
|
|
6
7
|
def new
|
@@ -32,6 +33,10 @@ module Spree
|
|
32
33
|
@states = @selected_country&.states&.order(:name) || Spree::State.none
|
33
34
|
@zones = Zone.order(:name)
|
34
35
|
end
|
36
|
+
|
37
|
+
def permitted_resource_params
|
38
|
+
params.require(:zone).permit(permitted_zone_attributes)
|
39
|
+
end
|
35
40
|
end
|
36
41
|
end
|
37
42
|
end
|
@@ -10,7 +10,7 @@ module Spree
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def enterprise_edition?
|
13
|
-
defined?(
|
13
|
+
defined?(SpreeEnterprise)
|
14
14
|
end
|
15
15
|
|
16
16
|
def spree_updater
|
@@ -25,12 +25,10 @@ module Spree
|
|
25
25
|
# this is used to display different sidebar navigation for settings pages
|
26
26
|
# @return [Boolean]
|
27
27
|
def settings_active?
|
28
|
-
@settings_active || %w[
|
29
|
-
payment_methods refund_reasons reimbursement_types
|
30
|
-
shipping_categories store_credit_categories
|
31
|
-
|
32
|
-
custom_domains audits exports imports return_authorization_reasons
|
33
|
-
documents stripe_tax_registrations members subscriptions stock_locations webhooks_subscribers].include?(controller_name)
|
28
|
+
@settings_active || %w[admin_users audits custom_domains exports imports invitations oauth_applications
|
29
|
+
payment_methods refund_reasons reimbursement_types return_authorization_reasons roles
|
30
|
+
shipping_categories shipping_methods stock_locations store_credit_categories
|
31
|
+
stores tax_categories tax_rates webhooks webhooks_subscribers zones].include?(controller_name)
|
34
32
|
end
|
35
33
|
|
36
34
|
# @return [Array<String>] the available countries for checkout
|
@@ -199,37 +197,40 @@ module Spree
|
|
199
197
|
# renders all the preference fields for an object
|
200
198
|
# @param object [Spree::TaxRate, Spree::Calculator, Spree::PaymentMethod, Spree::ShippingMethod, Spree::Store] the object to render the preference fields for
|
201
199
|
# @param form [ActionView::Helpers::FormBuilder] the form builder
|
200
|
+
# @param i18n_scope [String] the i18n scope for the preference fields
|
202
201
|
# @return [String] the preference fields
|
203
|
-
def preference_fields(object, form)
|
202
|
+
def preference_fields(object, form, i18n_scope: '')
|
204
203
|
return unless object.respond_to?(:preferences)
|
205
204
|
|
206
|
-
fields = object.preferences.keys.map
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
end
|
205
|
+
fields = object.preferences.keys.map { |key| preference_field(object, form, key, i18n_scope: i18n_scope) }
|
206
|
+
safe_join(fields)
|
207
|
+
end
|
208
|
+
|
209
|
+
def preference_field(object, form, key, i18n_scope: '')
|
210
|
+
return unless object.has_preference?(key)
|
211
|
+
|
212
|
+
case key
|
213
|
+
when :currency
|
214
|
+
content_tag(:div, form.label("preferred_#{key}", Spree.t(key, scope: i18n_scope)) +
|
215
|
+
form.currency_select("preferred_#{key}", current_store.supported_currencies.split(','), {}, { class: 'custom-select', disabled: current_store.supported_currencies.split(',').count == 1 }),
|
216
|
+
class: 'form-group', id: [object.class.to_s.parameterize, 'preference', key].join('-'))
|
217
|
+
else
|
218
|
+
if object.preference_type(key).to_sym == :boolean
|
219
|
+
content_tag(:div, class: 'form-group custom-control custom-checkbox') do
|
220
|
+
preference_field_for(form, "preferred_#{key}", type: object.preference_type(key)) +
|
221
|
+
form.label(
|
222
|
+
"preferred_#{key}",
|
223
|
+
Spree.t(key, scope: i18n_scope),
|
224
|
+
class: 'custom-control-label',
|
225
|
+
id: [object.class.to_s.parameterize, 'preference', key].join('-')
|
226
|
+
)
|
229
227
|
end
|
228
|
+
else
|
229
|
+
content_tag(:div, form.label("preferred_#{key}", Spree.t(key, scope: i18n_scope)) +
|
230
|
+
preference_field_for(form, "preferred_#{key}", type: object.preference_type(key)),
|
231
|
+
class: 'form-group', id: [object.class.to_s.parameterize, 'preference', key].join('-'))
|
230
232
|
end
|
231
233
|
end
|
232
|
-
safe_join(fields)
|
233
234
|
end
|
234
235
|
|
235
236
|
def spree_dom_id(record)
|
@@ -51,7 +51,13 @@ module Spree
|
|
51
51
|
options[:class] ||= 'btn btn-light'
|
52
52
|
|
53
53
|
if options[:icon]
|
54
|
-
|
54
|
+
if options[:only_icon]
|
55
|
+
options[:title] = text
|
56
|
+
text = icon(options[:icon], class: 'mr-0')
|
57
|
+
options[:class] += ' with-tip'
|
58
|
+
else
|
59
|
+
text = icon(options[:icon]) + ' ' + text
|
60
|
+
end
|
55
61
|
end
|
56
62
|
|
57
63
|
content_tag :span, data: { toggle: 'modal', target: '#bulk-modal' } do
|
@@ -76,7 +82,7 @@ module Spree
|
|
76
82
|
# render a counter for the bulk operations
|
77
83
|
# @return [String]
|
78
84
|
def bulk_operations_counter
|
79
|
-
content_tag(:span, class: 'bulk-operations-counter
|
85
|
+
content_tag(:span, class: 'bulk-operations-counter') do
|
80
86
|
content_tag(:strong, '', data: { bulk_operation_target: 'counter' }) +
|
81
87
|
Spree.t("admin.selected")
|
82
88
|
end
|
@@ -20,7 +20,7 @@ module Spree
|
|
20
20
|
# render a discard button for the modal
|
21
21
|
# @return [String]
|
22
22
|
def modal_discard_button
|
23
|
-
button_tag(type: 'button', class: 'btn btn-light', data: { dismiss: 'modal' }) do
|
23
|
+
button_tag(type: 'button', class: 'btn btn-light mr-auto', data: { dismiss: 'modal' }) do
|
24
24
|
Spree.t('actions.discard')
|
25
25
|
end.html_safe
|
26
26
|
end
|
@@ -52,11 +52,9 @@ module Spree
|
|
52
52
|
# @param per_page [Integer] the number of items per page
|
53
53
|
# @return [Hash] the params to apply per page
|
54
54
|
def per_page_dropdown_params(per_page)
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
args.merge!(per_page: per_page)
|
59
|
-
args
|
55
|
+
# Keep only safe query params that should survive pagination changes
|
56
|
+
safe_params = request.query_parameters.slice(:q)
|
57
|
+
safe_params.merge(per_page: per_page, page: nil)
|
60
58
|
end
|
61
59
|
|
62
60
|
# render a button link to edit a resource
|
@@ -190,7 +188,7 @@ module Spree
|
|
190
188
|
# @return [String] the badge with the icon
|
191
189
|
def active_badge(condition, options = {})
|
192
190
|
label = options[:label]
|
193
|
-
label ||= condition ? Spree.t(:say_yes) : Spree.t(:say_no)
|
191
|
+
label ||= condition ? Spree.t(:say_yes).to_s : Spree.t(:say_no).to_s
|
194
192
|
label = icon('check') + label if condition
|
195
193
|
|
196
194
|
css_class = condition ? 'badge-active' : 'badge-inactive'
|
@@ -268,6 +266,14 @@ module Spree
|
|
268
266
|
css ||= 'text-muted'
|
269
267
|
content_tag :small, icon('info-square-rounded', class: css), data: { placement: placement }, class: "with-tip #{css}", title: text
|
270
268
|
end
|
269
|
+
|
270
|
+
def render_breadcrumb_icon
|
271
|
+
if settings_active?
|
272
|
+
icon('settings')
|
273
|
+
elsif @breadcrumb_icon
|
274
|
+
icon(@breadcrumb_icon)
|
275
|
+
end
|
276
|
+
end
|
271
277
|
end
|
272
278
|
end
|
273
279
|
end
|
@@ -7,7 +7,7 @@ module Spree
|
|
7
7
|
|
8
8
|
def store_uploaded_asset_in_session(asset)
|
9
9
|
ensure_session_uploaded_assets_uuid
|
10
|
-
asset.update(
|
10
|
+
asset.update(session_id: session['spree.admin.uploaded_assets.uuid'])
|
11
11
|
end
|
12
12
|
|
13
13
|
def session_uploaded_assets
|
@@ -4,7 +4,7 @@ module Spree
|
|
4
4
|
include Spree::ImagesHelper
|
5
5
|
|
6
6
|
def available_stores
|
7
|
-
@available_stores ||= Spree::Store.accessible_by(current_ability)
|
7
|
+
@available_stores ||= Spree::Store.accessible_by(current_ability).includes(:logo_attachment, :favicon_image_attachment, :default_custom_domain)
|
8
8
|
end
|
9
9
|
|
10
10
|
DEFAULT_ICON_SIZE = 40
|
@@ -36,23 +36,6 @@ module Spree
|
|
36
36
|
opts[:class] += ' rounded text-dark d-flex align-items-center justify-content-center bg-gray-200'
|
37
37
|
content_tag(:span, name[0].upcase, class: opts[:class], style: "height: #{opts[:height]}px; width: #{opts[:width]}px;")
|
38
38
|
end
|
39
|
-
|
40
|
-
def store_logo(store = nil, options = {})
|
41
|
-
store ||= current_store
|
42
|
-
return unless store
|
43
|
-
|
44
|
-
opts = { width: 30, height: 30, crop: :fit, quality: :auto, fetch_format: :auto, alt: store.name, title: store.name, class: 'with-tip' }
|
45
|
-
opts.merge!(options)
|
46
|
-
|
47
|
-
if store.is_a?(Spree::Store) && store.logo&.attached? && store.logo&.variable?
|
48
|
-
spree_image_tag(store.logo, class: opts[:class], width: opts[:width], height: opts[:height])
|
49
|
-
else
|
50
|
-
initials = store.name.split.map(&:first).join.upcase
|
51
|
-
content_tag(:div, initials, class: "avatar rounded with-tip bg-light",
|
52
|
-
style: "width: #{opts[:height]}px; height: #{opts[:height]}px;",
|
53
|
-
title: store.name)
|
54
|
-
end
|
55
|
-
end
|
56
39
|
end
|
57
40
|
end
|
58
41
|
end
|
@@ -12,7 +12,7 @@ module Spree
|
|
12
12
|
def post_tags_scope
|
13
13
|
@post_tags_scope ||= ActsAsTaggableOn::Tag.
|
14
14
|
joins(:taggings).
|
15
|
-
where(
|
15
|
+
where(ActsAsTaggableOn.taggings_table => { taggable_type: 'Spree::Post' }).
|
16
16
|
for_context(:tags).for_tenant(current_store.id)
|
17
17
|
end
|
18
18
|
|
@@ -23,7 +23,7 @@ module Spree
|
|
23
23
|
def user_tags_scope
|
24
24
|
@user_tags_scope ||= ActsAsTaggableOn::Tag.
|
25
25
|
joins(:taggings).
|
26
|
-
where(
|
26
|
+
where(ActsAsTaggableOn.taggings_table => { taggable_type: Spree.user_class.to_s }).
|
27
27
|
for_context(:tags)
|
28
28
|
end
|
29
29
|
|
@@ -78,9 +78,9 @@ import StockTransferController from 'spree/admin/controllers/stock_transfer_cont
|
|
78
78
|
import StoreFormController from 'spree/admin/controllers/store_form_controller'
|
79
79
|
import UnitSystemController from 'spree/admin/controllers/unit_system_controller'
|
80
80
|
import VariantsFormController from 'spree/admin/controllers/variants_form_controller'
|
81
|
-
import WebhooksSubscriberEventsController from 'spree/admin/controllers/webhook_subscriber_events_controller'
|
82
81
|
import AddressAutocompleteController from 'spree/core/controllers/address_autocomplete_controller'
|
83
82
|
import AddressFormController from 'spree/core/controllers/address_form_controller'
|
83
|
+
import DisableSubmitButtonController from 'spree/core/controllers/disable_submit_button_controller'
|
84
84
|
import EnableButtonController from 'spree/core/controllers/enable_button_controller'
|
85
85
|
|
86
86
|
application.register('active-storage-upload', ActiveStorageUpload)
|
@@ -99,6 +99,7 @@ application.register('checkbox-select-all', CheckboxSelectAll)
|
|
99
99
|
application.register('clipboard', Clipboard)
|
100
100
|
application.register('color-palette', ColorPaletteController)
|
101
101
|
application.register('color-picker', ColorPickerController)
|
102
|
+
application.register('disable-submit-button', DisableSubmitButtonController)
|
102
103
|
application.register('enable-button', EnableButtonController)
|
103
104
|
application.register('filters', FiltersController)
|
104
105
|
application.register('font-picker', FontPickerController)
|
@@ -131,7 +132,6 @@ application.register('tabs', Tabs)
|
|
131
132
|
application.register('textarea-autogrow', TextareaAutogrow)
|
132
133
|
application.register('unit-system', UnitSystemController)
|
133
134
|
application.register('variants-form', VariantsFormController)
|
134
|
-
application.register('webhooks-subscriber-events', WebhooksSubscriberEventsController)
|
135
135
|
|
136
136
|
LocalTime.start()
|
137
137
|
|
@@ -11,7 +11,8 @@ export default class extends Controller {
|
|
11
11
|
viewableType: String,
|
12
12
|
multiple: { type: Boolean, default: false },
|
13
13
|
type: { type: String, default: 'image' },
|
14
|
-
allowedFileTypes: { type: Array, default: [] }
|
14
|
+
allowedFileTypes: { type: Array, default: [] },
|
15
|
+
adminAssetsPath: String
|
15
16
|
}
|
16
17
|
|
17
18
|
connect() {
|
@@ -43,7 +44,7 @@ export default class extends Controller {
|
|
43
44
|
}
|
44
45
|
|
45
46
|
handleSuccessResult(response) {
|
46
|
-
post(
|
47
|
+
post(this.adminAssetsPathValue, {
|
47
48
|
body: JSON.stringify({
|
48
49
|
asset: {
|
49
50
|
type: this.assetClassValue,
|
@@ -37,7 +37,8 @@ export default class extends CheckboxSelectAll {
|
|
37
37
|
currentStockLocationId: String,
|
38
38
|
stockLocations: Array,
|
39
39
|
optionValuesSelectOptions: Array,
|
40
|
-
locale: String
|
40
|
+
locale: String,
|
41
|
+
adminPath: String
|
41
42
|
}
|
42
43
|
|
43
44
|
connect() {
|
@@ -724,7 +725,7 @@ export default class extends CheckboxSelectAll {
|
|
724
725
|
this.lastOptionNameId = targetInput.value
|
725
726
|
|
726
727
|
if (this.lastOptionNameId) {
|
727
|
-
const response = await get(
|
728
|
+
const response = await get(`${this.adminPathValue}/option_types/${this.lastOptionNameId}/option_values/select_options`)
|
728
729
|
|
729
730
|
if (response.ok) {
|
730
731
|
this.currentOptionValues[this.lastOptionNameId] = await response.json
|
@@ -4,11 +4,11 @@ import { lockScroll, unlockScroll } from 'spree/core/helpers/scroll_lock'
|
|
4
4
|
|
5
5
|
|
6
6
|
const initTooltips = () => {
|
7
|
-
$('.with-tip, .trix-button').each(function() {
|
7
|
+
$('.with-tip, .trix-button, .uppy-Dashboard-close, time').each(function() {
|
8
8
|
$(this).tooltip()
|
9
9
|
})
|
10
10
|
|
11
|
-
$('.with-tip, .trix-button').on('show.bs.tooltip', function(event) {
|
11
|
+
$('.with-tip, .trix-button, .uppy-Dashboard-close, time').on('show.bs.tooltip', function(event) {
|
12
12
|
if (('ontouchstart' in window)) {
|
13
13
|
event.preventDefault()
|
14
14
|
}
|
@@ -16,7 +16,7 @@ const initTooltips = () => {
|
|
16
16
|
}
|
17
17
|
|
18
18
|
const removeTooltips = () => {
|
19
|
-
$('.with-tip, .trix-button').each(function() {
|
19
|
+
$('.with-tip, .trix-button, .uppy-Dashboard-close, time').each(function() {
|
20
20
|
$(this).tooltip('dispose')
|
21
21
|
})
|
22
22
|
}
|
@@ -90,7 +90,7 @@ document.addEventListener("trix-attachment-remove", async function(event) {
|
|
90
90
|
const { attachment } = event
|
91
91
|
const { sgid } = attachment.attachment.attributes.values
|
92
92
|
|
93
|
-
destroy(
|
93
|
+
destroy(`${Spree.adminPath}/action_text/video_embeds/${sgid}`, { responseKind: 'json' })
|
94
94
|
})
|
95
95
|
|
96
96
|
function initializeTrixEditor(editor) {
|
@@ -129,7 +129,7 @@ function initializeTrixEditor(editor) {
|
|
129
129
|
|
130
130
|
errorMessage.innerHTML = ''
|
131
131
|
|
132
|
-
const response = await post(
|
132
|
+
const response = await post(`${Spree.adminPath}/action_text/video_embeds`, { body: JSON.stringify({ url: input.value }), responseKind: 'json' })
|
133
133
|
|
134
134
|
if (response.ok) {
|
135
135
|
const { sgid, content } = await response.json
|