* finish task #4487.
This commit is contained in:
@@ -510,6 +510,8 @@ class commonModel extends model
|
||||
/* Print sub menus. */
|
||||
if(isset($menuItem->subMenu))
|
||||
{
|
||||
$link = '';
|
||||
$label = '';
|
||||
foreach($menuItem->subMenu as $subMenuItem)
|
||||
{
|
||||
if($subMenuItem->hidden) continue;
|
||||
@@ -525,16 +527,16 @@ class commonModel extends model
|
||||
|
||||
$subLink = helper::createLink($subModule, $subMethod, $subParams);
|
||||
|
||||
if($currentModule == strtolower($subModule) && $currentMethod == strtolower($subMethod))
|
||||
{
|
||||
$link = $subLink;
|
||||
$label = $subLabel;
|
||||
$subActive = 'active';
|
||||
}
|
||||
if($currentModule == strtolower($subModule) && $currentMethod == strtolower($subMethod)) $subActive = 'active';
|
||||
|
||||
$subMenu .= "<li class='$subActive'>" . html::a($subLink, $subLabel) . '</li>';
|
||||
|
||||
if(!$link) $link = $subLink;
|
||||
if(!$label) $label = $subLabel;
|
||||
}
|
||||
|
||||
if(!$link or !$label) continue;
|
||||
|
||||
if($subMenu)
|
||||
{
|
||||
$label .= "<span class='caret'></span>";
|
||||
|
||||
@@ -45,9 +45,10 @@ $(function()
|
||||
if(!item.text || item.fixed) return;
|
||||
var $a = $('<a href="#"/>').append(item.text);
|
||||
$a.data('menu', item).append('<i class="item-hidden-icon icon icon-eye-off"></i>');
|
||||
$('<li/>').attr('data-id', item.name).toggleClass('right', item.float === 'right').toggleClass('menu-hidden', !!item.hidden).append($a).appendTo($nav);
|
||||
var hidden = !!item.hidden;
|
||||
if(item.subMenu)
|
||||
{
|
||||
hidden = true;
|
||||
$a.addClass('dropdown dropdown-hover').append("<span class='caret'></span><ul class='dropdown-menu'></ul>");
|
||||
var $dropmenu = $a.find('.dropdown-menu');
|
||||
$.each(item.subMenu, function(subIdx, subItem)
|
||||
@@ -56,6 +57,8 @@ $(function()
|
||||
var $subA = $('<a href="#"/>').append(subItem.text);
|
||||
$subA.data('menu', subItem).append('<i class="item-hidden-icon icon icon-eye-off"></i>');
|
||||
$('<li/>').attr('data-id', subItem.name).toggleClass('right', subItem.float === 'right').toggleClass('menu-hidden', !!subItem.hidden).append($subA).appendTo($dropmenu);
|
||||
|
||||
hidden = subItem.hidden && hidden;
|
||||
});
|
||||
var $aInner = $a.children('a');
|
||||
if ($aInner.length)
|
||||
@@ -69,6 +72,7 @@ $(function()
|
||||
$dropmenu.remove();
|
||||
}
|
||||
}
|
||||
$('<li/>').attr('data-id', item.name).toggleClass('right', item.float === 'right').toggleClass('menu-hidden', hidden).append($a).appendTo($nav);
|
||||
});
|
||||
$nav.sortable({finish: function(e)
|
||||
{
|
||||
@@ -134,17 +138,19 @@ $(function()
|
||||
var data = {name: item.name, order: parseInt(item.order)};
|
||||
if(item.hidden) data.hidden = true;
|
||||
if(item.float) data.float = item.float;
|
||||
dataList.push(data);
|
||||
if (item.subMenu)
|
||||
if(item.subMenu)
|
||||
{
|
||||
var 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);
|
||||
subMenu.push(subData);
|
||||
});
|
||||
data.subMenu = subMenu;
|
||||
}
|
||||
dataList.push(data);
|
||||
});
|
||||
return dataList;
|
||||
};
|
||||
@@ -221,9 +227,11 @@ $(function()
|
||||
}
|
||||
}).on('click', '.nav>li>a,.dropdown-menu>li>a', function(e)
|
||||
{
|
||||
var $a = $(this);
|
||||
var item = $a.data('menu');
|
||||
if (!item) return;
|
||||
var $a = $(this);
|
||||
var item = $a.data('menu');
|
||||
if(!item) return;
|
||||
if($a.find('.dropdown-menu').length) return;
|
||||
|
||||
var $menu = $a.closest('nav');
|
||||
var moduleName = item.link && item.link['module'] ? item.link['module'] : item.name;
|
||||
var methodName = item.link && item.link['method'] ? item.link['method'] : '';
|
||||
@@ -234,6 +242,19 @@ $(function()
|
||||
methodName = item.name;
|
||||
}
|
||||
$a.parent().toggleClass('menu-hidden', item.hidden);
|
||||
|
||||
/* Update parent menu by sub menu. */
|
||||
if($a.parent().parent().hasClass('dropdown-menu'))
|
||||
{
|
||||
var hidden = true;
|
||||
$a.parent().parent().children().each(function()
|
||||
{
|
||||
hidden = $(this).hasClass('menu-hidden') && hidden;
|
||||
});
|
||||
|
||||
$a.parent().parent().parent().parent().toggleClass('menu-hidden', item.hidden);
|
||||
}
|
||||
|
||||
updateConfig($menu);
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
+11
-2
@@ -201,8 +201,8 @@ class customModel extends model
|
||||
/* Merge fileMenu and customMenu. */
|
||||
foreach($customMenuMap as $name => $item)
|
||||
{
|
||||
if(is_object($allMenu) and !isset($allMenu->$name))$allMenu->$name = $item;
|
||||
if(is_array($allMenu) and !isset($allMenu[$name]))$allMenu[$name] = $item;
|
||||
if(is_object($allMenu) and !isset($allMenu->$name)) $allMenu->$name = $item;
|
||||
if(is_array($allMenu) and !isset($allMenu[$name])) $allMenu[$name] = $item;
|
||||
}
|
||||
|
||||
foreach($allMenu as $name => $item)
|
||||
@@ -249,6 +249,15 @@ class customModel extends model
|
||||
}
|
||||
|
||||
$hidden = isset($customMenuMap[$name]) && isset($customMenuMap[$name]->hidden) && $customMenuMap[$name]->hidden;
|
||||
|
||||
if(isset($item['subMenu']) && isset($customMenuMap[$name]->subMenu))
|
||||
{
|
||||
foreach($customMenuMap[$name]->subMenu as $subItem)
|
||||
{
|
||||
if(isset($subItem->hidden) && $subItem->hidden && isset($item['subMenu'][$subItem->name])) $item['subMenu'][$subItem->name]->hidden = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(strpos($name, 'QUERY') === 0 and !isset($customMenuMap[$name])) $hidden = true;
|
||||
|
||||
$menuItem = new stdclass();
|
||||
|
||||
@@ -146,7 +146,7 @@ class projectModel extends model
|
||||
/* Replace for dropdown submenu. */
|
||||
if(isset($this->lang->project->subMenu->$key))
|
||||
{
|
||||
$subMenu = array();
|
||||
$subMenu = array();
|
||||
foreach($this->lang->project->subMenu->$key as $subMenuKey => $subMenuLink)
|
||||
{
|
||||
if(isset($subMenuLink['link'])) $subMenuLink = $subMenuLink['link'];
|
||||
@@ -163,7 +163,7 @@ class projectModel extends model
|
||||
$menu->link = $link;
|
||||
$menu->text = $subMenuName;
|
||||
$menu->hidden = false;
|
||||
$subMenu[] = $menu;
|
||||
$subMenu[$subMenuKey] = $menu;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user