lib/active_admin/menu.rb in activeadmin-2.6.1 vs lib/active_admin/menu.rb in activeadmin-2.7.0
- old
+ new
@@ -45,11 +45,14 @@
# menu = Menu.new
# menu.add label: 'Dashboard'
# menu.add parent: 'Dashboard', label: 'My Child Dashboard'
#
def add(options)
- item = if parent = options.delete(:parent)
+ parent_chain = Array.wrap(options.delete(:parent))
+
+ item = if parent = parent_chain.shift
+ options[:parent] = parent_chain if parent_chain.any?
(self[parent] || add(label: parent)).add options
else
_add options.merge parent: self
end
@@ -58,10 +61,10 @@
item
end
# Whether any children match the given item.
def include?(item)
- @children.values.include? item
+ @children.values.include?(item) || @children.values.any? { |child| child.include?(item) }
end
# Used in the UI to visually distinguish which menu item is selected.
def current?(item)
self == item || include?(item)