diff --git a/module/admin/lang/menu.php b/module/admin/lang/menu.php index e6030721a4..3e6c2681d8 100644 --- a/module/admin/lang/menu.php +++ b/module/admin/lang/menu.php @@ -84,13 +84,19 @@ $lang->admin->menuList->model['menuOrder']['10'] = 'scrum'; $lang->admin->menuList->model['menuOrder']['15'] = 'waterfall'; $lang->admin->menuList->feature['subMenu']['my'] = array('link' => "{$lang->my->common}|custom|set|module=todo"); -$lang->admin->menuList->feature['subMenu']['product'] = array('link' => "{$lang->productCommon}|custom|product|"); +$lang->admin->menuList->feature['subMenu']['product'] = array('link' => "{$lang->productCommon}|custom|required|module=product|"); $lang->admin->menuList->feature['subMenu']['execution'] = array('link' => "{$lang->execution->common}|custom|execution|"); $lang->admin->menuList->feature['subMenu']['qa'] = array('link' => "{$lang->qa->common}|custom|required|module=bug"); $lang->admin->menuList->feature['subMenu']['kanban'] = array('link' => "{$lang->kanban->common}|custom|kanban|"); $lang->admin->menuList->feature['subMenu']['doc'] = array('link' => "{$lang->doc->common}|custom|required|module=doc"); $lang->admin->menuList->feature['subMenu']['user'] = array('link' => "{$lang->user->common}|custom|set|module=user"); +$lang->admin->menuList->feature['tabMenu']['my']['todo'] = array('link' => "{$lang->todo->common}|custom|set|module=todo&field=priList"); +$lang->admin->menuList->feature['tabMenu']['my']['block'] = array('link' => "{$lang->block->common}|custom|set|module=block&field=closed"); +if($this->config->vision == 'lite') $lang->admin->menuList->feature['tabMenu']['my']['task'] = array(); + +$lang->admin->menuList->feature['tabMenu']['product']['product'] = array('link' => "{$lang->productCommon}|custom|required|module=product", 'links' => array("custom|browsestoryconcept|", 'custom|product|')); + $lang->admin->menuList->feature['menuOrder']['5'] = 'my'; $lang->admin->menuList->feature['menuOrder']['10'] = 'product'; $lang->admin->menuList->feature['menuOrder']['15'] = 'execution'; diff --git a/module/admin/model.php b/module/admin/model.php index 2b65005df5..382e65a7d9 100755 --- a/module/admin/model.php +++ b/module/admin/model.php @@ -286,36 +286,54 @@ class adminModel extends model $orders = array(); foreach($this->lang->admin->menuList as $menuKey => $menu) { - $menu['disabled'] = false; + $menu['disabled'] = true; if(!isset($menu['link'])) $menu['link'] = ''; - if(!empty($menu['link']) and strpos($menu['link'], '|') !== false) + + /* Check sub menu priv. */ + if(isset($menu['subMenu'])) { - list($module, $method) = explode('|', $menu['link']); - $menu['link'] = helper::createLink($module, $method); - if(!common::hasPriv($module, $method)) $menu['disabled'] = true; - } - - $menuOrder = isset($menu['menuOrder']) ? $menu['menuOrder'] : array(); - if($menuOrder) - { - ksort($menuOrder); - - /* Check sub menu priv. */ - foreach($menuOrder as $subOrder => $subMenuKey) + foreach($menu['subMenu'] as $subMenuKey => $subMenu) { - list($label, $module, $method, $params) = explode('|', $menu['subMenu'][$subMenuKey]['link']); - if(!common::hasPriv($module, $method)) unset($menuOrder[$subOrder]); - } + /* Check tab menu priv. */ + $link = ''; + $linkLabel = ''; + if(isset($menu['tabMenu'][$subMenuKey])) + { + foreach($menu['tabMenu'][$subMenuKey] as $tabMenuKey => $tabMenu) + { + list($linkLabel, $link) = $this->getMenuLink($tabMenu); + if(!empty($link)) break; + } + } + else + { + list($linkLabel, $link) = $this->getMenuLink($subMenu); + } - /* Set link. */ - if(!empty($menuOrder)) + if(!empty($link)) + { + $menu['subMenu'][$subMenuKey]['link'] = $linkLabel; + if(empty($menu['link'])) + { + $menu['link'] = $link; + $menu['disabled'] = false; + } + } + else + { + unset($this->lang->admin->menuList->feature['subMenu'][$subMenuKey]); + } + } + } + else + { + if(!empty($menu['link']) and strpos($menu['link'], '|') !== false) { - $subMenuKey = reset($menuOrder); - list($label, $module, $method, $params) = explode('|', $menu['subMenu'][$subMenuKey]['link']); - $menu['link'] = helper::createLink($module, $method, $params); + list($module, $method) = explode('|', $menu['link']); + $menu['link'] = helper::createLink($module, $method); + if(common::hasPriv($module, $method)) $menu['disabled'] = false; } } - if(empty($menuOrder) and empty($menu['link'])) $menu['disabled'] = true; $order = $menu['order']; $orders[$order] = $menuKey; @@ -334,6 +352,43 @@ class adminModel extends model $this->lang->admin->menuList = $menuList; } + /** + * Get menu link. + * + * @param array $menu + * @access public + * @return array + */ + public function getMenuLink($menu) + { + $link = ''; + $linkLabel = ''; + if(!empty($menu['link'])) + { + list($label, $module, $method, $params) = explode('|', $menu['link']); + if(common::hasPriv($module, $method)) + { + $linkLabel = $menu['link']; + $link = helper::createLink($module, $method, $params); + } + elseif(!empty($menu['links'])) + { + foreach($menu['links'] as $menuLink) + { + list($module, $method, $params) = explode('|', $menuLink); + if(common::hasPriv($module, $method)) + { + $linkLabel = $label . '|' . $menuLink; + $link = helper::createLink($module, $method); + break; + } + } + } + } + + return array($linkLabel, $link); + } + /** * Get menu key * diff --git a/module/block/lang/de.php b/module/block/lang/de.php index f580bc7315..8d78ff19a1 100644 --- a/module/block/lang/de.php +++ b/module/block/lang/de.php @@ -10,8 +10,6 @@ * @link http://www.zentao.net */ global $config; -$lang->block = new stdclass(); -$lang->block->common = 'InfoBlock'; $lang->block->id = 'ID'; $lang->block->params = 'Params'; $lang->block->name = 'Name'; diff --git a/module/block/lang/en.php b/module/block/lang/en.php index b9eada8057..2186fa2f4b 100644 --- a/module/block/lang/en.php +++ b/module/block/lang/en.php @@ -10,8 +10,6 @@ * @link http://www.zentao.net */ global $config; -$lang->block = new stdclass(); -$lang->block->common = 'Block'; $lang->block->id = 'ID'; $lang->block->params = 'Params'; $lang->block->name = 'Name'; diff --git a/module/block/lang/fr.php b/module/block/lang/fr.php index 0575caf8a8..c66b631095 100644 --- a/module/block/lang/fr.php +++ b/module/block/lang/fr.php @@ -10,8 +10,6 @@ * @link http://www.zentao.net */ global $config; -$lang->block = new stdclass(); -$lang->block->common = 'Bloc'; $lang->block->id = 'ID'; $lang->block->params = 'Params'; $lang->block->name = 'Nom'; diff --git a/module/block/lang/vi.php b/module/block/lang/vi.php index aac102a0cb..fa892b4f23 100644 --- a/module/block/lang/vi.php +++ b/module/block/lang/vi.php @@ -10,8 +10,6 @@ * @link http://www.zentao.net */ global $config; -$lang->block = new stdclass(); -$lang->block->common = 'Block'; $lang->block->name = 'Tên'; $lang->block->style = 'Kiểu'; $lang->block->grid = 'Vị trí'; diff --git a/module/block/lang/zh-cn.php b/module/block/lang/zh-cn.php index 5c6a85626f..f01edea1d9 100644 --- a/module/block/lang/zh-cn.php +++ b/module/block/lang/zh-cn.php @@ -10,8 +10,6 @@ * @link http://www.zentao.net */ global $config; -$lang->block = new stdclass(); -$lang->block->common = '区块'; $lang->block->id = '编号'; $lang->block->params = '参数'; $lang->block->name = '区块名称'; diff --git a/module/common/lang/common.php b/module/common/lang/common.php index 3959e83492..4fe8f34a27 100644 --- a/module/common/lang/common.php +++ b/module/common/lang/common.php @@ -3,6 +3,7 @@ $lang->common = new stdclass(); $lang->index = new stdclass(); $lang->my = new stdclass(); $lang->todo = new stdclass(); +$lang->block = new stdclass(); $lang->program = new stdclass(); $lang->programplan = new stdclass(); $lang->product = new stdclass(); diff --git a/module/common/lang/de.php b/module/common/lang/de.php index f3f247a320..306d80be31 100644 --- a/module/common/lang/de.php +++ b/module/common/lang/de.php @@ -158,6 +158,8 @@ $lang->delayed = 'Delayed'; $lang->common->common = 'Standard Module'; $lang->common->story = 'Story'; $lang->my->common = 'My'; +$lang->todo->common = 'Todo'; +$lang->block->common = 'InfoBlock'; $lang->program->common = 'Program'; $lang->product->common = 'Product'; $lang->project->common = 'Project'; diff --git a/module/common/lang/en.php b/module/common/lang/en.php index 30eeff46b7..5776664091 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -158,6 +158,8 @@ $lang->delayed = 'Delayed'; $lang->common->common = 'Common Module'; $lang->common->story = 'Story'; $lang->my->common = 'My'; +$lang->todo->common = 'Todo'; +$lang->block->common = 'Block'; $lang->program->common = 'Program'; $lang->product->common = 'Product'; $lang->project->common = 'Project'; diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php index 20c52b0b7d..9d84d2c124 100644 --- a/module/common/lang/fr.php +++ b/module/common/lang/fr.php @@ -158,6 +158,8 @@ $lang->delayed = 'Delayed'; $lang->common->common = 'Module Commun'; $lang->common->story = 'Story'; $lang->my->common = 'My'; +$lang->todo->common = 'Agenda'; +$lang->block->common = 'Bloc'; $lang->program->common = 'Program'; $lang->product->common = 'Product'; $lang->project->common = 'Project'; diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 3cc4ed7fc8..ba38773871 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -158,6 +158,8 @@ $lang->delayed = '已延期'; $lang->common->common = '公有模块'; $lang->common->story = '需求'; $lang->my->common = '地盘'; +$lang->todo->common = '待办'; +$lang->block->common = '区块'; $lang->program->common = '项目集'; $lang->product->common = '产品'; $lang->project->common = '项目'; diff --git a/module/todo/lang/de.php b/module/todo/lang/de.php index a4b7f1d009..f836b192da 100644 --- a/module/todo/lang/de.php +++ b/module/todo/lang/de.php @@ -9,7 +9,6 @@ * @version $Id: en.php 4676 2013-04-26 06:08:23Z chencongzhi520@gmail.com $ * @link http://www.zentao.net */ -$lang->todo->common = 'Todo'; $lang->todo->index = "Home"; $lang->todo->create = "Todo hinzufügen"; $lang->todo->createCycle = "Wiederkehrenden Todo hinzufügen"; diff --git a/module/todo/lang/en.php b/module/todo/lang/en.php index cb59f94861..6c611d06a7 100644 --- a/module/todo/lang/en.php +++ b/module/todo/lang/en.php @@ -9,7 +9,6 @@ * @version $Id: en.php 4676 2013-04-26 06:08:23Z chencongzhi520@gmail.com $ * @link http://www.zentao.net */ -$lang->todo->common = 'Todo'; $lang->todo->index = "Home"; $lang->todo->create = "Add Todo"; $lang->todo->createCycle = "Add Recurred Todo"; diff --git a/module/todo/lang/fr.php b/module/todo/lang/fr.php index 375a62a895..9acfcedebc 100644 --- a/module/todo/lang/fr.php +++ b/module/todo/lang/fr.php @@ -9,7 +9,6 @@ * @version $Id: en.php 4676 2013-04-26 06:08:23Z chencongzhi520@gmail.com $ * @link http://www.zentao.net */ -$lang->todo->common = 'Agenda'; $lang->todo->index = "Accueil"; $lang->todo->create = "Ajout Entrée"; $lang->todo->createCycle = "Ajout Tâche récurrente"; diff --git a/module/todo/lang/vi.php b/module/todo/lang/vi.php index afbb9a22f3..3b1c09f09e 100644 --- a/module/todo/lang/vi.php +++ b/module/todo/lang/vi.php @@ -9,7 +9,6 @@ * @version $Id: vi.php 4676 2020-04-06 06:08:23Z quocnho@gmail.com $ * @link http://www.zentao.net */ -$lang->todo->common = 'Việc làm'; $lang->todo->index = "Home"; $lang->todo->create = "Thêm việc"; $lang->todo->createCycle = "Thêm việc lặp lại"; diff --git a/module/todo/lang/zh-cn.php b/module/todo/lang/zh-cn.php index ec001e5182..790a23e7ba 100644 --- a/module/todo/lang/zh-cn.php +++ b/module/todo/lang/zh-cn.php @@ -9,7 +9,6 @@ * @version $Id: zh-cn.php 5022 2013-07-05 06:50:39Z chencongzhi520@gmail.com $ * @link http://www.zentao.net */ -$lang->todo->common = '待办'; $lang->todo->index = "待办一览"; $lang->todo->create = "添加待办"; $lang->todo->createCycle = "创建周期待办";