Revision cd3baa12
Added by Scott Seago almost 10 years ago
app/services/menu/manager.rb | ||
---|---|---|
|
||
# Removes a menu item
|
||
def delete(name)
|
||
if found = self.find(name)
|
||
@menu_items.remove!(found)
|
||
@menu_items.each do |item|
|
||
if item.name == name && !item.parent.nil?
|
||
return item.parent.remove!(item)
|
||
end
|
||
end
|
||
nil
|
||
end
|
||
|
||
# Checks if a menu item exists
|
test/unit/menu_mapper_test.rb | ||
---|---|---|
assert_nil menu_mapper.find(:test_overview)
|
||
end
|
||
|
||
def test_delete_in_sub_menu
|
||
menu_mapper = Menu::Manager::Mapper.new(:test_menu, {})
|
||
menu_mapper.sub_menu :test_sub_menu, :caption => "Sub Menu" do
|
||
menu_mapper.item :test_sub_overview, :url_hash => { :controller => 'hosts', :action => 'show'}
|
||
end
|
||
assert_not_nil menu_mapper.find(:test_sub_overview)
|
||
|
||
assert_not_nil menu_mapper.delete(:test_sub_overview)
|
||
|
||
assert_nil menu_mapper.find(:test_sub_overview)
|
||
end
|
||
|
||
def test_delete_missing
|
||
menu_mapper = Menu::Manager::Mapper.new(:test_menu, {})
|
||
assert_nil menu_mapper.delete(:test_missing)
|
||
... | ... | |
end
|
||
end
|
||
end
|
||
end
|
||
end
|
Also available in: Unified diff
fixes #6091 - menu removal wasn't traversing menu hierarchy