diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index de6f438520..25fd80fdb2 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -161,7 +161,7 @@ $lang->product->menuOrder[35] = 'requirement'; $lang->product->menuOrder[40] = 'track'; $lang->product->menuOrder[45] = 'doc'; $lang->product->menuOrder[50] = 'dynamic'; -$lang->product->menuOrder[55] = 'setting'; +$lang->product->menuOrder[55] = 'settings'; $lang->product->menuOrder[60] = 'create'; $lang->product->menuOrder[65] = 'all'; @@ -192,7 +192,7 @@ $lang->scrum->menu->release = array('link' => "{$lang->release->common}|projec $lang->scrum->menu->dynamic = array('link' => "$lang->dynamic|project|dynamic|project=%s"); $lang->scrum->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist'); -$lang->scrum->dividerMenu = ',execution,programplan,doc,dynamic,'; +$lang->scrum->dividerMenu = ',execution,programplan,doc,settings,'; /* Scrum menu order. */ $lang->scrum->menuOrder[5] = 'index'; @@ -254,7 +254,7 @@ $lang->execution->menuOrder[45] = 'doc'; $lang->execution->menuOrder[50] = 'build'; $lang->execution->menuOrder[55] = 'release'; $lang->execution->menuOrder[60] = 'action'; -$lang->execution->menuOrder[65] = 'setting'; +$lang->execution->menuOrder[65] = 'settings'; $lang->execution->menu->doc['subMenu'] = new stdclass(); diff --git a/module/custom/model.php b/module/custom/model.php index 3143426d46..48af012607 100644 --- a/module/custom/model.php +++ b/module/custom/model.php @@ -217,7 +217,6 @@ class customModel extends model if(is_array($allMenu) and !isset($allMenu[$name])) $allMenu[$name] = $item; } - $divider = false; foreach($allMenu as $name => $item) { if(is_object($item)) $item = (array)$item; @@ -245,13 +244,6 @@ class customModel extends model $hasPriv = commonModel::hasPriv($module, $method); } - /* When last divider is not used in mainMenu, use it next menu. */ - if($menuModuleName == 'main') - { - $openApp = $app->openApp; - $divider = $divider || (isset($lang->$openApp->dividerMenu) and strpos($lang->$openApp->dividerMenu, ",{$name},") !== false) ? true : false; - } - if($isTutorialMode || $hasPriv) { $itemLink = ''; @@ -312,10 +304,6 @@ class customModel extends model if($exclude) $menuItem->exclude = $exclude; if($isTutorialMode) $menuItem->tutorial = true; - /* Set divider and reset it. */ - $menuItem->divider = $divider; - $divider = false; - /* Hidden menu by config in mobile. */ if($app->viewType == 'mhtml' and isset($config->custom->moblieHidden[$menuModuleName]) and in_array($name, $config->custom->moblieHidden[$menuModuleName])) $menuItem->hidden = 1; @@ -325,6 +313,35 @@ class customModel extends model } ksort($menu, SORT_NUMERIC); + + /* Set divider in main and module menu. */ + if(!isset($lang->$openApp->menuOrder)) $lang->$openApp->menuOrder = array(); + ksort($lang->$openApp->menuOrder, SORT_NUMERIC); + + $group = 0; + $dividerOrders = array(); + foreach($lang->$openApp->menuOrder as $name) + { + if(isset($lang->$openApp->dividerMenu) and strpos($lang->$openApp->dividerMenu, ",{$name},") !== false) $group++; + $dividerOrders[$name] = $group; + } + + $isFirst = true; // No divider before First item. + $group = 0; + foreach($menu as $item) + { + if(isset($dividerOrders[$item->name]) and $dividerOrders[$item->name] > $group) + { + $menu[$item->order]->divider = $isFirst ? false : true; + $group = $dividerOrders[$item->name]; + } + else + { + $isFirst = false; + $menu[$item->order]->divider = false; + } + } + return array_values($menu); }