2023-05-16 10:50:42 +08:00

41 lines
1.7 KiB
PHP

<?php
/* Set menu for stage. */
if(empty($executionID))
{
$executions = $this->loadModel('execution')->getPairs(0, 'all', 'nocode');
if(!$executionID and $this->session->execution) $executionID = $this->session->execution;
if(!$executionID or !in_array($executionID, array_keys($executions))) $executionID = key($executions);
}
/* Unset story, bug, build and testtask if type is ops. */
$execution = $this->getByID($executionID);
if($execution and $execution->type == 'stage')
{
$attribute = $execution->attribute;
if($attribute and isset($this->lang->stage->attribute[$attribute]))
{
$this->lang->execution->menu = $this->lang->stage->attribute[$attribute]->menu;
$this->lang->execution->dividerMenu = $this->lang->stage->attribute[$attribute]->dividerMenu;
}
/* Some pages of some stages jump to the task page. */
$moduleName = $this->app->getModuleName();
$methodName = $this->app->getMethodName();
if(in_array($attribute, array('request', 'review')) and in_array($moduleName . '-' . $methodName, array('execution-build', 'execution-story', 'execution-bug', 'repo-create'))) die(js::locate(helper::createLink('execution', 'task', "executionID=$executionID")));
}
$project = $this->loadModel('project')->getByID($execution->project);
$model = isset($project->model) ? $project->model : '';
if(in_array($model, array('scrum', 'agileplus', 'waterfallplus')))
{
$featureList = $this->config->featureGroup->$model;
foreach($featureList as $feature)
{
if(!helper::hasFeature("{$model}_$feature"))
{
if($feature == 'process') $feature = 'pssp';
unset($this->lang->execution->menu->other['dropMenu']->{$feature});
}
}
}