* code for task #83736.

This commit is contained in:
wangyidong
2023-02-10 17:37:50 +08:00
parent e53c45c256
commit ff66b39a2a
15 changed files with 139 additions and 53 deletions
+8 -6
View File
@@ -10,7 +10,7 @@ if(!isset($config->safe->weak)) $config->safe->weak = '123456,password,12345,123
$config->admin->menuGroup['system'] = array('custom|mode', 'backup', 'cron', 'action|trash', 'admin|xuanxuan', 'setting|xuanxuan', 'admin|license', 'admin|checkweak', 'admin|resetpwdsetting', 'admin|safe', 'custom|timezone', 'search|buildindex', 'admin|tableengine', 'ldap', 'custom|libreoffice', 'conference', 'client');
$config->admin->menuGroup['user'] = array('dept', 'company', 'user', 'group');
$config->admin->menuGroup['switch'] = array('admin|setmodule');
$config->admin->menuGroup['model'] = array('auditcl', 'stage', 'design', 'cmcl', 'reviewcl', 'custom|required', 'custom|set', 'custom|flow', 'custom|code', 'custom|estimate', 'subject', 'process', 'activity', 'zoutput', 'classify');
$config->admin->menuGroup['model'] = array('auditcl', 'stage', 'design', 'cmcl', 'reviewcl', 'custom|required', 'custom|set', 'custom|flow', 'custom|code', 'custom|estimate', 'custom|hours', 'subject', 'process', 'activity', 'zoutput', 'classify');
$config->admin->menuGroup['feature'] = array('custom|set', 'custom|product', 'custom|execution', 'custom|required', 'custom|kanban', 'approvalflow', 'measurement', 'meetingroom', 'custom|browsestoryconcept', 'custom|kanban', 'sqlbuilder', 'report');
$config->admin->menuGroup['template'] = array('custom|set', 'baseline');
$config->admin->menuGroup['message'] = array('mail', 'webhook', 'sms', 'message');
@@ -84,9 +84,11 @@ $config->admin->helpURL['extension'] = 'https://www.zentao.net/book/zentaopms/53
$config->admin->helpURL['dev'] = 'https://www.zentao.net/book/zentaopms/537.html';
$config->admin->helpURL['convert'] = 'https://www.zentao.net/book/zentaopms/656.html';
$config->admin->navsGroup['my'] = ',todo,block,';
$config->admin->navsGroup['product'] = ',product,story,productplan,release,';
$config->admin->navsGroup['execution'] = ',execution,task,';
$config->admin->navsGroup['project'] = ',project,story,';
$config->admin->navsGroup['qa'] = ',bug,testcase,testsuite,testtask,testreport,caselib,';
$config->admin->navsGroup['feature']['my'] = ',todo,block,';
$config->admin->navsGroup['feature']['product'] = ',product,story,productplan,release,';
$config->admin->navsGroup['feature']['project'] = ',project,';
$config->admin->navsGroup['feature']['execution'] = ',execution,task,';
$config->admin->navsGroup['feature']['project'] = ',project,story,';
$config->admin->navsGroup['feature']['qa'] = ',bug,testcase,testsuite,testtask,testreport,caselib,';
$config->admin->navsGroup['model']['common'] = ',project,build,issue,risk,opportunity,nc,';
if($config->vision == 'lite') $config->admin->navsGroup['my'] .= 'task,';
+32 -2
View File
@@ -75,7 +75,7 @@ $lang->admin->menuList->switch['subMenu']['setmodule'] = array('link' => "{$lang
$lang->admin->menuList->switch['menuOrder']['5'] = 'setmodule';
$lang->admin->menuList->model['subMenu']['common'] = array('link' => "{$lang->globalSetting}|custom|required|module=project", 'subModule' => 'custom');
$lang->admin->menuList->model['subMenu']['common'] = array('link' => "{$lang->globalSetting}|custom|required|module=project", 'subModule' => 'custom,subject');
$lang->admin->menuList->model['subMenu']['scrum'] = array('link' => "{$lang->scrumModel}|auditcl|scrumbrowse|", 'subModule' => 'auditcl');
$lang->admin->menuList->model['subMenu']['waterfall'] = array('link' => "{$lang->waterfallModel}|stage|settype|", 'subModule' => 'stage');
@@ -83,7 +83,18 @@ $lang->admin->menuList->model['menuOrder']['5'] = 'common';
$lang->admin->menuList->model['menuOrder']['10'] = 'scrum';
$lang->admin->menuList->model['menuOrder']['15'] = 'waterfall';
$lang->admin->menuList->model['tabMenu']['common']['project'] = array('link' => "{$lang->project->common}|custom|required|module=project", 'alias' => 'set', 'exclude' => 'custom');
$lang->admin->menuList->model['tabMenu']['common']['build'] = array('link' => "{$lang->build->common}|custom|required|module=build", 'alias' => 'set', 'exclude' => 'custom');
$lang->admin->menuList->model['tabMenu']['common']['flow'] = array('link' => "{$lang->custom->flow}|custom|flow|", 'divider' => true);
$lang->admin->menuList->model['tabMenu']['common']['code'] = array('link' => "{$lang->code}|custom|code|");
$lang->admin->menuList->model['tabMenu']['common']['hours'] = array('link' => "{$lang->workingHour}|custom|hours|");
$lang->admin->menuList->model['tabMenu']['waterfall']['stage'] = array('link' => "{$lang->stage->common}|stage|settype|", 'subModule' => 'stage');
$lang->admin->menuList->model['tabMenu']['menuOrder']['common']['5'] = 'project';
$lang->admin->menuList->model['tabMenu']['menuOrder']['common']['10'] = 'build';
$lang->admin->menuList->model['tabMenu']['menuOrder']['common']['35'] = 'flow';
$lang->admin->menuList->model['tabMenu']['menuOrder']['common']['40'] = 'code';
$lang->admin->menuList->model['tabMenu']['menuOrder']['common']['45'] = 'hours';
$lang->admin->menuList->model['tabMenu']['menuOrder']['waterfall']['5'] = 'stage';
$lang->admin->menuList->feature['subMenu']['my'] = array('link' => "{$lang->my->common}|custom|set|module=todo&field=priList", 'exclude' => 'set,required');
$lang->admin->menuList->feature['subMenu']['product'] = array('link' => "{$lang->productCommon}|custom|required|module=product", 'exclude' => 'set,required', 'alias' => 'browsestoryconcept,product');
@@ -95,7 +106,6 @@ $lang->admin->menuList->feature['subMenu']['user'] = array('link' => "{$l
$lang->admin->menuList->feature['tabMenu']['my']['todo'] = array('link' => "{$lang->todo->common}|custom|set|module=todo&field=priList", 'exclude' => 'custom-set');
$lang->admin->menuList->feature['tabMenu']['my']['block'] = array('link' => "{$lang->block->common}|custom|set|module=block&field=closed", 'exclude' => 'custom-set');
if($config->vision == 'lite') $lang->admin->menuList->feature['tabMenu']['my']['task'] = array('link' => "{$lang->task->common}|custom|required|module=task", 'links' => array('custom|set|module=task&field=priList'), 'exclude' => 'custom-required,custom-set');
$lang->admin->menuList->feature['tabMenu']['product']['product'] = array('link' => "{$lang->productCommon}|custom|required|module=product", 'links' => array("custom|browsestoryconcept|", 'custom|product|'), 'alias' => 'browsestoryconcept,product', 'exclude' => 'custom-required');
$lang->admin->menuList->feature['tabMenu']['product']['story'] = array('link' => "{$lang->SRCommon}|custom|required|module=story", 'links' => array("custom|set|module=story&field=categoryList"), 'exclude' => 'custom-required,custom-set');
@@ -112,6 +122,21 @@ $lang->admin->menuList->feature['tabMenu']['qa']['testtask'] = array('link' =>
$lang->admin->menuList->feature['tabMenu']['qa']['testreport'] = array('link' => "{$lang->testreport->common}|custom|required|module=testreport", 'exclude' => 'custom-required');
$lang->admin->menuList->feature['tabMenu']['qa']['caselib'] = array('link' => "{$lang->testcase->caselib}|custom|required|module=caselib", 'exclude' => 'custom-required');
$lang->admin->menuList->feature['tabMenu']['menuOrder']['my']['5'] = 'todo';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['my']['10'] = 'block';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['product']['5'] = 'product';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['product']['10'] = 'story';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['product']['15'] = 'productplan';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['product']['20'] = 'release';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['execution']['5'] = 'extension';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['execution']['10'] = 'task';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['qa']['5'] = 'bug';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['qa']['10'] = 'testcase';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['qa']['15'] = 'testsuite';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['qa']['20'] = 'testtask';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['qa']['25'] = 'testreport';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['qa']['30'] = 'caselib';
$lang->admin->menuList->feature['menuOrder']['5'] = 'my';
$lang->admin->menuList->feature['menuOrder']['10'] = 'product';
$lang->admin->menuList->feature['menuOrder']['15'] = 'execution';
@@ -177,8 +202,13 @@ if($config->vision == 'lite')
unset($lang->admin->menuList->feature['menuOrder']['25']);
$lang->admin->menuList->feature['subMenu']['project'] = array('link' => "{$lang->projectCommon}|custom|execution|", 'exclude' => 'set,required', 'alias' => 'execution');
$lang->admin->menuList->feature['tabMenu']['my']['task'] = array('link' => "{$lang->task->common}|custom|required|module=task", 'links' => array('custom|set|module=task&field=priList'), 'exclude' => 'custom-required,custom-set');
$lang->admin->menuList->feature['tabMenu']['project']['project'] = array('link' => "{$lang->projectCommon}|custom|required|module=project", 'exclude' => 'custom-required');
$lang->admin->menuList->feature['tabMenu']['project']['execution'] = array('link' => "{$lang->execution->common}|custom|execution|");
$lang->admin->menuList->feature['tabMenu']['project']['story'] = array('link' => "{$lang->SRCommon}|custom|required|module=story", 'links' => array("custom|set|module=story&field=priList"), 'exclude' => 'custom-required,custom-set');
$lang->admin->menuList->feature['tabMenu']['menuOrder']['my']['15'] = 'task';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['project']['5'] = 'project';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['project']['10'] = 'execution';
$lang->admin->menuList->feature['tabMenu']['menuOrder']['project']['15'] = 'story';
$lang->admin->menuList->feature['menuOrder']['15'] = 'project';
}
+13 -6
View File
@@ -280,16 +280,22 @@ class adminModel extends model
$subModule = '';
if($moduleName == 'custom' and strpos(',required,set,', $methodName) !== false)
{
if(isset($this->config->admin->navsGroup[$subMenuKey]) and strpos($this->config->admin->navsGroup[$subMenuKey], ",$firstParam,") !== false) $subModule = 'custom';
if(isset($this->config->admin->navsGroup[$menuKey][$subMenuKey]) and strpos($this->config->admin->navsGroup[$menuKey][$subMenuKey], ",$firstParam,") !== false) $subModule = 'custom';
if($firstParam == $subMenuKey) $subModule = 'custom';
}
if(!empty($subModule)) $subMenu['subModule'] = $subModule;
if(isset($this->lang->admin->menuList->$menuKey['tabMenu'][$subMenuKey]))
{
if(!empty($subModule)) $this->lang->admin->menuList->$menuKey['tabMenu'][$subMenuKey][$firstParam]['subModule'] = $subModule;
if(!empty($subModule))
{
$this->lang->admin->menuList->$menuKey['tabMenu'][$subMenuKey][$firstParam]['subModule'] = $subModule;
unset($this->lang->admin->menuList->$menuKey['tabMenu'][$subMenuKey][$firstParam]['exclude']);
}
$subMenu['subMenu'] = $this->lang->admin->menuList->$menuKey['tabMenu'][$subMenuKey];
}
if(isset($this->lang->admin->menuList->$menuKey['tabMenu']['menuOrder'][$subMenuKey])) $subMenu['menuOrder'] = $this->lang->admin->menuList->$menuKey['tabMenu']['menuOrder'][$subMenuKey];
if(isset($this->lang->admin->menuList->$menuKey['tabMenu']['dividerMenu'][$subMenuKey])) $subMenu['dividerMenu'] = $this->lang->admin->menuList->$menuKey['tabMenu']['dividerMenu'][$subMenuKey];
$this->lang->admin->menu->$subMenuKey = $subMenu;
}
@@ -435,9 +441,10 @@ class adminModel extends model
*/
public function getMenuKey()
{
$moduleName = $this->app->rawModule;
$methodName = $this->app->rawMethod;
$paramName = $this->app->rawParams ? reset($this->app->rawParams) : '';
$moduleName = $this->app->rawModule;
$methodName = $this->app->rawMethod;
$firstParam = $this->app->rawParams ? reset($this->app->rawParams) : '';
$secondParam = $this->app->rawParams ? next($this->app->rawParams) : '';
foreach($this->config->admin->menuGroup as $menuKey => $menuGroup)
{
@@ -449,7 +456,7 @@ class adminModel extends model
{
if($moduleName == 'custom' and ($methodName == 'required' or $methodName == 'set'))
{
if(in_array($paramName, $this->config->admin->menuModuleGroup[$menuKey]["custom|$methodName"])) return $menuKey;
if(in_array($firstParam, $this->config->admin->menuModuleGroup[$menuKey]["custom|$methodName"])) return $menuKey;
}
else
{