diff --git a/src/main/javascript/service/main-menu-service.js b/src/main/javascript/service/main-menu-service.js index e367b4b..23931cd 100644 --- a/src/main/javascript/service/main-menu-service.js +++ b/src/main/javascript/service/main-menu-service.js @@ -46,6 +46,10 @@ function MenuGroup(groupId, options, parent) { this.isMenu = function () { return false; }; + + this.isSubMenu = function() { + return (_options.displayAsSubMenu === true); + }; } function Menu(menuId, options) { @@ -87,7 +91,12 @@ function Menu(menuId, options) { this.getFlattened = function () { return _.flatten([_menuEntries, _.map(this.getGroups(), function (group) { - return[group, group.getEntries()]; + if (group.getOptions().displayAsSubMenu === true) { + group.subEntries = group.getEntries(); + return[group]; + } else { + return[group, group.getEntries()]; + } })]); }; diff --git a/src/main/resources/styles/cat-angular.less b/src/main/resources/styles/cat-angular.less index 4e9fad1..86a0f08 100644 --- a/src/main/resources/styles/cat-angular.less +++ b/src/main/resources/styles/cat-angular.less @@ -69,4 +69,30 @@ .spinner { /* important is needed to override element style attribute set by spin.js */ position: fixed !important; -} \ No newline at end of file +} + +.dropdown-submenu { + position:relative; + & > a:after { + display:block; + content:" "; + float:right; + width:0; + height:0; + border-color:transparent; + border-style:solid; + border-width:5px 0 5px 5px; + border-left-color:#cccccc; + margin-top:5px; + margin-right:-10px; + } + &:hover { + & > .dropdown-menu { + display: block; + top:0; + left:100%; + margin-top:-6px; + margin-left:-1px; + } + } +} diff --git a/src/main/resources/template/cat-main-menu.tpl.html b/src/main/resources/template/cat-main-menu.tpl.html index d4a7a82..44fced7 100644 --- a/src/main/resources/template/cat-main-menu.tpl.html +++ b/src/main/resources/template/cat-main-menu.tpl.html @@ -1,23 +1,32 @@