diff --git a/module/bug/control.php b/module/bug/control.php index 86ebf9653e..d79fb6d6ad 100755 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -468,8 +468,7 @@ class bug extends control $this->view->users = $users; $this->view->assignedTo = isset($users[$oldBug->openedBy]) ? $oldBug->openedBy : $this->bug->getModuleOwner($oldBug->module, $oldBug->product); $this->view->executions = $this->loadModel('product')->getExecutionPairsByProduct($oldBug->product, $oldBug->branch ? "0,{$oldBug->branch}" : '0', (int)$oldBug->project, 'stagefilter'); - $this->view->builds = $builds; - $this->view->releases = $this->build->getRelatedReleases(array($oldBug->product)); + $this->view->builds = $this->bugZen->addReleaseLabelForBuilds($oldBug->product, $builds); $this->view->actions = $this->loadModel('action')->getList('bug', $bugID); $this->display(); } diff --git a/module/bug/ui/resolve.html.php b/module/bug/ui/resolve.html.php index ecea8d891d..bf45658f27 100644 --- a/module/bug/ui/resolve.html.php +++ b/module/bug/ui/resolve.html.php @@ -16,19 +16,6 @@ jsVar('page', 'resolve'); jsVar('released', $lang->build->released); jsVar('requiredFields', $config->bug->resolve->requiredFields); -$buildItems = array(); -foreach($builds as $buildID => $buildName) -{ - $buildItem = array('value' => $buildID, 'text' => $buildName); - if(isset($releases[$buildID])) $buildItem['content'] = array('html' => "
{$buildName}
", 'class' => 'w-full flex nowrap'); - $buildItems[$buildID] = $buildItem; -} -foreach($releases as $releaseID => $release) -{ - if(isset($buildItems[$release->shadow])) $buildItems[$release->shadow]['content'] = array('html' => "
{$buildItems[$release->shadow]['text']}
", 'class' => 'w-full flex nowrap'); -} -var_dump($buildItems); - $createBuild = ''; if(common::hasPriv('build', 'create')) { @@ -107,7 +94,7 @@ formPanel ( set::name('resolvedBuild'), set::value(''), - set::items(array_values($buildItems)) + set::items($builds) ) ), formGroup diff --git a/module/bug/zen.php b/module/bug/zen.php index 886995483e..f31506e125 100644 --- a/module/bug/zen.php +++ b/module/bug/zen.php @@ -988,6 +988,7 @@ class bugZen extends bug { $builds = $this->build->getBuildPairs(array($productID), $branch, 'noempty,noterminate,nodone,withbranch,noreleased'); } + $builds = $this->addReleaseLabelForBuilds($productID, $builds); return $this->updateBug($bug, array('builds' => $builds)); } @@ -1205,10 +1206,13 @@ class bugZen extends bug $cases = $this->loadmodel('testcase')->getPairsByProduct($bug->product, array(0, $bug->branch), $case->title, $this->config->maxCount); } + $resolvedBuilds = $this->build->getBuildPairs(array($bug->product), $bug->branch, 'noempty'); + $resolvedBuilds = $this->addReleaseLabelForBuilds($bug->product, $resolvedBuilds); + $this->config->moreLinks['case'] = inlink('ajaxGetProductCases', "bugID={$bug->id}"); $this->view->openedBuilds = $openedBuilds; - $this->view->resolvedBuilds = $this->build->getBuildPairs(array($bug->product), $bug->branch, 'noempty'); + $this->view->resolvedBuilds = $resolvedBuilds; $this->view->plans = $this->loadModel('productplan')->getPairs($bug->product, $bug->branch, '', true); $this->view->stories = $bug->execution ? $this->story->getExecutionStoryPairs($bug->execution) : $this->story->getProductStoryPairs($bug->product, $bug->branch, 0, 'all', 'id_desc', 0, 'full', 'story', false); $this->view->tasks = $this->task->getExecutionTaskPairs($bug->execution); @@ -2390,4 +2394,32 @@ class bugZen extends bug return $chartOption; } + + /** + * 给版本中的发布增加标识。 + * Add label for the release in the builds. + * + * @param int $productID + * @param array $builds + * @access protected + * @return array + */ + protected function addReleaseLabelForBuilds(int $productID, array $builds): array + { + $releases = $this->loadModel('build')->getRelatedReleases(array($productID)); + + $buildItems = array(); + foreach($builds as $buildID => $buildName) + { + $buildItem = array('value' => $buildID, 'text' => $buildName); + if(isset($releases[$buildID])) $buildItem['content'] = array('html' => "
{$buildName}
", 'class' => 'w-full flex nowrap'); + $buildItems[$buildID] = $buildItem; + } + foreach($releases as $release) + { + if(isset($buildItems[$release->shadow])) $buildItems[$release->shadow]['content'] = array('html' => "
{$buildItems[$release->shadow]['text']}
", 'class' => 'w-full flex nowrap'); + } + + return array_values($buildItems); + } }