do_menu_click: function($clicked_menu, manual) {
var $sub_menu, $main_menu,
active = $clicked_menu.is('.active'),
- sub_menu_visible = false;
+ sub_menu_visible = false,
+ has_submenu_items = false;
if (this.$secondary_menu.has($clicked_menu).length) {
$sub_menu = $clicked_menu.parents('.oe_secondary_menu');
}
sub_menu_visible = $sub_menu.is(':visible');
+ has_submenu_items = !!$sub_menu.children().length;
this.$secondary_menu.find('.oe_secondary_menu').hide();
$('.active', this.$element.add(this.$secondary_menu)).removeClass('active');
$main_menu.add($clicked_menu).add($sub_menu).addClass('active');
- if (!(this.folded && manual)) {
- this.do_show_secondary($sub_menu, $main_menu);
- } else {
- this.do_show_secondary();
+ if (has_submenu_items) {
+ if (!(this.folded && manual)) {
+ this.do_show_secondary($sub_menu, $main_menu);
+ } else {
+ this.do_show_secondary();
+ }
}
if ($main_menu != $clicked_menu) {
return true;
}
} else if (this.folded) {
- if (active && sub_menu_visible) {
+ if ((active && sub_menu_visible) || !has_submenu_items) {
$sub_menu.hide();
return true;
}