Skip to content

Commit fbef614

Browse files
authored
Merge pull request #5921 from mamhoff/fix-solidus_promotions-menu_item
Backend Menu: Fix "Promotions" items
2 parents 8ff6267 + 6a7d839 commit fbef614

File tree

4 files changed

+27
-53
lines changed

4 files changed

+27
-53
lines changed

legacy_promotions/config/locales/en.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ en:
2323
general: General
2424
starts_at_placeholder: Immediately
2525
tab:
26-
promotion_categories: Promotion Categories
27-
promotions: Promotions
26+
promotions: Legacy Promotions
27+
promotion_categories: Legacy Promotion Categories
2828
back_to_promotion_categories_list: Back To Promotions Categories List
2929
back_to_promotions_list: Back To Promotions List
3030
base_amount: Base Amount

legacy_promotions/lib/solidus_legacy_promotions/engine.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ class Engine < ::Rails::Engine
2222
),
2323
Spree::BackendConfiguration::MenuItem.new(
2424
label: :promotion_categories,
25-
condition: -> { can?(:admin, Spree::PromotionCategory) }
25+
condition: -> { can?(:admin, Spree::PromotionCategory) },
26+
url: -> { Spree::Core::Engine.routes.url_helpers.admin_promotion_categories_path },
2627
)
2728
]
2829
)

promotions/config/locales/en.yml

+2-4
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@ en:
55
spree:
66
admin:
77
tab:
8-
promotions: Promotions
9-
promotion_categories: Promotion Categories
10-
legacy_promotions: Legacy Promotions
11-
legacy_promotion_categories: Legacy Promotion Categories
8+
solidus_promotions: Promotions
9+
solidus_promotion_categories: Promotion Categories
1210
hints:
1311
solidus_promotions/promotion:
1412
expires_at: This determines when the promotion expires. <br> If no value is specified, the promotion will never expire.

promotions/lib/solidus_promotions/engine.rb

+21-46
Original file line numberDiff line numberDiff line change
@@ -62,53 +62,28 @@ class Engine < Rails::Engine
6262

6363
initializer "solidus_promotions.add_backend_menus", after: "spree.backend.environment" do
6464
if SolidusSupport.backend_available?
65-
# Replace the promotions menu from core with ours
66-
Spree::Backend::Config.configure do |config|
67-
config.menu_items = config.menu_items.flat_map do |item|
68-
next item unless item.label.to_sym == :promotions
65+
promotions_menu_item = Spree::BackendConfiguration::MenuItem.new(
66+
label: :solidus_promotions,
67+
icon: Spree::Backend::Config.admin_updated_navbar ? "ri-megaphone-line" : "bullhorn",
68+
condition: -> { can?(:admin, SolidusPromotions::Promotion) },
69+
url: -> { SolidusPromotions::Engine.routes.url_helpers.admin_promotions_path },
70+
data_hook: :admin_solidus_promotion_sub_tabs,
71+
children: [
72+
Spree::BackendConfiguration::MenuItem.new(
73+
label: :solidus_promotions,
74+
url: -> { SolidusPromotions::Engine.routes.url_helpers.admin_promotions_path },
75+
condition: -> { can?(:admin, SolidusPromotions::Promotion) }
76+
),
77+
Spree::BackendConfiguration::MenuItem.new(
78+
label: :solidus_promotion_categories,
79+
url: -> { SolidusPromotions::Engine.routes.url_helpers.admin_promotion_categories_path },
80+
condition: -> { can?(:admin, SolidusPromotions::PromotionCategory) }
81+
)
82+
]
83+
)
6984

70-
[
71-
Spree::BackendConfiguration::MenuItem.new(
72-
label: :promotions,
73-
icon: config.admin_updated_navbar ? "ri-megaphone-line" : "bullhorn",
74-
condition: -> { can?(:admin, SolidusPromotions::Promotion) },
75-
url: -> { SolidusPromotions::Engine.routes.url_helpers.admin_promotions_path },
76-
data_hook: :admin_solidus_promotion_sub_tabs,
77-
children: [
78-
Spree::BackendConfiguration::MenuItem.new(
79-
label: :promotions,
80-
url: -> { SolidusPromotions::Engine.routes.url_helpers.admin_promotions_path },
81-
condition: -> { can?(:admin, SolidusPromotions::Promotion) }
82-
),
83-
Spree::BackendConfiguration::MenuItem.new(
84-
label: :promotion_categories,
85-
url: -> { SolidusPromotions::Engine.routes.url_helpers.admin_promotion_categories_path },
86-
condition: -> { can?(:admin, SolidusPromotions::PromotionCategory) }
87-
)
88-
]
89-
),
90-
Spree::BackendConfiguration::MenuItem.new(
91-
label: :legacy_promotions,
92-
icon: config.admin_updated_navbar ? "ri-megaphone-line" : "bullhorn",
93-
condition: -> { can?(:admin, SolidusPromotions::Promotion) },
94-
url: -> { Spree::Core::Engine.routes.url_helpers.admin_promotions_path },
95-
data_hook: :admin_promotion_sub_tabs,
96-
children: [
97-
Spree::BackendConfiguration::MenuItem.new(
98-
label: :legacy_promotions,
99-
condition: -> { can?(:admin, Spree::Promotion && Spree::Promotion.any?) },
100-
url: -> { Spree::Core::Engine.routes.url_helpers.admin_promotions_path },
101-
),
102-
Spree::BackendConfiguration::MenuItem.new(
103-
label: :legacy_promotion_categories,
104-
condition: -> { can?(:admin, Spree::PromotionCategory && Spree::Promotion.any?) },
105-
url: -> { Spree::Core::Engine.routes.url_helpers.admin_promotion_categories_path },
106-
)
107-
]
108-
)
109-
]
110-
end
111-
end
85+
product_menu_item_index = Spree::Backend::Config.menu_items.find_index { |item| item.label == :products }
86+
Spree::Backend::Config.menu_items.insert(product_menu_item_index + 1, promotions_menu_item)
11287
end
11388
end
11489
end

0 commit comments

Comments
 (0)