* Fix bug #50073.
This commit is contained in:
+3
-25
@@ -995,7 +995,7 @@ class bugZen extends bug
|
||||
{
|
||||
$builds = $this->build->getBuildPairs(array($productID), $branch, 'noempty,noterminate,nodone,withbranch,noreleased');
|
||||
}
|
||||
$builds = $this->addReleaseLabelForBuilds($productID, $builds);
|
||||
$builds = $this->build->addReleaseLabelForBuilds($productID, $builds);
|
||||
|
||||
return $this->updateBug($bug, array('builds' => $builds));
|
||||
}
|
||||
@@ -1194,6 +1194,7 @@ class bugZen extends bug
|
||||
$assignedToList = array_filter($assignedToList);
|
||||
if(empty($assignedToList)) $assignedToList = $this->user->getPairs('devfirst|noclosed');
|
||||
}
|
||||
$openedBuilds = $this->build->addReleaseLabelForBuilds($bug->product, $openedBuilds);
|
||||
if(!isset($openedBuilds[$bug->openedBuild]))
|
||||
{
|
||||
$build = $this->build->getByID((int)$bug->openedBuild);
|
||||
@@ -1215,7 +1216,7 @@ class bugZen extends bug
|
||||
}
|
||||
|
||||
$resolvedBuilds = $this->build->getBuildPairs(array($bug->product), $bug->branch, 'noempty');
|
||||
$resolvedBuilds = $this->addReleaseLabelForBuilds($bug->product, $resolvedBuilds);
|
||||
$resolvedBuilds = $this->build->addReleaseLabelForBuilds($bug->product, $resolvedBuilds);
|
||||
|
||||
$this->config->moreLinks['case'] = inlink('ajaxGetProductCases', "bugID={$bug->id}");
|
||||
|
||||
@@ -2408,27 +2409,4 @@ 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) $buildItems[$buildID] = array('value' => $buildID, 'text' => $buildName);
|
||||
foreach($releases as $release)
|
||||
{
|
||||
if(isset($buildItems[$release->shadow])) $buildItems[$release->shadow]['content'] = array('html' => "<div class='flex clip'>{$buildItems[$release->shadow]['text']}</div><label class='label bg-primary-50 text-primary ml-1 flex-none'>{$this->lang->release->common}</label>", 'class' => 'w-full flex nowrap');
|
||||
}
|
||||
|
||||
return array_values($buildItems);
|
||||
}
|
||||
}
|
||||
|
||||
+10
-14
@@ -234,20 +234,18 @@ class build extends control
|
||||
$isJsonView = $this->app->getViewType() == 'json';
|
||||
if($varName == 'openedBuild' )
|
||||
{
|
||||
$params = $type == 'all' ? 'noempty,withbranch,noreleased' : 'noempty,noterminate,nodone,withbranch,noreleased';
|
||||
$params = $type == 'all' ? 'withbranch,noreleased' : 'noterminate,nodone,withbranch,noreleased';
|
||||
$builds = $this->build->getBuildPairs(array($productID), $branch, $params, 0, 'project', $build);
|
||||
if($isJsonView) return print(json_encode($builds));
|
||||
|
||||
$items = array();
|
||||
foreach($builds as $buildID => $buildName) $items[] = array('text' => $buildName, 'value' => $buildID, 'keys' => $buildName);
|
||||
return print(json_encode($items));
|
||||
$builds = $this->build->addReleaseLabelForBuilds($productID, $builds);
|
||||
return print(json_encode($builds));
|
||||
}
|
||||
if($varName == 'openedBuilds' )
|
||||
{
|
||||
$builds = $this->build->getBuildPairs(array($productID), $branch, 'noempty,noreleased', 0, 'project', $build);
|
||||
$buildList = array();
|
||||
foreach($builds as $buildID => $buildName) $buildList[] = array('value' => $buildID, 'text' => $buildName);
|
||||
return $this->send($buildList);
|
||||
$builds = $this->build->getBuildPairs(array($productID), $branch, 'noempty,noreleased', 0, 'project', $build);
|
||||
$builds = $this->build->addReleaseLabelForBuilds($productID, $builds);
|
||||
return $this->send($builds);
|
||||
}
|
||||
if($varName == 'resolvedBuild')
|
||||
{
|
||||
@@ -255,17 +253,15 @@ class build extends control
|
||||
$builds = $this->build->getBuildPairs(array($productID), $branch, $params, 0, 'project', $build);
|
||||
if($isJsonView) return print(json_encode($builds));
|
||||
|
||||
$items = array();
|
||||
foreach($builds as $buildID => $buildName) $items[] = array('text' => $buildName, 'value' => $buildID, 'keys' => $buildName);
|
||||
return print(json_encode($items));
|
||||
$builds = $this->build->addReleaseLabelForBuilds($productID, $builds);
|
||||
return print(json_encode($builds));
|
||||
}
|
||||
|
||||
$builds = $this->build->getBuildPairs(array($productID), $branch, $type, 0, 'project', $build, false);
|
||||
if($isJsonView) return print(json_encode($builds));
|
||||
|
||||
$items = array();
|
||||
foreach($builds as $buildID => $buildName) $items[] = array('text' => $buildName, 'value' => $buildID);
|
||||
return print(json_encode($items));
|
||||
$builds = $this->build->addReleaseLabelForBuilds($productID, $builds);
|
||||
return print(json_encode($builds));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+26
-2
@@ -405,11 +405,12 @@ class buildModel extends model
|
||||
->leftJoin(TABLE_BUILD)->alias('t2')->on('FIND_IN_SET(t2.id, t1.build)')
|
||||
->leftJoin(TABLE_BRANCH)->alias('t3')->on('FIND_IN_SET(t3.id, t1.branch)')
|
||||
->leftJoin(TABLE_PRODUCT)->alias('t4')->on('t1.product=t4.id')
|
||||
->where('t1.product')->in($productIdList)
|
||||
->beginIF(!empty($buildIdList))->andWhere('t2.id')->in($buildIdList)->fi()
|
||||
->where('(t1.product')->in($productIdList)
|
||||
->beginIF($objectType === 'project' && $objectID)->andWhere("(FIND_IN_SET('$objectID', t1.project)")->orWhere('t1.project')->eq('0')->markRight(1)->fi()
|
||||
->andWhere('t1.deleted')->eq(0)
|
||||
->andWhere('t1.shadow')->ne(0)
|
||||
->markRight(true)
|
||||
->beginIF(!empty($buildIdList))->orWhere('t2.id')->in($buildIdList)->fi()
|
||||
->fetchAll('id');
|
||||
|
||||
if($shadows === false) $shadows = $this->dao->select('shadow')->from(TABLE_RELEASE)->where('product')->in($productIdList)->fetchPairs('shadow', 'shadow'); // Get the buildID under the shadow product.
|
||||
@@ -900,4 +901,27 @@ class buildModel extends model
|
||||
|
||||
return $stories;
|
||||
}
|
||||
|
||||
/**
|
||||
* 给版本中的发布增加标识。
|
||||
* Add label for the release in the builds.
|
||||
*
|
||||
* @param int $productID
|
||||
* @param array $builds
|
||||
* @access protected
|
||||
* @return array
|
||||
*/
|
||||
public function addReleaseLabelForBuilds(int $productID, array $builds): array
|
||||
{
|
||||
$releases = $this->getRelatedReleases(array($productID));
|
||||
|
||||
$buildItems = array();
|
||||
foreach($builds as $buildID => $buildName) $buildItems[$buildID] = array('value' => $buildID, 'text' => $buildName);
|
||||
foreach($releases as $release)
|
||||
{
|
||||
if(isset($buildItems[$release->shadow])) $buildItems[$release->shadow]['content'] = array('html' => "<div class='flex clip'>{$buildItems[$release->shadow]['text']}</div><label class='label bg-primary-50 text-primary ml-1 flex-none'>{$this->lang->release->common}</label>", 'class' => 'w-full flex nowrap');
|
||||
}
|
||||
|
||||
return array_values($buildItems);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user