* [bug#57717] adjust build and project data for release.
This commit is contained in:
@@ -90,7 +90,7 @@ class projectrelease extends control
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->showBranch = $showBranch;
|
||||
$this->view->appList = $this->loadModel('system')->getPairs();
|
||||
$this->view->childReleases = $this->release->getListByCondition(explode(',', $children));
|
||||
$this->view->childReleases = $this->release->getListByCondition(explode(',', $children), 0, true);
|
||||
$this->display();
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,8 @@ window.renderCell = function(result, {col, row})
|
||||
|
||||
if(col.name == 'build')
|
||||
{
|
||||
if(!row.data.buildInfos) row.data.buildInfos = row.data.builds;
|
||||
|
||||
let result = [];
|
||||
for(key in row.data.buildInfos)
|
||||
{
|
||||
|
||||
@@ -72,7 +72,6 @@ foreach($releases as $release)
|
||||
}
|
||||
}
|
||||
|
||||
\a($cols);
|
||||
$tableData = initTableData($releases, $cols);
|
||||
dtable
|
||||
(
|
||||
|
||||
@@ -82,8 +82,9 @@ class release extends control
|
||||
|
||||
foreach($releases as $release) $release->desc = str_replace(' ', ' ', strip_tags($release->desc));
|
||||
|
||||
$childReleases = $this->release->getListByCondition(explode(',', $children), 0, true);
|
||||
$this->view->title = $this->view->product->name . $this->lang->hyphen . $this->lang->release->browse;
|
||||
$this->view->releases = $this->releaseZen->processReleaseListData($releases);
|
||||
$this->view->releases = $this->releaseZen->processReleaseListData($releases, $childReleases);
|
||||
$this->view->pageSummary = $this->release->getPageSummary($releases, $type);
|
||||
$this->view->type = $type;
|
||||
$this->view->orderBy = $orderBy;
|
||||
@@ -92,7 +93,7 @@ class release extends control
|
||||
$this->view->showBranch = $showBranch;
|
||||
$this->view->branchPairs = $this->loadModel('branch')->getPairs($productID);
|
||||
$this->view->appList = $this->loadModel('system')->getPairs();
|
||||
$this->view->childReleases = $this->release->getListByCondition(explode(',', $children));
|
||||
$this->view->childReleases = $this->release->getListByCondition(explode(',', $children), 0, true);
|
||||
$this->display();
|
||||
}
|
||||
|
||||
|
||||
@@ -78,16 +78,43 @@ class releaseModel extends model
|
||||
*
|
||||
* @param array $idList
|
||||
* @param int $includeRelease
|
||||
* @param bool $showRelated
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getListByCondition(array $idList = array(), int $includeRelease = 0): array
|
||||
public function getListByCondition(array $idList = array(), int $includeRelease = 0, bool $showRelated = false): array
|
||||
{
|
||||
return $this->dao->select('*')->from(TABLE_RELEASE)
|
||||
$releases = $this->dao->select('*')->from(TABLE_RELEASE)
|
||||
->where('deleted')->eq(0)
|
||||
->beginIF($idList)->andWhere('id')->in($idList)->fi()
|
||||
->beginIF($includeRelease)->andWhere("FIND_IN_SET($includeRelease, `releases`)")->fi()
|
||||
->fetchAll('id');
|
||||
if(!$showRelated) return $releases;
|
||||
|
||||
$projectIdList = '';
|
||||
foreach($releases as $release) $projectIdList .= trim($release->project, ',') . ',';
|
||||
$projectPairs = $this->dao->select('id,name')->from(TABLE_PROJECT)->where('id')->in($projectIdList)->fetchPairs();
|
||||
|
||||
$builds = $this->dao->select('id,name')
|
||||
->from(TABLE_BUILD)
|
||||
->where('deleted')->eq(0)
|
||||
->fetchAll('id');
|
||||
|
||||
foreach($releases as $release)
|
||||
{
|
||||
$releaseBuilds = array();
|
||||
foreach(explode(',', $release->build) as $buildID)
|
||||
{
|
||||
if(!$buildID || !isset($builds[$buildID])) continue;
|
||||
$releaseBuilds[] = $builds[$buildID];
|
||||
}
|
||||
$release->builds = $releaseBuilds;
|
||||
|
||||
$release->projectName = array();
|
||||
foreach(explode(',', trim($release->project, ',')) as $projectID) $release->projectName[$projectID] = zget($projectPairs, $projectID, '');
|
||||
$release->projectName = implode(' ', $release->projectName);
|
||||
}
|
||||
return $releases;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -44,23 +44,6 @@ foreach(array_column($releases, 'system') as $system)
|
||||
}
|
||||
if(!empty($cols['system'])) $cols['system']['map'] = array(0 => '') + $appList;
|
||||
|
||||
foreach($releases as $release)
|
||||
{
|
||||
$release->rowID = $release->id;
|
||||
if(empty($release->releases)) continue;
|
||||
|
||||
foreach(explode(',', $release->releases) as $childID)
|
||||
{
|
||||
if(isset($childReleases[$childID]))
|
||||
{
|
||||
$child = clone $childReleases[$childID];
|
||||
$child->rowID = "{$release->id}-{$childID}";
|
||||
$child->parent = $release->id;
|
||||
$releases[$child->rowID] = $child;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$releases = initTableData($releases, $cols, $this->release);
|
||||
dtable
|
||||
(
|
||||
|
||||
+17
-1
@@ -19,7 +19,7 @@ class releaseZen extends release
|
||||
* @access protected
|
||||
* @return array
|
||||
*/
|
||||
protected function processReleaseListData(array $releaseList): array
|
||||
protected function processReleaseListData(array $releaseList, array $childReleases = array()): array
|
||||
{
|
||||
$releases = array();
|
||||
$this->loadModel('project');
|
||||
@@ -28,6 +28,7 @@ class releaseZen extends release
|
||||
{
|
||||
$buildCount = count($release->builds);
|
||||
|
||||
$release->rowID = $release->id;
|
||||
$release->rowspan = $buildCount;
|
||||
$release->actions = $this->release->buildActionList($release);
|
||||
|
||||
@@ -52,6 +53,21 @@ class releaseZen extends release
|
||||
$releases[] = $release;
|
||||
}
|
||||
|
||||
if(empty($release->releases)) continue;
|
||||
|
||||
foreach(explode(',', $release->releases) as $childID)
|
||||
{
|
||||
if(isset($childReleases[$childID]))
|
||||
{
|
||||
$child = clone $childReleases[$childID];
|
||||
$child = current($this->processReleaseListData(array($child)));
|
||||
|
||||
$child->rowID = "{$release->id}-{$childID}";
|
||||
$child->parent = $release->id;
|
||||
$releases[$child->rowID] = $child;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $releases;
|
||||
|
||||
Reference in New Issue
Block a user