From 4823890b2d2f3ab9f22d04e15ed625210d3cc8ab Mon Sep 17 00:00:00 2001 From: chenfeiCF Date: Thu, 29 Oct 2015 21:53:59 +0800 Subject: [PATCH] * adjust for task #2359. --- module/bug/control.php | 25 ++++++++++++++++++++++++- module/bug/js/common.js | 6 +++++- module/bug/js/create.js | 13 +++++++++++++ module/product/model.php | 2 +- 4 files changed, 43 insertions(+), 3 deletions(-) diff --git a/module/bug/control.php b/module/bug/control.php index f545b45ff7..16a6d1ac64 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -1083,6 +1083,29 @@ class bug extends control die(html::select('assignedTo', $projectMembers, $selectedUser, 'class="form-control"')); } + /** + * AJAX: get team members of the latest project of a product as assignedTo list. + * + * @param int $productID + * @param string $selectedUser + * @access public + * @return string + */ + public function ajaxLoadProjectTeamMembers($productID, $selectedUser = '') + { + $latestProjectID = $this->product->getLatestProject($productID); + if(!empty($latestProjectID)) + { + $projectMembers = $this->loadModel('project')->getTeamMemberPairs($latestProjectID, 'nodeleted'); + } + else + { + $projectMembers = $this->loadModel('user')->getPairs('nodeleted|devfirst|noclosed'); + } + + die(html::select('assignedTo', $projectMembers, $selectedUser, 'class="form-control"')); + } + /** * AJAX: get all users as assignedTo list. * @@ -1092,7 +1115,7 @@ class bug extends control */ public function ajaxLoadAllUsers($selectedUser = '') { - $allUsers = $this->loadModel('user')->getPairs('nodeleted, devfirst'); + $allUsers = $this->loadModel('user')->getPairs('nodeleted|devfirst|noclosed'); die(html::select('assignedTo', $allUsers, $selectedUser, 'class="form-control"')); } diff --git a/module/bug/js/common.js b/module/bug/js/common.js index ce43d80a99..b990c79fdb 100644 --- a/module/bug/js/common.js +++ b/module/bug/js/common.js @@ -32,7 +32,11 @@ $(function() */ function loadAll(productID) { - if(page == 'create') setAssignedTo(); + if(page == 'create') + { + setAssignedTo(); + loadProjectTeamMembers(productID); + } if(!changeProductConfirmed) { diff --git a/module/bug/js/create.js b/module/bug/js/create.js index 3a38d8b89a..22c31863f5 100644 --- a/module/bug/js/create.js +++ b/module/bug/js/create.js @@ -23,6 +23,19 @@ function loadAllUsers() $('#assignedToBox').load(link, function(){$('#assignedTo').chosen(defaultChosenOptions);}); } +/** + * Load team members of the latest project of a product as assignedTo list. + * + * @param $productID + * @access public + * @return void + */ +function loadProjectTeamMembers(productID) +{ + link = createLink('bug', 'ajaxLoadProjectTeamMembers', 'productID=' + productID + '&selectedUser=' + $('#assignedTo').val()); + $('#assignedToBox').load(link, function(){$('#assignedTo').chosen(defaultChosenOptions);}); +} + /** * load assignedTo and stories of module. * diff --git a/module/product/model.php b/module/product/model.php index abe69d628e..8b55a908a7 100644 --- a/module/product/model.php +++ b/module/product/model.php @@ -743,7 +743,7 @@ class productModel extends model */ public function getLatestProject($productID) { - $projectList = array_keys($this->loadModel('project')->getPairs()); + $projectList = array_keys($this->loadModel('project')->getPairs('noclosed')); $projects = $this->dao->select('t2.id, t2.name, t2.begin') ->from(TABLE_PROJECTPRODUCT)->alias('t1')->leftJoin(TABLE_PROJECT)->alias('t2') ->on('t1.project = t2.id')