* Fix bug #22064#22065.

This commit is contained in:
mayue
2022-04-28 06:43:05 +00:00
parent 8d8b999608
commit aeda6fbe78
4 changed files with 56 additions and 5 deletions
+15
View File
@@ -2304,6 +2304,21 @@ class bug extends control
$this->display();
}
/**
* Ajax get product members.
*
* @param int $productID
* @param string $selectedUser
* @access public
* @return string
*/
public function ajaxGetProductMembers($productID, $selectedUser = '')
{
$productMembers = $this->bug->getProductMemberPairs($productID);
return print(html::select('assignedTo', $productMembers, $selectedUser, 'class="form-control"'));
}
/**
* Ajax get project team members.
*
+27 -1
View File
@@ -352,7 +352,14 @@ function loadExecutionRelated(executionID)
$('#taskIdBox').innerHTML = '<select id="task"></select>'; // Reset the task.
loadProductStories(currentProductID);
loadTestTasks(currentProductID);
loadProjectTeamMembers(currentProjectID);
if(typeof(currentProjectID) == 'undefined')
{
loadProductMembers(currentProductID);
}
else
{
loadProjectTeamMembers(currentProjectID);
}
currentProjectID != 0 ? loadProjectBuilds(currentProjectID) : loadProductBuilds(currentProductID);
}
@@ -482,6 +489,25 @@ function loadExecutionBuilds(executionID, num)
}
}
/**
* Load product members.
*
* @param productID
* @access public
* @return void
*/
function loadProductMembers(productID)
{
link = createLink('bug', 'ajaxGetProductMembers', 'productID=' + productID + '&selectedUser=' + $('#assignedTo').val());
$.get(link, function(data)
{
if(!data) data = '<select id="assignedTo" name="assignedTo" class="form-control"></select>';
$('#assignedTo').replaceWith(data);
$('#assignedTo_chosen').remove();
$("#assignedTo").chosen();
});
}
/**
* Load project members.
*
+9 -1
View File
@@ -1837,6 +1837,13 @@ class bugModel extends model
return $bugs;
}
/**
* get Product member pairs.
*
* @param int $productID
* @access public
* @return void
*/
public function getProductMemberPairs($productID)
{
if(defined('TUTORIAL')) return $this->loadModel('tutorial')->getTeamMembersPairs();
@@ -1846,7 +1853,8 @@ class bugModel extends model
$users = $this->dao->select("t2.id, t2.account, t2.realname")->from(TABLE_TEAM)->alias('t1')
->leftJoin(TABLE_USER)->alias('t2')->on('t1.account = t2.account')
->where('t1.root')->in(array_keys($projects))
->andWhere('t1.type')->eq('project')
->beginIF($this->config->systemMode == 'new')->andWhere('t1.type')->eq('project')->fi()
->beginIF($this->config->systemMode == 'classic')->andWhere('t1.type')->eq('execution')->fi()
->andWhere('t2.deleted')->eq(0)
->fi()
->fetchAll('account');
+5 -3
View File
@@ -1058,8 +1058,10 @@ class productModel extends model
$projects = $this->dao->select('t2.id,t2.name')->from(TABLE_PROJECTPRODUCT)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
->where('t1.product')->eq($productID)
->andWhere('t2.type')->eq('project')
->beginIF(!$this->app->user->admin)->andWhere('t2.id')->in($this->app->user->view->projects)->fi()
->beginIF($this->config->systemMode == 'new')->andWhere('t2.type')->eq('project')->fi()
->beginIF($this->config->systemMode == 'classic')->andWhere('t2.type')->eq('sprint')->fi()
->beginIF(!$this->app->user->admin and $this->config->systemMode == 'new')->andWhere('t2.id')->in($this->app->user->view->projects)->fi()
->beginIF(!$this->app->user->admin and $this->config->systemMode == 'classic')->andWhere('t2.id')->in($this->app->user->view->sprints)->fi()
->beginIF($product->type != 'normal' and $branch !== '')->andWhere('t1.branch')->in($branch)->fi()
->andWhere('t2.deleted')->eq('0')
->orderBy('order_asc')
@@ -1089,7 +1091,7 @@ class productModel extends model
->beginIF($this->config->systemMode == 'classic')->andWhere('t2.type')->eq('sprint')->fi()
->beginIF($browseType != 'all')->andWhere('t2.status')->eq($browseType)->fi()
->beginIF(!$this->app->user->admin and $this->config->systemMode == 'new')->andWhere('t2.id')->in($this->app->user->view->projects)->fi()
->beginIF(!$this->app->user->admin and $this->config->systemMode != 'new')->andWhere('t2.id')->in($this->app->user->view->sprints)->fi()
->beginIF(!$this->app->user->admin and $this->config->systemMode == 'classic')->andWhere('t2.id')->in($this->app->user->view->sprints)->fi()
->beginIF($this->cookie->involved or $involved)
->andWhere('t2.openedBy', true)->eq($this->app->user->account)
->orWhere('t2.PM')->eq($this->app->user->account)