spree_admin 5.2.0.rc2 → 5.2.0.rc3
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/stylesheets/spree/admin/components/_alerts.scss +1 -1
- data/app/assets/stylesheets/spree/admin/components/_buttons.scss +5 -4
- data/app/assets/stylesheets/spree/admin/components/_dialogs.scss +0 -1
- data/app/assets/stylesheets/spree/admin/components/_dropdowns.scss +4 -0
- data/app/assets/stylesheets/spree/admin/components/_main.scss +7 -7
- data/app/assets/stylesheets/spree/admin/components/_tables.scss +2 -2
- data/app/assets/stylesheets/spree/admin/components/_variants_form.scss +1 -2
- data/app/assets/stylesheets/spree/admin/global/_variables.scss +14 -12
- data/app/assets/stylesheets/spree/admin/shared/_base.scss +2 -2
- data/app/assets/stylesheets/spree/admin/shared/_forms.scss +5 -6
- data/app/controllers/spree/admin/admin_users_controller.rb +0 -2
- data/app/controllers/spree/admin/checkouts_controller.rb +1 -4
- data/app/controllers/spree/admin/coupon_codes_controller.rb +0 -14
- data/app/controllers/spree/admin/customer_returns_controller.rb +0 -13
- data/app/controllers/spree/admin/digital_assets_controller.rb +2 -2
- data/app/controllers/spree/admin/exports_controller.rb +2 -9
- data/app/controllers/spree/admin/gift_cards_controller.rb +7 -14
- data/app/controllers/spree/admin/invitations_controller.rb +0 -2
- data/app/controllers/spree/admin/oauth_applications_controller.rb +0 -10
- data/app/controllers/spree/admin/option_types_controller.rb +0 -10
- data/app/controllers/spree/admin/orders_controller.rb +1 -1
- data/app/controllers/spree/admin/pages_controller.rb +1 -1
- data/app/controllers/spree/admin/payment_methods_controller.rb +0 -10
- data/app/controllers/spree/admin/policies_controller.rb +4 -0
- data/app/controllers/spree/admin/posts_controller.rb +2 -10
- data/app/controllers/spree/admin/properties_controller.rb +0 -12
- data/app/controllers/spree/admin/resource_controller.rb +27 -17
- data/app/controllers/spree/admin/return_authorizations_controller.rb +0 -10
- data/app/controllers/spree/admin/shipping_methods_controller.rb +4 -0
- data/app/controllers/spree/admin/stock_items_controller.rb +8 -11
- data/app/controllers/spree/admin/stock_locations_controller.rb +1 -1
- data/app/controllers/spree/admin/stock_transfers_controller.rb +0 -10
- data/app/controllers/spree/admin/store_credits_controller.rb +35 -35
- data/app/controllers/spree/admin/taxonomies_controller.rb +0 -10
- data/app/controllers/spree/admin/themes_controller.rb +6 -2
- data/app/controllers/spree/admin/users_controller.rb +7 -17
- data/app/controllers/spree/admin/webhooks_subscribers_controller.rb +0 -10
- data/app/controllers/spree/admin/zones_controller.rb +0 -7
- data/app/helpers/spree/admin/dropdown_helper.rb +18 -16
- data/app/helpers/spree/admin/navigation_helper.rb +1 -1
- data/app/helpers/spree/admin/orders_filters_helper.rb +2 -0
- data/app/models/spree/admin/form_builder.rb +13 -12
- data/app/views/spree/admin/custom_domains/_custom_domains.html.erb +1 -1
- data/app/views/spree/admin/digital_assets/_table.html.erb +1 -1
- data/app/views/spree/admin/gift_cards/_filters.html.erb +2 -1
- data/app/views/spree/admin/integrations/index.html.erb +20 -8
- data/app/views/spree/admin/invitations/new.html.erb +2 -1
- data/app/views/spree/admin/metafield_definitions/_filters.html.erb +1 -1
- data/app/views/spree/admin/newsletter_subscribers/_filters.html.erb +1 -1
- data/app/views/spree/admin/newsletter_subscribers/_table_header.html.erb +2 -2
- data/app/views/spree/admin/oauth_applications/_table_header.html.erb +1 -1
- data/app/views/spree/admin/orders/_customer.html.erb +1 -1
- data/app/views/spree/admin/orders/_filters.html.erb +4 -5
- data/app/views/spree/admin/orders/_header.html.erb +0 -5
- data/app/views/spree/admin/orders/_list.html.erb +3 -3
- data/app/views/spree/admin/page_blocks/edit.html.erb +3 -3
- data/app/views/spree/admin/page_builder/_add_block.html.erb +1 -1
- data/app/views/spree/admin/page_builder/_header.html.erb +1 -1
- data/app/views/spree/admin/page_builder/_pages_dropdown.html.erb +2 -2
- data/app/views/spree/admin/page_builder/_sidebar_block.html.erb +1 -1
- data/app/views/spree/admin/page_builder/_sidebar_colors.html.erb +2 -2
- data/app/views/spree/admin/page_builder/_sidebar_fonts.html.erb +3 -3
- data/app/views/spree/admin/page_builder/_sidebar_section.html.erb +1 -1
- data/app/views/spree/admin/page_links/_list.html.erb +1 -1
- data/app/views/spree/admin/page_links/edit.html.erb +1 -1
- data/app/views/spree/admin/page_sections/edit.html.erb +3 -3
- data/app/views/spree/admin/page_sections/new.html.erb +1 -1
- data/app/views/spree/admin/pages/_table_header.html.erb +3 -3
- data/app/views/spree/admin/payment_methods/index.html.erb +5 -1
- data/app/views/spree/admin/policies/_filters.html.erb +1 -1
- data/app/views/spree/admin/products/_bulk_operations.html.erb +2 -2
- data/app/views/spree/admin/products/edit.html.erb +0 -2
- data/app/views/spree/admin/products/form/_status.html.erb +0 -3
- data/app/views/spree/admin/products/form/_variants.html.erb +1 -1
- data/app/views/spree/admin/promotions/_table_header.html.erb +1 -1
- data/app/views/spree/admin/promotions/form/_kind.html.erb +4 -4
- data/app/views/spree/admin/refund_reasons/_table_header.html.erb +1 -1
- data/app/views/spree/admin/reimbursement_types/_table_header.html.erb +1 -1
- data/app/views/spree/admin/return_authorization_reasons/_table_header.html.erb +1 -1
- data/app/views/spree/admin/roles/index.html.erb +1 -1
- data/app/views/spree/admin/shared/_calendar_range_picker.html.erb +2 -2
- data/app/views/spree/admin/shared/_content_header.html.erb +4 -1
- data/app/views/spree/admin/shared/_index_table.html.erb +5 -4
- data/app/views/spree/admin/shared/_index_table_options.html.erb +1 -1
- data/app/views/spree/admin/shared/_new_item_dropdown.html.erb +1 -1
- data/app/views/spree/admin/shared/_user_dropdown.html.erb +4 -3
- data/app/views/spree/admin/shared/sidebar/_store_dropdown.html.erb +1 -1
- data/app/views/spree/admin/shipping_categories/_table_header.html.erb +1 -1
- data/app/views/spree/admin/shipping_methods/_table_header.html.erb +1 -1
- data/app/views/spree/admin/stock_locations/_table_header.html.erb +2 -2
- data/app/views/spree/admin/store_credit_categories/index.html.erb +1 -1
- data/app/views/spree/admin/store_credits/_list.html.erb +3 -3
- data/app/views/spree/admin/stores/form/_checkout.html.erb +2 -2
- data/app/views/spree/admin/stores/form/_checkout_links.html.erb +1 -1
- data/app/views/spree/admin/tax_categories/_table_header.html.erb +2 -2
- data/app/views/spree/admin/tax_rates/_table_header.html.erb +2 -2
- data/app/views/spree/admin/taxonomies/_table_header.html.erb +1 -1
- data/app/views/spree/admin/users/_filters.html.erb +4 -5
- data/app/views/spree/admin/users/index.html.erb +1 -1
- data/config/locales/en.yml +2 -0
- data/lib/generators/spree/admin/scaffold/templates/views/_filters.html.erb.tt +1 -1
- data/lib/generators/spree/admin/scaffold/templates/views/_table_header.html.erb.tt +2 -2
- metadata +8 -8
|
@@ -11,18 +11,15 @@ module Spree
|
|
|
11
11
|
true
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
def
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
def scope
|
|
15
|
+
super.joins(:variant).where(spree_variants: { track_inventory: true }).merge(current_store.variants.eligible).reorder('')
|
|
16
|
+
end
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
includes(:stock_location, [variant: [product: [variants: [:images], master: [:images]], images: []]]).
|
|
24
|
-
page(params[:page]).
|
|
25
|
-
per(params[:per_page])
|
|
18
|
+
def collection_includes
|
|
19
|
+
{
|
|
20
|
+
stock_location: [],
|
|
21
|
+
variant: [option_values: :option_type, product: [variant_images: [], variants: [:images], master: [:images]], images: []]
|
|
22
|
+
}
|
|
26
23
|
end
|
|
27
24
|
|
|
28
25
|
def add_breadcrumbs
|
|
@@ -15,16 +15,6 @@ module Spree
|
|
|
15
15
|
spree.admin_stock_transfer_path(@object)
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
def collection
|
|
19
|
-
params[:q] ||= {}
|
|
20
|
-
params[:q][:s] ||= 'created_at desc'
|
|
21
|
-
|
|
22
|
-
@search = super.accessible_by(current_ability, :index).ransack(params[:q])
|
|
23
|
-
@stock_transfers = @search.result.
|
|
24
|
-
page(params[:page]).
|
|
25
|
-
per(params[:per_page])
|
|
26
|
-
end
|
|
27
|
-
|
|
28
18
|
def permitted_resource_params
|
|
29
19
|
params.require(:stock_transfer).permit(permitted_stock_transfer_attributes)
|
|
30
20
|
end
|
|
@@ -2,18 +2,10 @@ module Spree
|
|
|
2
2
|
module Admin
|
|
3
3
|
class StoreCreditError < StandardError; end
|
|
4
4
|
|
|
5
|
-
class StoreCreditsController < Spree::Admin::
|
|
6
|
-
before_action :
|
|
7
|
-
before_action :
|
|
5
|
+
class StoreCreditsController < Spree::Admin::ResourceController
|
|
6
|
+
before_action :set_breadcrumbs
|
|
7
|
+
before_action :set_user
|
|
8
8
|
before_action :ensure_unused_store_credit, only: [:update]
|
|
9
|
-
helper_method :collection_url
|
|
10
|
-
|
|
11
|
-
def index
|
|
12
|
-
@store_credits = scope.includes(:created_by).order(created_at: :desc)
|
|
13
|
-
@store_credits = @store_credits.page(params[:page]).per(params[:per_page])
|
|
14
|
-
|
|
15
|
-
@collection = @store_credits
|
|
16
|
-
end
|
|
17
9
|
|
|
18
10
|
def show
|
|
19
11
|
@store_credit = scope.find(params[:id])
|
|
@@ -21,8 +13,8 @@ module Spree
|
|
|
21
13
|
end
|
|
22
14
|
|
|
23
15
|
def create
|
|
24
|
-
@store_credit =
|
|
25
|
-
|
|
16
|
+
@store_credit = parent.store_credits.build(
|
|
17
|
+
permitted_resource_params.merge(
|
|
26
18
|
created_by: try_spree_current_user,
|
|
27
19
|
action_originator: try_spree_current_user,
|
|
28
20
|
store: current_store
|
|
@@ -31,7 +23,7 @@ module Spree
|
|
|
31
23
|
|
|
32
24
|
if @store_credit.save
|
|
33
25
|
flash[:success] = flash_message_for(@store_credit, :successfully_created)
|
|
34
|
-
redirect_to spree.admin_user_path(
|
|
26
|
+
redirect_to spree.admin_user_path(parent)
|
|
35
27
|
else
|
|
36
28
|
flash[:error] = Spree.t('store_credit.errors.unable_to_create')
|
|
37
29
|
render :new, status: :unprocessable_entity
|
|
@@ -39,11 +31,11 @@ module Spree
|
|
|
39
31
|
end
|
|
40
32
|
|
|
41
33
|
def update
|
|
42
|
-
@store_credit.assign_attributes(
|
|
34
|
+
@store_credit.assign_attributes(permitted_resource_params)
|
|
43
35
|
|
|
44
36
|
if @store_credit.save
|
|
45
37
|
flash[:success] = flash_message_for(@store_credit, :successfully_updated)
|
|
46
|
-
redirect_to spree.admin_user_store_credit_path(
|
|
38
|
+
redirect_to spree.admin_user_store_credit_path(parent, @store_credit)
|
|
47
39
|
else
|
|
48
40
|
flash[:error] = Spree.t('store_credit.errors.unable_to_update')
|
|
49
41
|
render :edit, status: :unprocessable_entity
|
|
@@ -59,37 +51,41 @@ module Spree
|
|
|
59
51
|
flash[:error] = Spree.t('store_credit.errors.unable_to_delete')
|
|
60
52
|
end
|
|
61
53
|
|
|
62
|
-
redirect_to spree.admin_user_path(
|
|
54
|
+
redirect_to spree.admin_user_path(parent)
|
|
63
55
|
end
|
|
64
56
|
|
|
65
57
|
protected
|
|
66
58
|
|
|
67
|
-
def
|
|
68
|
-
|
|
59
|
+
def parent
|
|
60
|
+
@parent ||= Spree.user_class.find_by(id: params[:user_id])
|
|
69
61
|
end
|
|
70
62
|
|
|
71
|
-
|
|
63
|
+
def parent_data
|
|
64
|
+
{
|
|
65
|
+
model_name: 'spree/user',
|
|
66
|
+
model_class: Spree.user_class,
|
|
67
|
+
find_by: :id
|
|
68
|
+
}
|
|
69
|
+
end
|
|
72
70
|
|
|
73
|
-
def
|
|
74
|
-
|
|
71
|
+
def permitted_resource_params
|
|
72
|
+
params.require(:store_credit).permit(permitted_store_credit_attributes)
|
|
73
|
+
end
|
|
75
74
|
|
|
76
|
-
|
|
77
|
-
flash[:error] = Spree.t(:user_not_found)
|
|
78
|
-
redirect_to spree.admin_path
|
|
79
|
-
end
|
|
75
|
+
private
|
|
80
76
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
add_breadcrumb @user.name, spree.admin_user_path(@user)
|
|
77
|
+
def set_user
|
|
78
|
+
@user = parent
|
|
84
79
|
end
|
|
85
80
|
|
|
86
|
-
def
|
|
87
|
-
|
|
88
|
-
@object = @store_credit
|
|
81
|
+
def object_url
|
|
82
|
+
spree.admin_user_store_credit_path(parent, @store_credit)
|
|
89
83
|
end
|
|
90
84
|
|
|
91
|
-
def
|
|
92
|
-
|
|
85
|
+
def set_breadcrumbs
|
|
86
|
+
@breadcrumb_icon = 'users'
|
|
87
|
+
add_breadcrumb Spree.t(:customers), :admin_users_path
|
|
88
|
+
add_breadcrumb parent.name, spree.admin_user_path(parent)
|
|
93
89
|
end
|
|
94
90
|
|
|
95
91
|
def ensure_unused_store_credit
|
|
@@ -99,7 +95,11 @@ module Spree
|
|
|
99
95
|
end
|
|
100
96
|
|
|
101
97
|
def collection_url
|
|
102
|
-
spree.admin_user_store_credits_path(
|
|
98
|
+
spree.admin_user_store_credits_path(parent)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def update_turbo_stream_enabled?
|
|
102
|
+
true
|
|
103
103
|
end
|
|
104
104
|
end
|
|
105
105
|
end
|
|
@@ -8,16 +8,6 @@ module Spree
|
|
|
8
8
|
|
|
9
9
|
private
|
|
10
10
|
|
|
11
|
-
def collection
|
|
12
|
-
return @collection if @collection.present?
|
|
13
|
-
|
|
14
|
-
@collection = super
|
|
15
|
-
|
|
16
|
-
params[:q] ||= {}
|
|
17
|
-
@search = @collection.ransack(params[:q])
|
|
18
|
-
@collection = @search.result.all
|
|
19
|
-
end
|
|
20
|
-
|
|
21
11
|
def location_after_save
|
|
22
12
|
spree.admin_taxonomy_path(@taxonomy)
|
|
23
13
|
end
|
|
@@ -70,8 +70,12 @@ module Spree
|
|
|
70
70
|
true
|
|
71
71
|
end
|
|
72
72
|
|
|
73
|
-
def
|
|
74
|
-
super.without_previews.order(default: :desc)
|
|
73
|
+
def scope
|
|
74
|
+
super.without_previews.order(default: :desc)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def collection_includes
|
|
78
|
+
{ screenshot_attachment: :blob }
|
|
75
79
|
end
|
|
76
80
|
|
|
77
81
|
def permitted_resource_params
|
|
@@ -50,23 +50,13 @@ module Spree
|
|
|
50
50
|
|
|
51
51
|
protected
|
|
52
52
|
|
|
53
|
-
def
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
@collection = model_class.accessible_by(current_ability, :index)
|
|
61
|
-
@search = @collection.ransack(params[:q])
|
|
62
|
-
@collection = @search.result(distinct: true).
|
|
63
|
-
includes(
|
|
64
|
-
addresses: [:country, :state],
|
|
65
|
-
ship_address: [:country, :state],
|
|
66
|
-
bill_address: [:country, :state],
|
|
67
|
-
avatar_attachment: :blob
|
|
68
|
-
).
|
|
69
|
-
page(params[:page]).per(params[:per_page])
|
|
53
|
+
def collection_includes
|
|
54
|
+
{
|
|
55
|
+
addresses: [:country, :state],
|
|
56
|
+
ship_address: [:country, :state],
|
|
57
|
+
bill_address: [:country, :state],
|
|
58
|
+
avatar_attachment: :blob
|
|
59
|
+
}
|
|
70
60
|
end
|
|
71
61
|
|
|
72
62
|
def find_resource
|
|
@@ -19,16 +19,6 @@ module Spree
|
|
|
19
19
|
@resource ||= Spree::Admin::Resource.new 'spree/admin/webhooks/subscribers', 'subscribers', nil
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
def collection
|
|
23
|
-
params[:q] ||= {}
|
|
24
|
-
params[:q][:s] ||= 'created_at desc'
|
|
25
|
-
|
|
26
|
-
@search = Webhooks::Subscriber.accessible_by(current_ability).ransack(params[:q])
|
|
27
|
-
@collection = @search.result.
|
|
28
|
-
page(params[:page]).
|
|
29
|
-
per(params[:per_page])
|
|
30
|
-
end
|
|
31
|
-
|
|
32
22
|
def process_subscriptions
|
|
33
23
|
return if params[:webhooks_subscriber].blank?
|
|
34
24
|
|
|
@@ -14,13 +14,6 @@ module Spree
|
|
|
14
14
|
edit_object_url(@object, states_country_id: @selected_country&.id)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
def collection
|
|
18
|
-
params[:q] ||= {}
|
|
19
|
-
params[:q][:s] ||= 'name asc'
|
|
20
|
-
@search = super.ransack(params[:q])
|
|
21
|
-
@zones = @search.result.page(params[:page]).per(params[:per_page])
|
|
22
|
-
end
|
|
23
|
-
|
|
24
17
|
def load_data
|
|
25
18
|
@selected_country = if params[:states_country_id]
|
|
26
19
|
Spree::Country.find_by(id: params[:states_country_id])
|
|
@@ -3,7 +3,23 @@ module Spree
|
|
|
3
3
|
module DropdownHelper
|
|
4
4
|
def dropdown(options = {}, &block)
|
|
5
5
|
options[:class] = ['dropdown'] + Array(options[:class])
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
# Extract direction option for backward compatibility and convert to Floating UI placement
|
|
8
|
+
placement = case options.delete(:direction)
|
|
9
|
+
when 'left'
|
|
10
|
+
'bottom-end'
|
|
11
|
+
when 'top'
|
|
12
|
+
'top-start'
|
|
13
|
+
when 'top-left'
|
|
14
|
+
'top-end'
|
|
15
|
+
else
|
|
16
|
+
options[:placement] || 'bottom-start'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
options[:data] = {
|
|
20
|
+
controller: 'dropdown',
|
|
21
|
+
dropdown_placement_value: placement
|
|
22
|
+
}.merge(options[:data] || {})
|
|
7
23
|
content_tag(:div, options, &block)
|
|
8
24
|
end
|
|
9
25
|
|
|
@@ -19,22 +35,8 @@ module Spree
|
|
|
19
35
|
|
|
20
36
|
def dropdown_menu(options = {}, &block)
|
|
21
37
|
options[:class] = ['dropdown-container hidden'] + Array(options[:class])
|
|
22
|
-
|
|
23
|
-
# Extract direction option for backward compatibility and convert to Floating UI placement
|
|
24
|
-
placement = case options.delete(:direction)
|
|
25
|
-
when 'left'
|
|
26
|
-
'bottom-end'
|
|
27
|
-
when 'top'
|
|
28
|
-
'top-start'
|
|
29
|
-
when 'top-left'
|
|
30
|
-
'top-end'
|
|
31
|
-
else
|
|
32
|
-
options[:placement] || 'bottom-start'
|
|
33
|
-
end
|
|
34
|
-
|
|
35
38
|
options[:data] = {
|
|
36
|
-
dropdown_target: 'menu'
|
|
37
|
-
dropdown_placement_value: placement
|
|
39
|
+
dropdown_target: 'menu'
|
|
38
40
|
}.merge(options[:data] || {})
|
|
39
41
|
|
|
40
42
|
content_tag(:div, options, &block)
|
|
@@ -248,7 +248,7 @@ module Spree
|
|
|
248
248
|
end
|
|
249
249
|
|
|
250
250
|
link_to url, class: 'd-flex align-items-center text-decoration-none' do
|
|
251
|
-
content_tag(:span, icon('chevron-left', class: 'mr-0'), class: 'btn hover-gray px-2 d-flex align-items-center') +
|
|
251
|
+
content_tag(:span, icon('chevron-left', class: 'mr-0'), class: 'btn hover-gray shadow-none px-2 d-flex align-items-center shadow-none') +
|
|
252
252
|
content_tag(:span, label, class: 'font-size-base text-black')
|
|
253
253
|
end
|
|
254
254
|
end
|
|
@@ -30,7 +30,7 @@ module Spree
|
|
|
30
30
|
@template.content_tag(:div, class: 'form-group') do
|
|
31
31
|
@template.label(@object_name, method, get_label(method, options)) +
|
|
32
32
|
@template.text_field(@object_name, method, objectify_options(options)) +
|
|
33
|
-
@template.error_message_on(@object_name, method) + field_help(method, options)
|
|
33
|
+
@template.error_message_on(@object_name, method) + field_help(method, options.merge(class: 'form-text mt-2'))
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
36
|
|
|
@@ -44,7 +44,7 @@ module Spree
|
|
|
44
44
|
@template.content_tag(:div, class: 'form-group') do
|
|
45
45
|
@template.label(@object_name, method, get_label(method, options)) +
|
|
46
46
|
@template.number_field(@object_name, method, objectify_options(options)) +
|
|
47
|
-
@template.error_message_on(@object_name, method) + field_help(method, options)
|
|
47
|
+
@template.error_message_on(@object_name, method) + field_help(method, options.merge(class: 'form-text mt-2'))
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
|
|
@@ -58,7 +58,7 @@ module Spree
|
|
|
58
58
|
@template.content_tag(:div, class: 'form-group') do
|
|
59
59
|
@template.label(@object_name, method, get_label(method, options)) +
|
|
60
60
|
@template.email_field(@object_name, method, objectify_options(options)) +
|
|
61
|
-
@template.error_message_on(@object_name, method) + field_help(method, options)
|
|
61
|
+
@template.error_message_on(@object_name, method) + field_help(method, options.merge(class: 'form-text mt-2'))
|
|
62
62
|
end
|
|
63
63
|
end
|
|
64
64
|
|
|
@@ -72,7 +72,7 @@ module Spree
|
|
|
72
72
|
@template.content_tag(:div, class: 'form-group') do
|
|
73
73
|
@template.label(@object_name, method, get_label(method, options)) +
|
|
74
74
|
@template.date_field(@object_name, method, objectify_options(options)) +
|
|
75
|
-
@template.error_message_on(@object_name, method) + field_help(method, options)
|
|
75
|
+
@template.error_message_on(@object_name, method) + field_help(method, options.merge(class: 'form-text mt-2'))
|
|
76
76
|
end
|
|
77
77
|
end
|
|
78
78
|
|
|
@@ -86,7 +86,7 @@ module Spree
|
|
|
86
86
|
@template.content_tag(:div, class: 'form-group') do
|
|
87
87
|
@template.label(@object_name, method, get_label(method, options)) +
|
|
88
88
|
@template.datetime_field(@object_name, method, objectify_options(options)) +
|
|
89
|
-
@template.error_message_on(@object_name, method) + field_help(method, options)
|
|
89
|
+
@template.error_message_on(@object_name, method) + field_help(method, options.merge(class: 'form-text mt-2'))
|
|
90
90
|
end
|
|
91
91
|
end
|
|
92
92
|
|
|
@@ -107,7 +107,7 @@ module Spree
|
|
|
107
107
|
|
|
108
108
|
@template.label(@object_name, method, get_label(method, options)) +
|
|
109
109
|
@template.text_area(@object_name, method, objectify_options(options)) +
|
|
110
|
-
@template.error_message_on(@object_name, method) + field_help(method, options)
|
|
110
|
+
@template.error_message_on(@object_name, method) + field_help(method, options.merge(class: 'form-text mt-2'))
|
|
111
111
|
end
|
|
112
112
|
end
|
|
113
113
|
|
|
@@ -122,7 +122,7 @@ module Spree
|
|
|
122
122
|
@template.content_tag(:div, class: 'trix-container') do
|
|
123
123
|
@template.rich_text_area(@object_name, method, objectify_options(options))
|
|
124
124
|
end +
|
|
125
|
-
@template.error_message_on(@object_name, method) + field_help(method, options)
|
|
125
|
+
@template.error_message_on(@object_name, method) + field_help(method, options.merge(class: 'form-text mt-2'))
|
|
126
126
|
end
|
|
127
127
|
end
|
|
128
128
|
|
|
@@ -147,7 +147,7 @@ module Spree
|
|
|
147
147
|
@template.content_tag(:div, class: 'form-group') do
|
|
148
148
|
@template.label(@object_name, method, get_label(method, options)) +
|
|
149
149
|
@template.select(@object_name, method, choices, objectify_options(options), html_options, &block) +
|
|
150
|
-
@template.error_message_on(@object_name, method) + field_help(method, options)
|
|
150
|
+
@template.error_message_on(@object_name, method) + field_help(method, options.merge(class: 'form-text mt-2'))
|
|
151
151
|
end
|
|
152
152
|
end
|
|
153
153
|
|
|
@@ -173,7 +173,7 @@ module Spree
|
|
|
173
173
|
@template.content_tag(:div, class: 'form-group') do
|
|
174
174
|
@template.label(@object_name, method, get_label(method, options)) +
|
|
175
175
|
@template.collection_select(@object_name, method, collection, value_method, text_method, objectify_options(options), html_options) +
|
|
176
|
-
@template.error_message_on(@object_name, method) + field_help(method, options)
|
|
176
|
+
@template.error_message_on(@object_name, method) + field_help(method, options.merge(class: 'form-text mt-2'))
|
|
177
177
|
end
|
|
178
178
|
end
|
|
179
179
|
|
|
@@ -187,7 +187,7 @@ module Spree
|
|
|
187
187
|
@template.content_tag(:div, class: 'custom-control custom-checkbox') do
|
|
188
188
|
@template.check_box(@object_name, method, objectify_options(options.merge(class: 'custom-control-input'))) +
|
|
189
189
|
@template.label(@object_name, method, get_label(method, options), class: 'custom-control-label')
|
|
190
|
-
end + @template.error_message_on(@object_name, method) + field_help(method, options)
|
|
190
|
+
end + @template.error_message_on(@object_name, method) + field_help(method, options.merge!(class: 'form-text mt-2 ml-4'))
|
|
191
191
|
end
|
|
192
192
|
end
|
|
193
193
|
|
|
@@ -204,7 +204,7 @@ module Spree
|
|
|
204
204
|
@template.content_tag(:div, class: 'custom-control custom-radio') do
|
|
205
205
|
@template.radio_button(@object_name, method, tag_value, objectify_options(options.merge(class: 'custom-control-input'))) +
|
|
206
206
|
@template.label(@object_name, method, get_label(method, options), class: 'custom-control-label', for: options[:id])
|
|
207
|
-
end + @template.error_message_on(@object_name, method) + field_help(method, options)
|
|
207
|
+
end + @template.error_message_on(@object_name, method) + field_help(method, options.merge(class: 'form-text mt-2'))
|
|
208
208
|
end
|
|
209
209
|
end
|
|
210
210
|
|
|
@@ -215,7 +215,8 @@ module Spree
|
|
|
215
215
|
# @option options [String] :help help text to display
|
|
216
216
|
# @return [String] HTML string containing the help text or empty string
|
|
217
217
|
def field_help(_method, options = {})
|
|
218
|
-
|
|
218
|
+
options[:class] ||= 'form-text mt-2'
|
|
219
|
+
@template.content_tag(:span, options[:help], class: options[:class])
|
|
219
220
|
end
|
|
220
221
|
|
|
221
222
|
private
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<table class="table">
|
|
4
4
|
<thead>
|
|
5
5
|
<tr>
|
|
6
|
-
<th scope="col"><%= sort_link
|
|
6
|
+
<th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
|
|
7
7
|
<th scope="col"><%= Spree.t(:active) %>?</th>
|
|
8
8
|
<th scope="col"><%= Spree.t(:default) %>?</th>
|
|
9
9
|
<th scope="col"></th>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<% if @product.has_variants? %>
|
|
5
5
|
<th scope="col"><%= Spree.t(:variant) %></th>
|
|
6
6
|
<% end %>
|
|
7
|
-
<th scope="col"><%= sort_link
|
|
7
|
+
<th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
|
|
8
8
|
<th scope="col"><%= Spree.t(:size) %></th>
|
|
9
9
|
<th scope="col"></th>
|
|
10
10
|
</tr>
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
class: "filter-wrap",
|
|
7
7
|
data: {
|
|
8
8
|
controller: "filters dropdown",
|
|
9
|
-
filters_url_value: request.url
|
|
9
|
+
filters_url_value: request.url,
|
|
10
|
+
dropdown_placement_value: "bottom-end"
|
|
10
11
|
} do |f| %>
|
|
11
12
|
<%= hidden_field_tag :frame_name, frame_name if frame_name.present? %>
|
|
12
13
|
|
|
@@ -14,16 +14,28 @@
|
|
|
14
14
|
<%= Spree.t('admin.integrations.page_subtitle') %>
|
|
15
15
|
</div>
|
|
16
16
|
|
|
17
|
-
<% grouped_available_store_integrations.
|
|
18
|
-
<%
|
|
19
|
-
|
|
17
|
+
<% if grouped_available_store_integrations.any? %>
|
|
18
|
+
<% grouped_available_store_integrations.each do |group, integrations| %>
|
|
19
|
+
<% if group.present? %>
|
|
20
|
+
<div class="my-2 text-muted font-weight-light text-uppercase"><%= Spree.t(group) %></div>
|
|
21
|
+
<% end %>
|
|
22
|
+
|
|
23
|
+
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 mb-4">
|
|
24
|
+
<% integrations.each do |integration| %>
|
|
25
|
+
<%= render 'spree/admin/integrations/integration', integration_class: integration %>
|
|
26
|
+
<% end %>
|
|
27
|
+
</div>
|
|
20
28
|
<% end %>
|
|
21
29
|
|
|
22
|
-
<
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
<p class="text-muted text-center my-5">
|
|
31
|
+
Find more integrations in <%= external_link_to 'Integrations Directory', 'https://spreecommerce.org/docs/integrations/integrations', class: 'text-decoration-none font-weight-bold', target: '_blank' %>
|
|
32
|
+
</p>
|
|
33
|
+
<% else %>
|
|
34
|
+
<p class="text-muted text-center my-5">
|
|
35
|
+
No integrations installed yet. Find integrations in
|
|
36
|
+
|
|
37
|
+
<%= external_link_to 'Integrations Directory', 'https://spreecommerce.org/docs/integrations/integrations', class: 'text-decoration-none font-weight-bold', target: '_blank' %>
|
|
38
|
+
</p>
|
|
27
39
|
<% end %>
|
|
28
40
|
</div>
|
|
29
41
|
</div>
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
<%= f.spree_date_field :expires_at, required: true, data: { 'enable-button-target': 'input' } %>
|
|
13
13
|
</div>
|
|
14
14
|
<div class="dialog-footer">
|
|
15
|
-
<%=
|
|
15
|
+
<%= dialog_discard_button %>
|
|
16
|
+
<%= turbo_save_button_tag do %>
|
|
16
17
|
<%= icon 'send' %>
|
|
17
18
|
<%= Spree.t('actions.send_invitation') %>
|
|
18
19
|
<% end %>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<%= search_form_for [:admin,
|
|
1
|
+
<%= search_form_for [:admin, @search], class: "filter-wrap", data: {controller: "filters auto-submit"} do |f| %>
|
|
2
2
|
<div class="d-flex">
|
|
3
3
|
<%= render 'spree/admin/shared/filters_search_bar', param: :multi_search, label: Spree.t(:title) %>
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<%= search_form_for [:admin,
|
|
1
|
+
<%= search_form_for [:admin, @search], class: "filter-wrap", data: { controller: "filters" } do |f| %>
|
|
2
2
|
<div class="d-flex flex-column flex-lg-row gap-2">
|
|
3
3
|
<%= render 'spree/admin/shared/filters_search_bar', param: :email_cont, label: Spree.t(:email) %>
|
|
4
4
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<tr>
|
|
2
|
-
<th scope="col"><%= sort_link
|
|
2
|
+
<th scope="col"><%= sort_link @search, :email, Spree.t(:email) %></th>
|
|
3
3
|
<th scope="col"><%= Spree.t(:customer) %></th>
|
|
4
4
|
<th scope="col"><%= Spree.t(:verified) %>?</th>
|
|
5
5
|
<th scope="col"><%= Spree.t(:verified_at) %></th>
|
|
6
|
-
<th scope="col"><%= sort_link
|
|
6
|
+
<th scope="col"><%= sort_link @search, :created_at, Spree.t(:created_at) %></th>
|
|
7
7
|
<th scope="col"></th>
|
|
8
8
|
</tr>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<tr>
|
|
2
|
-
<th scope="col"><%= sort_link
|
|
2
|
+
<th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
|
|
3
3
|
<th scope="col"><%= Spree.t('admin.oauth_applications.client_id') %></th>
|
|
4
4
|
<th scope="col"><%= Spree.t('admin.oauth_applications.scopes') %></th>
|
|
5
5
|
<th scope="col"><%= Spree.t('admin.oauth_applications.last_used') %></th>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<% if can?(:update_customer, @order) || can?(:update_addresses, @order) %>
|
|
7
7
|
<%= dropdown id: 'customer-edit-dropdown', class: 'ml-auto' do %>
|
|
8
8
|
<%= dropdown_toggle class: 'btn-light btn-sm px-1', data: { test_id: 'dropdown-toggle' } do %>
|
|
9
|
-
<%= icon 'dots-vertical' %>
|
|
9
|
+
<%= icon 'dots-vertical', class: 'mr-0' %>
|
|
10
10
|
<% end %>
|
|
11
11
|
<%= dropdown_menu class: 'dropdown-menu-right' do %>
|
|
12
12
|
<% if can?(:update_customer, @order) && !@order.user.present? %>
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
class: "filter-wrap",
|
|
16
16
|
data: {
|
|
17
17
|
controller: "filters dropdown",
|
|
18
|
-
filters_url_value: request.url
|
|
18
|
+
filters_url_value: request.url,
|
|
19
|
+
dropdown_placement_value: "bottom-end"
|
|
19
20
|
} do |f| %>
|
|
20
21
|
<%= hidden_field_tag :frame_name, frame_name if frame_name.present? %>
|
|
21
22
|
|
|
@@ -27,15 +28,13 @@
|
|
|
27
28
|
date_from_input_name: "q[created_at_gt]",
|
|
28
29
|
date_to_input_name: "q[created_at_lt]",
|
|
29
30
|
date_from_value: params.dig(:q, :created_at_gt),
|
|
30
|
-
date_to_value: params.dig(:q, :created_at_lt)
|
|
31
|
-
dropdown_direction: "right" %>
|
|
31
|
+
date_to_value: params.dig(:q, :created_at_lt) %>
|
|
32
32
|
<% else %>
|
|
33
33
|
<%= render "spree/admin/shared/calendar_range_picker",
|
|
34
34
|
date_from_input_name: "q[completed_at_gt]",
|
|
35
35
|
date_to_input_name: "q[completed_at_lt]",
|
|
36
36
|
date_from_value: params.dig(:q, :completed_at_gt),
|
|
37
|
-
date_to_value: params.dig(:q, :completed_at_lt)
|
|
38
|
-
dropdown_direction: "right" %>
|
|
37
|
+
date_to_value: params.dig(:q, :completed_at_lt) %>
|
|
39
38
|
<% end %>
|
|
40
39
|
|
|
41
40
|
<%= render "spree/admin/orders/table_filter_dropdown" %>
|
|
@@ -41,8 +41,6 @@
|
|
|
41
41
|
can?(:create, Spree::CustomerReturn) && @order.return_authorizations.exists? %>
|
|
42
42
|
|
|
43
43
|
<% if can_create_ra || can_create_cr %>
|
|
44
|
-
<div class="dropdown-divider"></div>
|
|
45
|
-
|
|
46
44
|
<% if can_create_ra %>
|
|
47
45
|
<%= link_to_with_icon "plus", Spree.t(:new_return_authorization),
|
|
48
46
|
spree.new_admin_order_return_authorization_path(@order),
|
|
@@ -54,8 +52,6 @@
|
|
|
54
52
|
spree.new_admin_order_customer_return_path(@order),
|
|
55
53
|
class: "btn dropdown-item" %>
|
|
56
54
|
<% end %>
|
|
57
|
-
|
|
58
|
-
<div class="dropdown-divider"></div>
|
|
59
55
|
<% end %>
|
|
60
56
|
<% end %>
|
|
61
57
|
|
|
@@ -69,6 +65,5 @@
|
|
|
69
65
|
<%= icon "cancel" %>
|
|
70
66
|
<%= Spree.t(:cancel_order) %>
|
|
71
67
|
<% end %>
|
|
72
|
-
<div class="dropdown-divider"></div>
|
|
73
68
|
<% end %>
|
|
74
69
|
<% end %>
|