Project

General

Profile

« Previous | Next » 

Revision 600cc8c9

Added by Stephen Benjamin over 9 years ago

fixes #6362 - correct menu dividers if user isn't auth for some actions

(cherry picked from commit 795b9287bae5ee941331e4291eec6570e8a1ce62)

View differences:

app/helpers/home_helper.rb
end
def authorized_menu_actions(choices)
last_item = Menu::Divider.new(:first_div)
choices = choices.map do |item|
last_item = case item
when Menu::Divider
item unless last_item.is_a?(Menu::Divider) #prevent adjacent dividers
when Menu::Item
item if item.authorized?
when Menu::Toggle
item if item.authorized_children.size > 0
end
last_shown_item_was_divider = true
choices = choices.map do |item|
case item
when Menu::Divider
unless last_shown_item_was_divider
last_shown_item_was_divider = true
item
end
when Menu::Item
if item.authorized?
last_shown_item_was_divider = false
item
end
when Menu::Toggle
if item.authorized_children.size > 0
last_shown_item_was_divider = false
item
end
end
end.compact
choices.shift if choices.first.is_a?(Menu::Divider)
choices.pop if choices.last.is_a?(Menu::Divider)
choices

Also available in: Unified diff