* Finish task #76435、76436、76437.

This commit is contained in:
wangyuting
2022-11-17 08:42:31 +00:00
parent 9e573b74d7
commit 97073567df
3 changed files with 26 additions and 36 deletions
+10 -18
View File
@@ -255,7 +255,7 @@ class build extends control
$bugPager = new pager($type == 'bug' ? $recTotal : 0, $recPerPage, $type == 'bug' ? $pageID : 1);
$bugs = $this->dao->select('*')->from(TABLE_BUG)
->where('id')->in($build->bugs)
->where('id')->in($build->allBugs)
->andWhere('deleted')->eq(0)
->beginIF($type == 'bug')->orderBy($sort)->fi()
->page($bugPager)
@@ -264,7 +264,7 @@ class build extends control
/* Get stories and stages. */
$storyPager = new pager($type == 'story' ? $recTotal : 0, $recPerPage, $type == 'story' ? $pageID : 1);
$stories = $this->dao->select("*, IF(`pri` = 0, {$this->config->maxPriValue}, `pri`) as priOrder")->from(TABLE_STORY)
->where('id')->in($build->stories)
->where('id')->in($build->allStories)
->andWhere('deleted')->eq(0)
->beginIF($type == 'story')->orderBy($sort)->fi()
->page($storyPager)
@@ -277,10 +277,14 @@ class build extends control
if($this->app->tab == 'project')
{
$this->loadModel('project')->setMenu($build->project);
$objectType = 'project';
$objectID = $build->project;
}
elseif($this->app->tab == 'execution')
{
$this->loadModel('execution')->setMenu($build->execution);
$objectType = 'execution';
$objectID = $build->execution;
}
$executions = $this->loadModel('execution')->getPairs($this->session->project, 'all', 'empty');
@@ -297,18 +301,6 @@ class build extends control
$this->executeHooks($buildID);
if($this->app->tab == 'execution')
{
$objectType = 'execution';
$objectID = $build->execution;
}
else
{
$objectType = 'project';
$objectID = $build->project;
}
/* Assign. */
$this->view->canBeChanged = common::canBeChanged('build', $build); // Determines whether an object is editable.
$this->view->users = $this->loadModel('user')->getPairs('noletter');
@@ -611,11 +603,11 @@ class build extends control
$executionID = $build->execution ? $build->execution : $build->project;
if($browseType == 'bySearch')
{
$allStories = $this->story->getBySearch($build->product, $build->branch, $queryID, 'id', $executionID, 'story', $build->stories, $pager);
$allStories = $this->story->getBySearch($build->product, $build->branch, $queryID, 'id', $executionID, 'story', $build->allStories, $pager);
}
else
{
$allStories = $this->story->getExecutionStories($executionID, $build->product, 0, 't1.`order`_desc', 'byBranch', $build->branch, 'story', $build->stories, $pager);
$allStories = $this->story->getExecutionStories($executionID, $build->product, 0, 't1.`order`_desc', 'byBranch', $build->branch, 'story', $build->allStories, $pager);
}
$this->view->allStories = $allStories;
@@ -735,11 +727,11 @@ class build extends control
$executionID = $build->execution ? $build->execution : $build->project;
if($browseType == 'bySearch')
{
$allBugs = $this->bug->getBySearch($build->product, $build->branch, $queryID, 'id_desc', $build->bugs, $pager, $build->project);
$allBugs = $this->bug->getBySearch($build->product, $build->branch, $queryID, 'id_desc', $build->allBugs, $pager, $build->project);
}
else
{
$allBugs = $this->bug->getExecutionBugs($executionID, 0, 'all', $buildID, 'noclosed', 0, 'status_desc,id_desc', $build->bugs, $pager);
$allBugs = $this->bug->getExecutionBugs($executionID, 0, 'all', $buildID, 'noclosed', 0, 'status_desc,id_desc', $build->allBugs, $pager);
}
$this->view->allBugs = $allBugs;
+14 -16
View File
@@ -31,6 +31,7 @@ class buildModel extends model
->fetch();
if(!$build) return false;
$build = $this->linkChildBuilds($build);
$build = $this->loadModel('file')->replaceImgURL($build, 'desc');
$build->files = $this->file->getByObject('build', $buildID);
if($setImgSize) $build->desc = $this->file->setImgSize($build->desc);
@@ -349,7 +350,6 @@ class buildModel extends model
if(!dao::isError())
{
$buildID = $this->dao->lastInsertID();
$this->linkChildBuilds($buildID, $build->builds);
$this->file->updateObjectID($this->post->uid, $buildID, 'build');
$this->file->saveUpload('build', $buildID);
$this->loadModel('score')->create('build', 'create', $buildID);
@@ -389,8 +389,6 @@ class buildModel extends model
if(isset($build->branch) and $oldBuild->branch != $build->branch) $this->dao->update(TABLE_RELEASE)->set('branch')->eq($build->branch)->where('build')->eq($buildID)->exec();
if(!dao::isError())
{
$addBuilds = array_diff(explode(',', $build->builds), explode(',', $oldBuild->builds));
if($addBuilds) $this->linkChildBuilds($buildID, $addBuilds);
$this->file->updateObjectID($this->post->uid, $buildID, 'build');
return common::createChanges($oldBuild, $build);
}
@@ -569,28 +567,28 @@ class buildModel extends model
/**
* Bugs and stories associated with child builds.
*
* @param int $buildID
* @param string $childBuildIDList
* @param object $build
* @access public
* @return void
* @return object
*/
public function linkChildBuilds($buildID, $childBuildIDList)
public function linkChildBuilds($build)
{
$build = $this->dao->select('bugs, stories')->from(TABLE_BUILD)->where('id')->eq($buildID)->fetch();
$childBuilds = $this->dao->select('bugs, stories')->from(TABLE_BUILD)->where('id')->in($childBuildIDList)->fetchAll();
$build->allBugs = $build->bugs;
$build->allStories = $build->stories;
$childBuilds = $this->dao->select('bugs, stories')->from(TABLE_BUILD)->where('id')->in($build->builds)->fetchAll();
foreach($childBuilds as $childBuild)
{
if($childBuild->bugs) $build->bugs .= ",{$childBuild->bugs}";
if($childBuild->stories) $build->stories .= ",{$childBuild->stories}";
if($childBuild->bugs) $build->allBugs .= ",{$childBuild->bugs}";
if($childBuild->stories) $build->allStories .= ",{$childBuild->stories}";
}
$build->bugs = explode(',', $build->bugs);
$build->bugs = join(',', array_unique(array_filter($build->bugs)));
$build->stories = explode(',', $build->stories);
$build->stories = join(',', array_unique(array_filter($build->stories)));
$build->allBugs = explode(',', $build->allBugs);
$build->allBugs = join(',', array_unique(array_filter($build->allBugs)));
$build->allStories = explode(',', $build->allStories);
$build->allStories = join(',', array_unique(array_filter($build->allStories)));
$this->dao->update(TABLE_BUILD)->data($build)->where('id')->eq($buildID)->exec();
return $build;
}
/**
+2 -2
View File
@@ -98,7 +98,7 @@ tbody tr td:first-child input {display: none;}
<tr>
<td class='c-id text-left'>
<?php if($canBatchUnlink):?>
<?php echo html::checkbox('unlinkStories', array($story->id => sprintf('%03d', $story->id)));?>
<?php echo html::checkbox('unlinkStories', array($story->id => sprintf('%03d', $story->id)), '', strpos(",$build->stories,", ",$story->id,") !== false ? '' : "disabled");?>
<?php else:?>
<?php printf('%03d', $story->id);?>
<?php endif;?>
@@ -198,7 +198,7 @@ tbody tr td:first-child input {display: none;}
<tr>
<td class='c-id text-left'>
<?php if($canBatchUnlink):?>
<?php echo html::checkbox('unlinkBugs', array($bug->id => sprintf('%03d', $bug->id)));?>
<?php echo html::checkbox('unlinkBugs', array($bug->id => sprintf('%03d', $bug->id)), '', strpos(",$build->bugs,", ",$bug->id,") !== false ? '' : "disabled");?>
<?php else:?>
<?php printf('%03d', $bug->id);?>
<?php endif;?>