diff --git a/config/zentaopms.php b/config/zentaopms.php index 170afc14b9..68b7f8b1b8 100644 --- a/config/zentaopms.php +++ b/config/zentaopms.php @@ -429,9 +429,11 @@ $config->maxPriValue = '256'; $config->importWhiteList = array('user', 'task', 'story', 'bug', 'testcase', 'feedback', 'ticket'); $config->featureGroup = new stdclass(); -$config->featureGroup->my = array('score'); -$config->featureGroup->product = array('roadmap', 'track', 'UR'); -$config->featureGroup->scrum = array(); -$config->featureGroup->waterfall = array(); -$config->featureGroup->assetlib = array(); -$config->featureGroup->other = array('devops', 'kanban'); +$config->featureGroup->my = array('score'); +$config->featureGroup->product = array('roadmap', 'track', 'UR'); +$config->featureGroup->scrum = array(); +$config->featureGroup->waterfall = array(); +$config->featureGroup->agileplus = array(); +$config->featureGroup->waterfallplus = array(); +$config->featureGroup->assetlib = array(); +$config->featureGroup->other = array('devops', 'kanban'); diff --git a/framework/helper.class.php b/framework/helper.class.php index a69af8d858..e00cefbd13 100644 --- a/framework/helper.class.php +++ b/framework/helper.class.php @@ -96,7 +96,7 @@ class helper extends baseHelper } else { - if($feature == 'scrum' or $feature == 'waterfall') return strpos(",$config->disabledFeatures,", ",{$feature},") === false; + if(in_array($feature, array('scrum', 'waterfall', 'agileplus', 'waterfallplus'))) return strpos(",$config->disabledFeatures,", ",{$feature},") === false; $hasFeature = false; $canConfigFeature = false; @@ -107,7 +107,7 @@ class helper extends baseHelper if($feature == $group or $feature == $module) { $canConfigFeature = true; - if($group == 'scrum' or $group == 'waterfall') + if(in_array($group, array('scrum', 'waterfall', 'agileplus', 'waterfallplus'))) { if(helper::hasFeature("{$group}") and helper::hasFeature("{$group}_{$module}")) $hasFeature = true; } diff --git a/module/admin/lang/de.php b/module/admin/lang/de.php index 115ee795ec..6ba6dae130 100755 --- a/module/admin/lang/de.php +++ b/module/admin/lang/de.php @@ -86,9 +86,11 @@ $lang->admin->setModule->opened = 'Opened'; $lang->admin->setModule->closed = 'Closed'; $lang->admin->setModule->my = 'My'; -$lang->admin->setModule->product = 'Product'; -$lang->admin->setModule->scrum = 'Scrum Project'; -$lang->admin->setModule->waterfall = 'Waterfall Project'; +$lang->admin->setModule->product = $lang->productCommon; +$lang->admin->setModule->scrum = 'Scrum ' . $lang->projectCommon; +$lang->admin->setModule->waterfall = 'Waterfall ' . $lang->projectCommon; +$lang->admin->setModule->agileplus = 'Agile + ' . $lang->projectCommon; +$lang->admin->setModule->waterfallplus = 'Waterfall + ' . $lang->projectCommon; $lang->admin->setModule->assetlib = 'Assetlib'; $lang->admin->setModule->other = 'Other'; diff --git a/module/admin/lang/en.php b/module/admin/lang/en.php index f377b35bad..aba1645159 100755 --- a/module/admin/lang/en.php +++ b/module/admin/lang/en.php @@ -86,9 +86,11 @@ $lang->admin->setModule->opened = 'Opened'; $lang->admin->setModule->closed = 'Closed'; $lang->admin->setModule->my = 'My'; -$lang->admin->setModule->product = 'Product'; -$lang->admin->setModule->scrum = 'Scrum Project'; -$lang->admin->setModule->waterfall = 'Waterfall Project'; +$lang->admin->setModule->product = $lang->productCommon; +$lang->admin->setModule->scrum = 'Scrum ' . $lang->projectCommon; +$lang->admin->setModule->waterfall = 'Waterfall ' . $lang->projectCommon; +$lang->admin->setModule->agileplus = 'Agile + ' . $lang->projectCommon; +$lang->admin->setModule->waterfallplus = 'Waterfall + ' . $lang->projectCommon; $lang->admin->setModule->assetlib = 'Assetlib'; $lang->admin->setModule->other = 'Other'; diff --git a/module/admin/lang/fr.php b/module/admin/lang/fr.php index 416bdc6965..71acb72380 100755 --- a/module/admin/lang/fr.php +++ b/module/admin/lang/fr.php @@ -86,9 +86,11 @@ $lang->admin->setModule->opened = 'Opened'; $lang->admin->setModule->closed = 'Closed'; $lang->admin->setModule->my = 'My'; -$lang->admin->setModule->product = 'Product'; -$lang->admin->setModule->scrum = 'Scrum Project'; -$lang->admin->setModule->waterfall = 'Waterfall Project'; +$lang->admin->setModule->product = $lang->productCommon; +$lang->admin->setModule->scrum = 'Scrum ' . $lang->projectCommon; +$lang->admin->setModule->waterfall = 'Waterfall ' . $lang->projectCommon; +$lang->admin->setModule->agileplus = 'Agile + ' . $lang->projectCommon; +$lang->admin->setModule->waterfallplus = 'Waterfall + ' . $lang->projectCommon; $lang->admin->setModule->assetlib = 'Assetlib'; $lang->admin->setModule->other = 'Other'; diff --git a/module/admin/lang/menu.php b/module/admin/lang/menu.php index 28890757f0..09d1b62349 100644 --- a/module/admin/lang/menu.php +++ b/module/admin/lang/menu.php @@ -167,15 +167,25 @@ $lang->admin->menuList->dev['menuOrder']['10'] = 'db'; $lang->admin->menuList->dev['menuOrder']['15'] = 'editor'; $lang->admin->menuList->dev['menuOrder']['20'] = 'entry'; -if($config->edition != 'max') unset($lang->admin->menuList->model['subMenu']['scrum'], $lang->admin->menuList->model['menuOrder']['10'], $lang->admin->menuList->template); +if($config->edition != 'max') +{ + unset($lang->admin->menuList->model['subMenu']['scrum']); + unset($lang->admin->menuList->model['subMenu']['agileplus']); + unset($lang->admin->menuList->model['menuOrder']['10']); + unset($lang->admin->menuList->model['menuOrder']['20']); + unset($lang->admin->menuList->template); +} if(!helper::hasFeature('waterfall')) { unset($lang->admin->menuList->model['subMenu']['waterfall']); + unset($lang->admin->menuList->model['subMenu']['waterfallplus']); unset($lang->admin->menuList->model['menuOrder']['15']); + unset($lang->admin->menuList->model['menuOrder']['25']); } -if($config->edition == 'max' and !helper::hasFeature('scrum_auditplan')) +if($config->edition == 'max') { - if(!helper::hasFeature('scrum_process')) unset($lang->admin->menuList->model['subMenu']['scrum'], $lang->admin->menuList->model['menuOrder']['10']); + if(!helper::hasFeature('scrum_auditplan') and !helper::hasFeature('scrum_process')) unset($lang->admin->menuList->model['subMenu']['scrum'], $lang->admin->menuList->model['menuOrder']['10']); + if(!helper::hasFeature('agileplus_auditplan') and !helper::hasFeature('agileplus_process')) unset($lang->admin->menuList->model['subMenu']['scrum'], $lang->admin->menuList->model['menuOrder']['10']); } if($config->vision == 'lite') @@ -189,8 +199,12 @@ if($config->vision == 'lite') unset($lang->admin->menuList->model['subMenu']['scrum']); unset($lang->admin->menuList->model['subMenu']['waterfall']); + unset($lang->admin->menuList->model['subMenu']['agileplus']); + unset($lang->admin->menuList->model['subMenu']['waterfallplus']); unset($lang->admin->menuList->model['menuOrder']['10']); unset($lang->admin->menuList->model['menuOrder']['15']); + unset($lang->admin->menuList->model['menuOrder']['20']); + unset($lang->admin->menuList->model['menuOrder']['25']); unset($lang->admin->menuList->feature['subMenu']['product']); unset($lang->admin->menuList->feature['subMenu']['execution']); diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php index 926dede079..ab9f757940 100755 --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -86,9 +86,11 @@ $lang->admin->setModule->opened = '已开启'; $lang->admin->setModule->closed = '已关闭'; $lang->admin->setModule->my = '地盘'; -$lang->admin->setModule->product = '产品'; -$lang->admin->setModule->scrum = '敏捷项目'; -$lang->admin->setModule->waterfall = '瀑布项目'; +$lang->admin->setModule->product = $lang->productCommon; +$lang->admin->setModule->scrum = '敏捷' . $lang->projectCommon; +$lang->admin->setModule->waterfall = '瀑布' . $lang->projectCommon; +$lang->admin->setModule->agileplus = '融合敏捷' . $lang->projectCommon; +$lang->admin->setModule->waterfallplus = '融合瀑布' . $lang->projectCommon; $lang->admin->setModule->assetlib = '资产库'; $lang->admin->setModule->other = '通用功能'; diff --git a/module/block/control.php b/module/block/control.php index b65269bc6c..78edb264b5 100755 --- a/module/block/control.php +++ b/module/block/control.php @@ -78,7 +78,25 @@ class block extends control elseif(isset($this->lang->block->moduleList[$module])) { $this->get->set('mode', 'getblocklist'); - if($module == 'project') $this->get->set('dashboard', 'project'); + if($module == 'project') + { + $this->get->set('dashboard', 'project'); + + if($this->config->edition == 'max' and $this->app->tab == 'project') + { + $project = $this->loadModel('project')->getByID($this->session->project); + if(isset($project->model) and !helper::hasFeature("{$project->model}_issue")) + { + unset($this->lang->block->modules['scrum']['index']->availableBlocks->scrumissue); + unset($this->lang->block->modules['waterfall']['index']->availableBlocks->waterfallissue); + } + if(isset($project->model) and !helper::hasFeature("{$project->model}_risk")) + { + unset($this->lang->block->modules['scrum']['index']->availableBlocks->scrumrisk); + unset($this->lang->block->modules['waterfall']['index']->availableBlocks->waterfallrisk); + } + } + } $this->view->blocks = $this->fetch('block', 'main', "module=$module&id=$id"); $this->view->module = $module; } @@ -253,10 +271,20 @@ class block extends control $shortBlocks = $longBlocks = array(); foreach($blocks as $key => $block) { - if($block->block == 'waterfallrisk' and !helper::hasFeature('waterfall_risk')) continue; - if($block->block == 'waterfallissue' and !helper::hasFeature('waterfall_issue')) continue; - if($block->block == 'scrumrisk' and !helper::hasFeature('scrum_risk')) continue; - if($block->block == 'scrumissue' and !helper::hasFeature('scrum_issue')) continue; + if(in_array($block->block, array('waterfallrisk', 'waterfallissue'))) + { + $model = isset($project->model) ? $project->model : 'waterfall'; + if($block->block == 'waterfallrisk' and !helper::hasFeature("{$model}_risk")) continue; + if($block->block == 'waterfallissue' and !helper::hasFeature("{$model}_issue")) continue; + } + + if(in_array($block->block, array('scrumrisk', 'scrumissue'))) + { + $model = isset($project->model) ? $project->model : 'scrum'; + if($block->block == 'scrumrisk' and !helper::hasFeature("{$model}_risk")) continue; + if($block->block == 'scrumissue' and !helper::hasFeature("{$model}_issue")) continue; + } + if(!empty($block->source) and $block->source != 'todo' and !empty($acls['views']) and !isset($acls['views'][$block->source])) { unset($blocks[$key]); diff --git a/module/dev/config.php b/module/dev/config.php index 697b172c04..108c481640 100644 --- a/module/dev/config.php +++ b/module/dev/config.php @@ -240,6 +240,3 @@ $config->dev->postParams['testcase']['create']['steps'] = 'string'; $config->dev->postParams['testcase']['create']['expect'] = 'string'; $config->dev->postParams['testcase']['create']['mailto'] = 'string'; $config->dev->postParams['testcase']['create']['keywords'] = 'string'; - -$config->disableFeature = array(); -if(!helper::hasFeature('waterfall')) $config->disableFeature = array('design', 'stage', 'programplan', 'weekly', 'researchplan', 'researchreport', 'gapanalysis'); diff --git a/module/dev/view/api.html.php b/module/dev/view/api.html.php index 3bdb9b80a8..914b930f84 100644 --- a/module/dev/view/api.html.php +++ b/module/dev/view/api.html.php @@ -9,7 +9,6 @@
disableFeature and in_array($module, $config->disableFeature)) continue; $active = ($module == $selectedModule) ? 'text-primary' : ''; $moduleName = zget($lang->dev->tableList, $module, $module); ?> diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index ac6c5c578b..08c5b3da71 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -2017,15 +2017,15 @@ if(!$inUpgrade) unset($lang->resource->program); unset($lang->resource->project->programTitle); } - if(!helper::hasFeature('waterfall')) + if(!helper::hasFeature('waterfall') and !helper::hasFeature('waterfallplus')) { unset($lang->resource->design); unset($lang->resource->programplan); unset($lang->resource->stage); } - if(!helper::hasFeature('product_track')) unset($lang->resource->product->track); - if(!helper::hasFeature('product_roadmap')) unset($lang->resource->product->roadmap); - if(!helper::hasFeature('waterfall_track')) unset($lang->resource->projectstory->track); + if(!helper::hasFeature('product_track')) unset($lang->resource->product->track); + if(!helper::hasFeature('product_roadmap')) unset($lang->resource->product->roadmap); + if(!helper::hasFeature('waterfall_track') and !helper::hasFeature('waterfallplus_track')) unset($lang->resource->projectstory->track); if(!helper::hasFeature('devops')) { unset($lang->resource->repo); diff --git a/module/my/lang/de.php b/module/my/lang/de.php index b508fa00cc..1d9f272c19 100644 --- a/module/my/lang/de.php +++ b/module/my/lang/de.php @@ -99,7 +99,7 @@ $lang->my->auditMenu->audit = new stdclass(); $lang->my->auditMenu->audit->all = 'All'; $lang->my->auditMenu->audit->story = 'Story'; $lang->my->auditMenu->audit->testcase = 'Case'; -if($config->edition == 'max' and helper::hasFeature('waterfall')) $lang->my->auditMenu->audit->project = 'Project'; +if($config->edition == 'max' and (helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus'))) $lang->my->auditMenu->audit->project = $lang->projectCommon; if($config->edition != 'open') $lang->my->auditMenu->audit->feedback = 'Feedback'; if($config->edition != 'open' and helper::hasFeature('OA')) $lang->my->auditMenu->audit->oa = 'OA'; diff --git a/module/my/lang/en.php b/module/my/lang/en.php index b508fa00cc..1d9f272c19 100644 --- a/module/my/lang/en.php +++ b/module/my/lang/en.php @@ -99,7 +99,7 @@ $lang->my->auditMenu->audit = new stdclass(); $lang->my->auditMenu->audit->all = 'All'; $lang->my->auditMenu->audit->story = 'Story'; $lang->my->auditMenu->audit->testcase = 'Case'; -if($config->edition == 'max' and helper::hasFeature('waterfall')) $lang->my->auditMenu->audit->project = 'Project'; +if($config->edition == 'max' and (helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus'))) $lang->my->auditMenu->audit->project = $lang->projectCommon; if($config->edition != 'open') $lang->my->auditMenu->audit->feedback = 'Feedback'; if($config->edition != 'open' and helper::hasFeature('OA')) $lang->my->auditMenu->audit->oa = 'OA'; diff --git a/module/my/lang/fr.php b/module/my/lang/fr.php index b508fa00cc..1d9f272c19 100644 --- a/module/my/lang/fr.php +++ b/module/my/lang/fr.php @@ -99,7 +99,7 @@ $lang->my->auditMenu->audit = new stdclass(); $lang->my->auditMenu->audit->all = 'All'; $lang->my->auditMenu->audit->story = 'Story'; $lang->my->auditMenu->audit->testcase = 'Case'; -if($config->edition == 'max' and helper::hasFeature('waterfall')) $lang->my->auditMenu->audit->project = 'Project'; +if($config->edition == 'max' and (helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus'))) $lang->my->auditMenu->audit->project = $lang->projectCommon; if($config->edition != 'open') $lang->my->auditMenu->audit->feedback = 'Feedback'; if($config->edition != 'open' and helper::hasFeature('OA')) $lang->my->auditMenu->audit->oa = 'OA'; diff --git a/module/my/lang/zh-cn.php b/module/my/lang/zh-cn.php index 545768b7ea..b6e0038cf1 100644 --- a/module/my/lang/zh-cn.php +++ b/module/my/lang/zh-cn.php @@ -99,7 +99,7 @@ $lang->my->auditMenu->audit = new stdclass(); $lang->my->auditMenu->audit->all = '所有'; $lang->my->auditMenu->audit->story = '需求'; $lang->my->auditMenu->audit->testcase = '用例'; -if($config->edition == 'max' and helper::hasFeature('waterfall')) $lang->my->auditMenu->audit->project = '项目'; +if($config->edition == 'max' and (helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus'))) $lang->my->auditMenu->audit->project = $lang->projectCommon; if($config->edition != 'open') $lang->my->auditMenu->audit->feedback = '反馈'; if($config->edition != 'open' and helper::hasFeature('OA')) $lang->my->auditMenu->audit->oa = '办公'; diff --git a/module/project/lang/de.php b/module/project/lang/de.php index dfd375a94d..91198d2690 100644 --- a/module/project/lang/de.php +++ b/module/project/lang/de.php @@ -272,7 +272,7 @@ $lang->project->modelList['scrum'] = "Scrum"; if(helper::hasFeature('waterfall')) $lang->project->modelList['waterfall'] = "CMMI"; $lang->project->modelList['kanban'] = "Kanban"; $lang->project->modelList['agileplus'] = "Agile +"; -if(helper::hasFeature('waterfall')) $lang->project->modelList['waterfallplus'] = "Waterfall +"; +if(helper::hasFeature('waterfallplus')) $lang->project->modelList['waterfallplus'] = "Waterfall +"; $lang->project->featureBar['browse']['all'] = 'All'; $lang->project->featureBar['browse']['undone'] = 'Unfinished'; diff --git a/module/project/lang/en.php b/module/project/lang/en.php index d25999685f..5092070e59 100644 --- a/module/project/lang/en.php +++ b/module/project/lang/en.php @@ -272,7 +272,7 @@ $lang->project->modelList['scrum'] = "Scrum"; if(helper::hasFeature('waterfall')) $lang->project->modelList['waterfall'] = "CMMI"; $lang->project->modelList['kanban'] = "Kanban"; $lang->project->modelList['agileplus'] = "Agile +"; -if(helper::hasFeature('waterfall')) $lang->project->modelList['waterfallplus'] = "Waterfall +"; +if(helper::hasFeature('waterfallplus')) $lang->project->modelList['waterfallplus'] = "Waterfall +"; $lang->project->featureBar['browse']['all'] = 'All'; $lang->project->featureBar['browse']['undone'] = 'Unfinished'; diff --git a/module/project/lang/fr.php b/module/project/lang/fr.php index 5e82bde244..73c3749268 100644 --- a/module/project/lang/fr.php +++ b/module/project/lang/fr.php @@ -272,7 +272,7 @@ $lang->project->modelList['scrum'] = "Scrum"; if(helper::hasFeature('waterfall')) $lang->project->modelList['waterfall'] = "CMMI"; $lang->project->modelList['kanban'] = "Kanban"; $lang->project->modelList['agileplus'] = "Agile +"; -if(helper::hasFeature('waterfall')) $lang->project->modelList['waterfallplus'] = "Waterfall +"; +if(helper::hasFeature('waterfallplus')) $lang->project->modelList['waterfallplus'] = "Waterfall +"; $lang->project->featureBar['browse']['all'] = 'All'; $lang->project->featureBar['browse']['undone'] = 'Non Terminées'; diff --git a/module/project/lang/zh-cn.php b/module/project/lang/zh-cn.php index be8f261079..6721e62b8c 100644 --- a/module/project/lang/zh-cn.php +++ b/module/project/lang/zh-cn.php @@ -272,7 +272,7 @@ $lang->project->modelList['scrum'] = "Scrum"; if(helper::hasFeature('waterfall')) $lang->project->modelList['waterfall'] = "瀑布"; $lang->project->modelList['kanban'] = "看板"; $lang->project->modelList['agileplus'] = "融合敏捷"; -if(helper::hasFeature('waterfall')) $lang->project->modelList['waterfallplus'] = "融合瀑布"; +if(helper::hasFeature('waterfallplus')) $lang->project->modelList['waterfallplus'] = "融合瀑布"; $lang->project->featureBar['browse']['all'] = '全部'; $lang->project->featureBar['browse']['undone'] = '未完成'; diff --git a/module/project/view/ajaxgetdropmenu.html.php b/module/project/view/ajaxgetdropmenu.html.php index 6c51b4d224..b21bb7acc5 100644 --- a/module/project/view/ajaxgetdropmenu.html.php +++ b/module/project/view/ajaxgetdropmenu.html.php @@ -80,19 +80,19 @@ foreach($projects as $programID => $programProjects) { $link = $indexLink; } - elseif($project->model == 'scrum' and + elseif((in_array($project->model, array('scrum', 'agileplus'))) and ( - (in_array($module, array('issue', 'risk', 'meeting')) and !helper::hasFeature("scrum_{$module}")) or - ($module == 'report' and $method == 'projectsummary' and !helper::hasFeature("scrum_measrecord")) + (in_array($module, array('issue', 'risk', 'meeting')) and !helper::hasFeature("{$project->model}_{$module}")) or + ($module == 'report' and $method == 'projectsummary' and !helper::hasFeature("{$project->model}_measrecord")) )) { $link = $indexLink; } - elseif($project->model == 'waterfall' and + elseif(in_array($project->model, array('waterfall', 'waterfallplus')) and ( - (in_array($module, array('issue', 'risk', 'opportunity', 'measrecord', 'auditplan', 'meeting')) and !helper::hasFeature("waterfall_{$module}")) or - ($module == 'pssp' and !helper::hasFeature("waterfall_process")) or - ($module == 'report' and $method == 'projectsummary' and !helper::hasFeature("scrum_measrecord")) + (in_array($module, array('issue', 'risk', 'opportunity', 'measrecord', 'auditplan', 'meeting')) and !helper::hasFeature("{$project->model}_{$module}")) or + ($module == 'pssp' and !helper::hasFeature("{$project->model}_process")) or + ($module == 'report' and $method == 'projectsummary' and !helper::hasFeature("{$project->model}_measrecord")) )) { $link = $indexLink; diff --git a/module/project/view/createguide.html.php b/module/project/view/createguide.html.php index 14a5710c35..83a4e2912a 100644 --- a/module/project/view/createguide.html.php +++ b/module/project/view/createguide.html.php @@ -29,7 +29,9 @@ tab; if($tab == 'product') $tab = 'project'; - $hasWaterfall = helper::hasFeature('waterfall'); + + $hasWaterfall = helper::hasFeature('waterfall'); + $hasWaterfallPlus = helper::hasFeature('waterfallplus'); ?>
", '', "data-app='{$tab}' class='createButton'")?>
@@ -60,7 +62,7 @@
project->agileplusTitle;?>
", '', "data-app='{$tab}' class='createButton'")?>