diff --git a/config/zentaopms.php b/config/zentaopms.php index dcf66e6b51..e403658587 100644 --- a/config/zentaopms.php +++ b/config/zentaopms.php @@ -787,7 +787,7 @@ $config->db->sqliteBlacklist = array('sqlite_queue', 'cron'); $config->hasDropmenuApps = array('program', 'project', 'product', 'execution', 'qa', 'admin', 'bi', 'feedback', 'demandpool'); $config->hasBranchMenuModules = array('product', 'story', 'release', 'bug', 'testcase', 'testtask', 'branch', 'tree'); $config->excludeBranchMenu = array('product-dashboard', 'product-view'); -$config->excludeDropmenuList = array('program-browse', 'program-productview', 'program-kanban', 'product-all', 'product-index', 'product-kanban', 'project-kanban', 'execution-all', 'execution-executionkanban', 'project-browse', 'project-template', 'project-createtemplate', 'project-batchedit', 'product-batchedit', 'admin-index', 'product-create', 'project-create', 'execution-create', 'program-create', 'execution-batchedit', 'metric-preview', 'metric-browse', 'metric-view', 'metriclib-browse', 'qa-index', 'caselib-create', 'feedback-batchedit', 'feedback-batchclose', 'feedback-showimport', 'dimension-browse', 'dataview-browse', 'dataview-create', 'dataview-query', 'ticket-batchedit', 'ticket-batchfinish', 'ticket-batchactivate', 'file-download', 'workflowgroup-product', 'workflowgroup-project', 'workflow-browseflow', 'workflowdatasource-browse', 'workflowrule-browse', 'approvalflow-browse', 'approvalflow-role', 'approvalflow-design', 'approvalflow-view' , 'workflowgroup-design', 'workflowgroup-deliverable'); +$config->excludeDropmenuList = array('program-browse', 'program-productview', 'program-kanban', 'product-all', 'product-index', 'product-kanban', 'project-kanban', 'execution-all', 'execution-executionkanban', 'project-browse', 'project-template', 'project-createtemplate', 'project-batchedit', 'product-batchedit', 'admin-index', 'product-create', 'project-create', 'execution-create', 'program-create', 'execution-batchedit', 'metric-preview', 'metric-browse', 'metric-view', 'metriclib-browse', 'qa-index', 'caselib-create', 'feedback-batchedit', 'feedback-batchclose', 'feedback-showimport', 'dimension-browse', 'dataview-browse', 'dataview-create', 'dataview-query', 'ticket-batchedit', 'ticket-batchfinish', 'ticket-batchactivate', 'file-download', 'workflow-browseflow', 'workflowdatasource-browse', 'workflowrule-browse', 'approvalflow-browse', 'approvalflow-role', 'approvalflow-design', 'approvalflow-view'); $config->hasSwitcherModules = array('design'); $config->hasSwitcherMethods = array('project-bug', 'project-testcase', 'execution-bug', 'execution-testcase', 'testtask-cases', 'testtask-view', 'testtask-report', 'testtask-groupcase', 'testtask-linkcase'); $config->excludeSwitcherList = array(); diff --git a/lib/zin/wg/dropmenu/css/v1.css b/lib/zin/wg/dropmenu/css/v1.css index bd76831963..2f1470218d 100644 --- a/lib/zin/wg/dropmenu/css/v1.css +++ b/lib/zin/wg/dropmenu/css/v1.css @@ -3,4 +3,5 @@ #pick-pop-admin-menu .dropmenu-item + .dropmenu-item {margin-top: 4px} #pick-pop-admin-menu .dropmenu-item.active {background-color: unset;} #pick-pop-admin-menu .dropmenu-item:hover {color: rgba(var(--color-primary-500-rgb),var(--tw-text-opacity)); background-color: rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));} -.dropmenu-item .item-content .label {flex-shrink: 0;} \ No newline at end of file +.dropmenu-item .item-content .label {flex-shrink: 0;} +.svg-icon {height: 24px; width: 24px; text-align: center;} diff --git a/module/admin/control.php b/module/admin/control.php index 61d9e7fa33..2fabcebbdc 100755 --- a/module/admin/control.php +++ b/module/admin/control.php @@ -481,12 +481,11 @@ class admin extends control foreach($this->lang->admin->menuList as $menuKey => $menuGroup) { if($this->config->vision == 'lite' && !in_array($menuKey, $this->config->admin->liteMenuList)) continue; - if(!empty($menuGroup['group']) && $menuGroup['group'] == 'flow') continue; $data[] = array( 'id' => $menuKey, 'name' => $menuKey, - 'content' => array('html' => "
{$menuGroup['name']}
"), + 'content' => array('html' => "
" . (!empty($menuGroup['icon']) ? "" : "") . " {$menuGroup['name']}
"), 'text' => $menuGroup['name'], 'titleClass' => 'hidden', 'type' => 'item', diff --git a/module/admin/model.php b/module/admin/model.php index 7bb1999af4..2ab642fcc1 100755 --- a/module/admin/model.php +++ b/module/admin/model.php @@ -123,6 +123,8 @@ class adminModel extends model $methodName = $this->app->rawMethod; $firstParam = $this->app->rawParams ? reset($this->app->rawParams) : ''; + if($moduleName == 'workflowgroup' && ($methodName == 'project' || $methodName == 'product')) return; + foreach($this->lang->admin->menuList->{$menuKey}['subMenu'] as $subMenuKey => $subMenu) { $subModule = ''; @@ -132,6 +134,8 @@ class adminModel extends model if($firstParam == $subMenuKey) $subModule = 'custom'; } + if(isset($subMenu['link']) && strpos($subMenu['link'], '%s') !== false) $subMenu['link'] = sprintf($subMenu['link'], $firstParam); + if(!empty($subModule)) $subMenu['subModule'] = $subModule; if(isset($this->lang->admin->menuList->{$menuKey}['tabMenu'][$subMenuKey])) { @@ -384,6 +388,11 @@ class adminModel extends model { if(in_array($firstParam, $this->config->admin->menuModuleGroup[$menuKey]["custom|$methodName"])) return $menuKey; } + else if($moduleName == 'workflowgroup' && $firstParam) + { + $workflowgroup = $this->loadModel('workflowgroup')->fetchByID($firstParam); + return $workflowgroup->type == 'project' ? 'projectflow' : 'productflow'; + } else { return $menuKey;