From c7fdbddfc074ddd7ddf539b1d3b5f108ab13ec7b Mon Sep 17 00:00:00 2001 From: Catouse Date: Mon, 25 Jun 2018 17:34:51 +0800 Subject: [PATCH] * fix UI for show/hidden submenu item. --- module/custom/css/ajaxmenu.css | 5 +++-- module/custom/js/ajaxmenu.js | 28 ++++++++++++++++++++++++---- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/module/custom/css/ajaxmenu.css b/module/custom/css/ajaxmenu.css index e5a4a83f70..7402724b98 100644 --- a/module/custom/css/ajaxmenu.css +++ b/module/custom/css/ajaxmenu.css @@ -9,6 +9,7 @@ #navbar .nav > li > a {padding: 10px 15px; border-radius: 3px;} #mainMenu > .nav {display: inline-block;} #menuEditor .nav > li > a {cursor: move;} -#menuEditor .nav > li > a .item-hidden-icon {display: none; margin-left: 3px;} -#menuEditor .nav > li.menu-hidden > a .item-hidden-icon {display: inline-block;} +#menuEditor li > a .item-hidden-icon {display: none; margin-left: 3px;} +#menuEditor .dropdown-menu > li > a .item-hidden-icon {margin-left: 10px;} +#menuEditor li.menu-hidden > a .item-hidden-icon {display: inline-block;} #menuEditor .nav > li.menu-hidden > a {opacity: .7; border: 1px dashed #ddd; background: rgba(0,0,0,.1); margin: 0 2px;} \ No newline at end of file diff --git a/module/custom/js/ajaxmenu.js b/module/custom/js/ajaxmenu.js index 8dcb643d56..bf4e6a4a85 100644 --- a/module/custom/js/ajaxmenu.js +++ b/module/custom/js/ajaxmenu.js @@ -49,12 +49,19 @@ $(function() var $dropmenu = $a.find('.dropdown-menu').empty(); if ($dropmenu.length && item.subMenu) { - $.each(item.subMenu, function(index, subItem) + $.each(item.subMenu, function(subIdx, subItem) { + subItem.order = subIdx + 1; var $subA = $('').append(subItem.text); $subA.data('menu', subItem).append(''); $('
  • ').attr('data-id', subItem.name).toggleClass('right', subItem.float === 'right').toggleClass('menu-hidden', !!subItem.hidden).append($subA).appendTo($dropmenu); }); + var $aInner = $a.children('a'); + if ($aInner.length) + { + $aInner.replaceWith($('' + $aInner.text() + ' ')); + $a.addClass('dropdown-hover'); + } } if(!$dropmenu.children().length) $dropmenu.remove(); }); @@ -116,13 +123,25 @@ $(function() var formatMenuConfig = function(items) { - return $.map(items, function(item) + var dataList = []; + $.each(items, function(idx, item) { var data = {name: item.name, order: parseInt(item.order)}; if(item.hidden) data.hidden = true; if(item.float) data.float = item.float; - return data; + dataList.push(data); + if (item.subMenu) + { + $.each(item.subMenu, function(sIdx, subItem) + { + var subData = {name: subItem.name, order: parseInt(subItem.order)}; + if(subItem.hidden) subData.hidden = true; + if(subItem.float) subData.float = subItem.float; + dataList.push(subData); + }); + } }); + return dataList; }; $menuEditor.on('mouseenter', '.nav > li:not(.drag-shadow) > a', function() @@ -195,7 +214,7 @@ $(function() } } } - }).on('click', '.nav>li>a,.dropdown-menu>li>a', function() + }).on('click', '.nav>li>a,.dropdown-menu>li>a', function(e) { var $a = $(this); var item = $a.data('menu'); @@ -211,6 +230,7 @@ $(function() } $a.parent().toggleClass('menu-hidden', item.hidden); updateConfig($menu); + e.stopPropagation(); }); $('#saveMenuBtn').click(function()