* code for task #69248.

This commit is contained in:
wangyidong
2022-09-19 11:21:43 +08:00
parent 78d1de70c2
commit ed71a58df4
18 changed files with 139 additions and 240 deletions
+36 -60
View File
@@ -245,7 +245,7 @@ class execution extends control
$this->view->setModule = true;
$this->view->canBeChanged = common::canModify('execution', $execution); // Determines whether an object is editable.
$this->view->showBranch = $showBranch;
$this->view->projectName = $this->config->systemMode == 'new' ? $this->loadModel('project')->getById($execution->project)->name . ' / ' . $execution->name : $execution->name;
$this->view->projectName = $this->loadModel('project')->getById($execution->project)->name . ' / ' . $execution->name;
$this->display();
}
@@ -1713,11 +1713,11 @@ class execution extends control
if(!empty($this->config->user->moreLink)) $this->config->moreLinks["RD"] = $this->config->user->moreLink;
$this->loadModel('product');
$allProducts = $this->config->systemMode == 'classic' ? $this->product->getPairs('noclosed') : $this->product->getProductPairsByProject($projectID, 'noclosed');
$allProducts = $this->product->getProductPairsByProject($projectID, 'noclosed');
$copyProjects = $this->loadModel('project')->getPairsByProgram(isset($project->parent) ? $project->parent : '', 'noclosed', '', 'order_asc', '', isset($project->model) ? $project->model : '');
$copyProjectID = ($projectID == 0) ? key($copyProjects) : $projectID;
$this->view->title = (($this->app->tab == 'execution') and ($this->config->systemMode == 'new')) ? $this->lang->execution->createExec : $this->lang->execution->create;
$this->view->title = $this->app->tab == 'execution' ? $this->lang->execution->createExec : $this->lang->execution->create;
$this->view->position[] = $this->view->title;
$this->view->gobackLink = (isset($output['from']) and $output['from'] == 'global') ? $this->createLink('execution', 'all') : '';
$this->view->executions = array('' => '') + $this->execution->getList($projectID);
@@ -1741,7 +1741,7 @@ class execution extends control
$this->view->productPlans = array(0 => '') + $productPlans;
$this->view->whitelist = $whitelist;
$this->view->copyExecutionID = $copyExecutionID;
$this->view->branchGroups = isset($branchGroups) ? $branchGroups : $this->execution->getBranchByProduct(array_keys($products), $this->config->systemMode == 'new' ? $projectID : 0);
$this->view->branchGroups = isset($branchGroups) ? $branchGroups : $this->execution->getBranchByProduct(array_keys($products), $projectID);
$this->view->poUsers = $poUsers;
$this->view->pmUsers = $pmUsers;
$this->view->qdUsers = $qdUsers;
@@ -1867,7 +1867,7 @@ class execution extends control
$position[] = html::a($browseExecutionLink, $execution->name);
$position[] = $this->lang->execution->edit;
$allProducts = $this->config->systemMode == 'classic' ? $this->product->getPairs('noclosed', 0, $linkedProductIdList) : $this->product->getProducts($execution->project, 'noclosed', '', false, $linkedProductIdList);
$allProducts = $this->product->getProducts($execution->project, 'noclosed', '', false, $linkedProductIdList);
$allProducts = array(0 => '') + $allProducts;
$this->loadModel('productplan');
@@ -1935,9 +1935,9 @@ class execution extends control
$this->view->unmodifiableBranches = $unmodifiableBranches;
$this->view->multiBranchProducts = $this->product->getMultiBranchPairs();
$this->view->productPlans = $productPlans;
$this->view->branchGroups = $this->execution->getBranchByProduct(array_keys($linkedProducts), $this->config->systemMode == 'new' ? $execution->project : 0, 'noclosed', $linkedBranchList);
$this->view->branchGroups = $this->execution->getBranchByProduct(array_keys($linkedProducts), $execution->project, 'noclosed', $linkedBranchList);
$this->view->teamMembers = $this->execution->getTeamMembers($executionID);
if($this->config->systemMode == 'new') $this->view->allProjects = $this->project->getPairsByModel($project->model, 0, 'noclosed', $project->id);
$this->view->allProjects = $this->project->getPairsByModel($project->model, 0, 'noclosed', $project->id);
$this->display();
}
@@ -2274,12 +2274,9 @@ class execution extends control
$execution->projectInfo = $this->loadModel('project')->getByID($execution->project);
if($this->config->systemMode == 'new')
{
$programList = array_filter(explode(',', $execution->projectInfo->path));
array_pop($programList);
$this->view->programList = $this->loadModel('program')->getPairsByList($programList);
}
$programList = array_filter(explode(',', $execution->projectInfo->path));
array_pop($programList);
$this->view->programList = $this->loadModel('program')->getPairsByList($programList);
$type = $this->config->vision == 'lite' ? 'kanban' : 'stage,sprint,kanban';
if(empty($execution) || strpos($type, $execution->type) === false) return print(js::error($this->lang->notFound) . js::locate('back'));
@@ -2950,7 +2947,7 @@ class execution extends control
$branches = $this->project->getBranchesByProject($executionID);
$linkedProductIdList = empty($branches) ? '' : array_keys($branches);
$allProducts = $this->config->systemMode == 'classic' ? $this->product->getPairs('noclosed', 0, $linkedProductIdList) : $this->product->getProductPairsByProject($execution->project, 'all', $linkedProductIdList);
$allProducts = $this->product->getProductPairsByProject($execution->project, 'all', $linkedProductIdList);
$linkedProducts = $this->product->getProducts($execution->id, 'all', '', true, $linkedProductIdList);
$linkedBranches = array();
$executionStories = $this->project->getStoriesByProject($executionID);
@@ -2985,8 +2982,8 @@ class execution extends control
$this->view->unmodifiableBranches = $unmodifiableBranches;
$this->view->linkedBranches = $linkedBranches;
$this->view->linkedStoryIDList = $linkedStoryIDList;
$this->view->branchGroups = $this->execution->getBranchByProduct(array_keys($allProducts), $this->config->systemMode == 'new' ? $execution->project : 0, 'ignoreNormal|noclosed');
$this->view->allBranches = $this->execution->getBranchByProduct(array_keys($allProducts), $this->config->systemMode == 'new' ? $execution->project : 0, 'ignoreNormal');
$this->view->branchGroups = $this->execution->getBranchByProduct(array_keys($allProducts), $execution->project, 'ignoreNormal|noclosed');
$this->view->allBranches = $this->execution->getBranchByProduct(array_keys($allProducts), $execution->project, 'ignoreNormal');
$this->display();
}
@@ -3474,12 +3471,8 @@ class execution extends control
*/
public function ajaxGetTeamMembers($objectID)
{
$type = 'execution';
if($this->config->systemMode == 'new')
{
$type = $this->dao->findById($objectID)->from(TABLE_PROJECT)->fetch('type');
if($type != 'project') $type = 'execution';
}
$type = $this->dao->findById($objectID)->from(TABLE_PROJECT)->fetch('type');
if($type != 'project') $type = 'execution';
$users = $this->loadModel('user')->getPairs('nodeleted|noclosed');
$members = $this->user->getTeamMemberPairs($objectID, $type);
@@ -3524,7 +3517,7 @@ class execution extends control
->where('deleted')->eq(0)
->andWhere('type')->in('sprint,stage,kanban')
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->sprints)->fi()
->beginIF($this->config->systemMode == 'new')->andWhere('project')->in(array_keys($projects))->fi()
->andWhere('project')->in(array_keys($projects))
->orderBy('id_desc')
->fetchGroup('project', 'id');
@@ -3534,33 +3527,19 @@ class execution extends control
->fetchGroup('root', 'account');
$projectPairs = array();
if($this->config->systemMode == 'new')
foreach($projects as $project)
{
foreach($projects as $project)
{
$executions = zget($executionGroups, $project->id, array());
if(isset($project->model) and $project->model == 'waterfall') ksort($executions);
$executions = zget($executionGroups, $project->id, array());
if(isset($project->model) and $project->model == 'waterfall') ksort($executions);
foreach($executions as $execution)
{
if(isset($orderedExecutions[$execution->parent]) and $project->model != 'waterfall') unset($orderedExecutions[$execution->parent]);
$execution->teams = zget($teams, $execution->id, array());
$orderedExecutions[$execution->id] = $execution;
}
$projectPairs[$project->id] = $project->name;
}
}
else
{
foreach($executionGroups as $projectID => $executions)
foreach($executions as $execution)
{
foreach($executions as $execution)
{
$execution->teams = zget($teams, $execution->id, array());
$orderedExecutions[$execution->id] = $execution;
}
if(isset($orderedExecutions[$execution->parent]) and $project->model != 'waterfall') unset($orderedExecutions[$execution->parent]);
$execution->teams = zget($teams, $execution->id, array());
$orderedExecutions[$execution->id] = $execution;
}
$projectPairs[$project->id] = $project->name;
}
$projectExecutions = array();
@@ -4010,7 +3989,7 @@ class execution extends control
$projectID = $this->dao->findByID($executionID)->from(TABLE_EXECUTION)->fetch('project');
$planStories = array_keys($planStory);
if($this->config->systemMode == 'new' and $executionID != $projectID) $this->execution->linkStory($projectID, $planStories, $planProducts);
if($executionID != $projectID) $this->execution->linkStory($projectID, $planStories, $planProducts);
$this->execution->linkStory($executionID, $planStories, $planProducts, $extra);
}
@@ -4189,21 +4168,18 @@ class execution extends control
*/
public function ajaxGetProjectStartDate($executionID = 0)
{
if($this->config->systemMode == 'new')
$execution = $this->dao->select('id,project')->from(TABLE_EXECUTION)->where('id')->eq($executionID)->fetch();
$project = $this->dao->select('begin,end')->from(TABLE_PROJECT)->where('id')->eq($execution->project)->fetch();
if(empty($project))
{
$execution = $this->dao->select('id,project')->from(TABLE_EXECUTION)->where('id')->eq($executionID)->fetch();
$project = $this->dao->select('begin,end')->from(TABLE_PROJECT)->where('id')->eq($execution->project)->fetch();
if(empty($project))
{
echo '';
return false;
}
$date = array();
$date['begin'] = $project->begin;
$date['end'] = $project->end;
echo json_encode($date);
echo '';
return false;
}
$date = array();
$date['begin'] = $project->begin;
$date['end'] = $project->end;
echo json_encode($date);
}
/**
+2 -4
View File
@@ -145,8 +145,7 @@ $lang->execution->estimate = '预计';
$lang->execution->consumed = '消耗';
$lang->execution->left = '剩余';
if($this->config->systemMode == 'new') $lang->execution->copyTeamTip = "可以选择复制项目或{$lang->execution->common}团队的成员";
if($this->config->systemMode == 'classic') $lang->execution->copyTeamTip = "可以选择复制{$lang->executionCommon}团队的成员";
$lang->execution->copyTeamTip = "可以选择复制项目或{$lang->execution->common}团队的成员";
$lang->execution->start = "开始";
$lang->execution->activate = "激活";
@@ -371,8 +370,7 @@ $lang->execution->noMembers = '暂时没有团队成员。';
$lang->execution->workloadTotal = "工作量占比累计不应当超过100, 当前产品下的工作量之和为%s";
// $lang->execution->linkProjectStoryTip = "(关联{$lang->SRCommon}来源于项目下所关联的{$lang->SRCommon})";
$lang->execution->linkAllStoryTip = "(项目下还未关联{$lang->SRCommon},可直接关联该{$lang->execution->common}所关联产品的{$lang->SRCommon})";
if($config->systemMode == 'classic') $lang->execution->copyTeamTitle = "选择一个{$lang->execution->common}团队";
if($config->systemMode == 'new') $lang->execution->copyTeamTitle = "选择一个{$lang->project->common}或{$lang->execution->common}团队";
$lang->execution->copyTeamTitle = "选择一个{$lang->project->common}或{$lang->execution->common}团队";
/* 交互提示。*/
$lang->execution->confirmDelete = "您确定删除{$lang->executionCommon}[%s]吗?";
+51 -86
View File
@@ -92,7 +92,7 @@ class executionModel extends model
$this->session->set('execution', $executionID, $this->app->tab);
/* Unset story, bug, build and testtask if type is ops. */
if($execution and $execution->type == 'stage' and $this->config->systemMode == 'new')
if($execution and $execution->type == 'stage')
{
global $lang;
$this->app->loadLang('project');
@@ -145,31 +145,21 @@ class executionModel extends model
setCookie("lastExecution", $executionID, $this->config->cookieLife, $this->config->webRoot, '', false, true);
$currentExecution = $this->getById($executionID);
if($this->config->systemMode == 'new')
if(isset($currentExecution->type) and $currentExecution->type == 'program') return;
if($currentExecution->project) $project = $this->loadModel('project')->getByID($currentExecution->project);
if(isset($project) and $project->model == 'waterfall')
{
if(isset($currentExecution->type) and $currentExecution->type == 'program') return;
if($currentExecution->project) $project = $this->loadModel('project')->getByID($currentExecution->project);
if(isset($project) and $project->model == 'waterfall')
{
$productID = $this->loadModel('product')->getProductIDByProject($project->id);
$productName = $this->dao->findByID($productID)->from(TABLE_PRODUCT)->fetch('name');
$currentExecution->name = $productName . '/' . $currentExecution->name;
}
$productID = $this->loadModel('product')->getProductIDByProject($project->id);
$productName = $this->dao->findByID($productID)->from(TABLE_PRODUCT)->fetch('name');
$currentExecution->name = $productName . '/' . $currentExecution->name;
}
$dropMenuLink = helper::createLink('execution', 'ajaxGetDropMenu', "executionID=$executionID&module=$currentModule&method=$currentMethod&extra=$extra");
$currentExecutionName = '';
if(isset($currentExecution->name)) $currentExecutionName = $currentExecution->name;
if($this->config->systemMode == 'classic')
{
$output = "<div class='btn-group header-btn' id='swapper'><button data-toggle='dropdown' type='button' class='btn' id='currentItem' title='{$currentExecutionName}'><span class='text'><i class='icon icon-sprint'></i> {$currentExecutionName}</span> <span class='caret'></span></button><div id='dropMenu' class='dropdown-menu search-list' data-ride='searchList' data-url='$dropMenuLink'>";
$output .= '<div class="input-control search-box has-icon-left has-icon-right search-example"><input type="search" class="form-control search-input" /><label class="input-control-icon-left search-icon"><i class="icon icon-search"></i></label><a class="input-control-icon-right search-clear-btn"><i class="icon icon-close icon-sm"></i></a></div>';
$output .= "</div></div>";
}
$output = "<div class='btn-group angle-btn'><div class='btn-group'><button data-toggle='dropdown' type='button' class='btn btn-limit' id='currentItem' title='{$currentExecutionName}'><span class='text'><i class='icon icon-{$this->lang->icons[$currentExecution->type]}'></i> {$currentExecutionName}</span> <span class='caret'></span></button><div id='dropMenu' class='dropdown-menu search-list' data-ride='searchList' data-url='$dropMenuLink'>";
$output .= '<div class="input-control search-box has-icon-left has-icon-right search-example"><input type="search" class="form-control search-input" /><label class="input-control-icon-left search-icon"><i class="icon icon-search"></i></label><a class="input-control-icon-right search-clear-btn"><i class="icon icon-close icon-sm"></i></a></div>';
$output .= "</div></div></div>";
@@ -310,25 +300,22 @@ class executionModel extends model
$type = 'sprint';
$this->lang->execution->team = $this->lang->execution->teamname;
if($this->config->systemMode == 'new')
if(empty($_POST['project']))
{
if(empty($_POST['project']))
{
dao::$errors['message'][] = $this->lang->execution->projectNotEmpty;
return false;
}
if($this->config->systemMode == 'new') $this->checkBeginAndEndDate($_POST['project'], $_POST['begin'], $_POST['end']);
if(dao::isError()) return false;
/* Determine whether to add a sprint or a stage according to the model of the execution. */
$project = $this->loadModel('project')->getByID($_POST['project']);
$type = 'sprint';
if($project) $type = zget($this->config->execution->modelList, $project->model, 'sprint');
$this->config->execution->create->requiredFields .= ',project';
dao::$errors['message'][] = $this->lang->execution->projectNotEmpty;
return false;
}
$this->checkBeginAndEndDate($_POST['project'], $_POST['begin'], $_POST['end']);
if(dao::isError()) return false;
/* Determine whether to add a sprint or a stage according to the model of the execution. */
$project = $this->loadModel('project')->getByID($_POST['project']);
$type = 'sprint';
if($project) $type = zget($this->config->execution->modelList, $project->model, 'sprint');
$this->config->execution->create->requiredFields .= ',project';
/* Judge workdays is legitimate. */
$workdays = helper::diffDate($_POST['end'], $_POST['begin']) + 1;
if(isset($_POST['days']) and $_POST['days'] > $workdays)
@@ -348,7 +335,6 @@ class executionModel extends model
->setDefault('team', substr($this->post->name, 0, 30))
->setIF($this->post->heightType == 'auto', 'displayCards', 0)
->setIF(!isset($_POST['whitelist']), 'whitelist', '')
->setIF($this->config->systemMode == 'new', 'parent', $this->post->project)
->setIF($this->post->acl == 'open', 'whitelist', '')
->join('whitelist', ',')
->setDefault('type', $type)
@@ -418,7 +404,7 @@ class executionModel extends model
$this->file->updateObjectID($this->post->uid, $executionID, 'execution');
/* Update the path. */
if($this->config->systemMode == 'new') $this->setTreePath($executionID);
$this->setTreePath($executionID);
$this->updateProducts($executionID);
@@ -442,7 +428,7 @@ class executionModel extends model
$this->dao->insert(TABLE_TEAM)->data($member)->exec();
$teamMembers[$account] = $member;
}
if($this->config->systemMode == 'new') $this->addProjectMembers($sprint->project, $teamMembers);
$this->addProjectMembers($sprint->project, $teamMembers);
/* Create doc lib. */
$this->app->loadLang('doc');
@@ -517,7 +503,7 @@ class executionModel extends model
if(in_array($execution->status, array('closed', 'suspended'))) $this->computeBurn($executionID);
if($this->config->systemMode == 'new' and (empty($execution->project) or $execution->project == $oldExecution->project)) $this->checkBeginAndEndDate($oldExecution->project, $execution->begin, $execution->end);
if(empty($execution->project) or $execution->project == $oldExecution->project) $this->checkBeginAndEndDate($oldExecution->project, $execution->begin, $execution->end);
if(dao::isError()) return false;
/* Child stage inherits parent stage permissions. */
@@ -803,7 +789,7 @@ class executionModel extends model
->checkIF($execution->begin != '', 'begin', 'date')
->checkIF($execution->end != '', 'end', 'date')
->checkIF($execution->end != '', 'end', 'ge', $execution->begin)
->checkIF((!empty($execution->name) and $this->config->systemMode == 'new'), 'name', 'unique', "id != $executionID and type in ('sprint','stage','kanban') and `project` = $projectID and `deleted` = '0'")
->checkIF(!empty($execution->name), 'name', 'unique', "id != $executionID and type in ('sprint','stage','kanban') and `project` = $projectID and `deleted` = '0'")
->checkIF(!empty($execution->code), 'code', 'unique', "id != $executionID and type in ('sprint','stage','kanban') and `deleted` = '0'")
->checkFlow()
->where('id')->eq($executionID)
@@ -901,7 +887,7 @@ class executionModel extends model
->remove('comment')
->get();
if($this->config->systemMode == 'new') $this->checkBeginAndEndDate($oldExecution->project, $execution->begin, $execution->end);
$this->checkBeginAndEndDate($oldExecution->project, $execution->begin, $execution->end);
if(dao::isError()) return false;
$execution = $this->loadModel('file')->processImgURL($execution, $this->config->execution->editor->putoff['id'], $this->post->uid);
@@ -1225,15 +1211,12 @@ class executionModel extends model
$currentExecution = $this->getById($executionID);
$currentExecutionName = $currentExecution->name;
if($this->config->systemMode == 'new')
{
$project = $this->loadModel('project')->getByID($currentExecution->project);
$project = $this->loadModel('project')->getByID($currentExecution->project);
if($project)
{
$projectNameTitle = $project->name . ' / ';
$projectNameSpan = "<span class='text'>{$project->name}</span> / ";
}
if($project)
{
$projectNameTitle = $project->name . ' / ';
$projectNameSpan = "<span class='text'>{$project->name}</span> / ";
}
}
@@ -1285,8 +1268,8 @@ class executionModel extends model
->where('deleted')->eq(0)
->andWhere('vision')->eq($this->config->vision)
->beginIF($type == 'all')->andWhere('type')->in('stage,sprint,kanban')->fi()
->beginIF($projectID and $this->config->systemMode == 'new')->andWhere('project')->eq($projectID)->fi()
->beginIF($type != 'all' and $this->config->systemMode == 'new')->andWhere('type')->eq($type)->fi()
->beginIF($projectID)->andWhere('project')->eq($projectID)->fi()
->beginIF($type != 'all')->andWhere('type')->eq($type)->fi()
->beginIF(strpos($mode, 'withdelete') === false)->andWhere('deleted')->eq(0)->fi()
->beginIF(!$this->app->user->admin and strpos($mode, 'all') === false)->andWhere('id')->in($this->app->user->view->sprints)->fi()
->orderBy($orderBy)
@@ -1557,7 +1540,7 @@ class executionModel extends model
if($param == 'skipParent')
{
if($execution->parent < 0 and $execution->type == 'stage') unset($executions[$key]);
if($this->config->systemMode == 'new' and $execution->projectName) $execution->name = $execution->projectName . ' / ' . $execution->name;
if($execution->projectName) $execution->name = $execution->projectName . ' / ' . $execution->name;
}
else
{
@@ -2296,28 +2279,13 @@ class executionModel extends model
*/
public function getTasks2Imported($toExecution, $branches)
{
if($this->config->systemMode == 'classic')
{
$products = $this->loadModel('product')->getProducts($toExecution);
if(empty($products)) return array();
$execution = $this->getById($toExecution);
$executions = $this->dao->select('t1.product, t1.project')->from(TABLE_PROJECTPRODUCT)->alias('t1')
->leftJoin(TABLE_EXECUTION)->alias('t2')->on('t1.project=t2.id')
->where('t1.product')->in(array_keys($products))
->andWhere('t2.project')->eq($execution->project)
->fetchGroup('project');
}
else
{
$execution = $this->getById($toExecution);
$project = $this->loadModel('project')->getById($execution->project);
$brotherProjects = $this->project->getBrotherProjects($project);
$executions = $this->dao->select('id')->from(TABLE_EXECUTION)
->where('project')->in($brotherProjects)
->andWhere('status')->ne('closed')
->fetchPairs('id');
}
$execution = $this->getById($toExecution);
$project = $this->loadModel('project')->getById($execution->project);
$brotherProjects = $this->project->getBrotherProjects($project);
$executions = $this->dao->select('id')->from(TABLE_EXECUTION)
->where('project')->in($brotherProjects)
->andWhere('status')->ne('closed')
->fetchPairs('id');
$branches = str_replace(',', "','", $branches);
$tasks = $this->dao->select('t1.*, t2.id AS storyID, t2.title AS storyTitle, t2.version AS latestStoryVersion, t2.status AS storyStatus, t3.realname AS assignedToRealName')->from(TABLE_TASK)->alias('t1')
@@ -2817,12 +2785,10 @@ class executionModel extends model
}
}
if($this->config->systemMode == 'new')
{
$projectID = $this->dao->select('project')->from(TABLE_EXECUTION)->where('id')->eq($executionID)->fetch('project');
$this->session->set('project', $projectID);
$this->linkStory($projectID, $planStories, $planProducts);
}
$projectID = $this->dao->select('project')->from(TABLE_EXECUTION)->where('id')->eq($executionID)->fetch('project');
$this->session->set('project', $projectID);
$this->linkStory($projectID, $planStories, $planProducts);
$this->linkStory($executionID, $planStories, $planProducts);
}
@@ -2986,7 +2952,7 @@ class executionModel extends model
*/
public function getCanCopyObjects($projectID = 0)
{
if(empty($projectID) and $this->config->systemMode == 'new') return array();
if(empty($projectID)) return array();
$objectPairs = $this->dao->select('id,name')->from(TABLE_PROJECT)
->where('deleted')->eq(0)
@@ -4582,11 +4548,10 @@ class executionModel extends model
$burns = join(',', $execution->burns);
echo "<tr $trAttrs class='$trClass'>";
echo "<td><span id=$execution->id class='table-nest-icon icon table-nest-toggle'></span>";
if($this->config->systemMode == 'new')
{
$spanClass = $execution->type == 'stage' ? 'label-warning' : 'label-info';
echo "<span class='project-type-label label label-outline $spanClass'>{$this->lang->execution->typeList[$execution->type]}</span> ";
}
$spanClass = $execution->type == 'stage' ? 'label-warning' : 'label-info';
echo "<span class='project-type-label label label-outline $spanClass'>{$this->lang->execution->typeList[$execution->type]}</span> ";
if(empty($execution->children))
{
echo html::a(helper::createLink('execution', 'view', "executionID=$execution->id"), $execution->name);
-2
View File
@@ -95,8 +95,6 @@ js::set('isCNLang', !$this->loadModel('common')->checkNotCN())
{
if($value->show)
{
if($config->systemMode == 'classic' and $value->id == 'project') continue;
$this->datatable->printHead($value, $orderBy, $vars, $canBatchEdit);
$columns ++;
}
@@ -53,7 +53,7 @@
<?php endforeach;?>
</div>
</div>
<?php if($this->config->systemMode == 'classic' or $execution->grade == 1):?>
<?php if($execution->grade == 1):?>
<div class='detail'>
<div class='detail-title'><?php echo $lang->execution->unlinkedProducts;?></div>
<div class='detail-content row'>