From ff7730f4bd2f363c5619758c0af4acd3482c96df Mon Sep 17 00:00:00 2001 From: holan20180123 <56391770@qq.com> Date: Tue, 14 Jul 2020 09:43:36 +0800 Subject: [PATCH] * Finish task #7444,7441. --- module/bug/control.php | 10 +++++++--- module/bug/js/common.js | 7 ++++--- module/bug/js/create.js | 22 +++++++++++++++++++--- module/project/model.php | 7 ++++++- module/story/css/view.css | 1 + 5 files changed, 37 insertions(+), 10 deletions(-) diff --git a/module/bug/control.php b/module/bug/control.php index 7ef444ef5d..90b51ebd5f 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -400,10 +400,14 @@ class bug extends control $stories = $this->story->getProductStoryPairs($productID, $branch); } + + $moduleID = $moduleID ? $moduleID : (int)$this->cookie->lastBugModule; + $moduleOwner = $this->bug->getModuleOwner($moduleID, $productID); + /* Set team members of the latest project as assignedTo list. */ $latestProject = $this->product->getLatestProject($productID); $projectMembers = array(); - if(!empty($latestProject)) $projectMembers = $this->loadModel('project')->getTeamMemberPairs($latestProject->id, 'nodeleted'); + if(!empty($latestProject)) $projectMembers = $this->loadModel('project')->getTeamMemberPairs($latestProject->id, 'nodeleted', $moduleOwner); if(empty($projectMembers)) $projectMembers = $this->view->users; if($assignedTo and !isset($projectMembers[$assignedTo])) { @@ -1397,7 +1401,7 @@ class bug extends control */ public function ajaxLoadAssignedTo($projectID, $selectedUser = '') { - $projectMembers = $this->loadModel('project')->getTeamMemberPairs($projectID); + $projectMembers = $this->loadModel('project')->getTeamMemberPairs($projectID, '', $selectedUser); die(html::select('assignedTo', $projectMembers, $selectedUser, 'class="form-control"')); } @@ -1416,7 +1420,7 @@ class bug extends control $latestProject = $this->product->getLatestProject($productID); if(!empty($latestProject)) { - $projectMembers = $this->loadModel('project')->getTeamMemberPairs($latestProject->id, 'nodeleted'); + $projectMembers = $this->loadModel('project')->getTeamMemberPairs($latestProject->id, 'nodeleted', $selectedUser); } else { diff --git a/module/bug/js/common.js b/module/bug/js/common.js index a5d7c1c76d..11c9121efe 100644 --- a/module/bug/js/common.js +++ b/module/bug/js/common.js @@ -455,16 +455,17 @@ var oldAssignedTo = $("#assignedTo").find("option:selected").val(); * @access public * @return void */ -function loadAssignedTo(projectID) +function loadAssignedTo(projectID, selectedUser = '') { - link = createLink('bug', 'ajaxLoadAssignedTo', 'projectID=' + projectID + '&selectedUser=' + $('#assignedTo').val()); + selectedUser = selectedUser ? selectedUser : $('#assignedTo').val(); + link = createLink('bug', 'ajaxLoadAssignedTo', 'projectID=' + projectID + '&selectedUser=' + selectedUser); $.get(link, function(data) { var defaultOption = ''; $('#assignedTo_chosen').remove(); $('#assignedTo').replaceWith(data); var defaultAssignedTo = $('#assignedTo').val(); - if(defaultAssignedTo !== oldAssignedTo) $('#assignedTo').append(defaultOption); + if(defaultAssignedTo !== oldAssignedTo && selectedUser == '') $('#assignedTo').append(defaultOption); $('#assignedTo').chosen(); }); } diff --git a/module/bug/js/create.js b/module/bug/js/create.js index 6bf629899b..a4e621b95e 100644 --- a/module/bug/js/create.js +++ b/module/bug/js/create.js @@ -26,10 +26,16 @@ function loadAllUsers() * @access public * @return void */ -function loadProjectTeamMembers(productID) +function loadProjectTeamMembers(productID, selectedUser = '') { - var link = createLink('bug', 'ajaxLoadProjectTeamMembers', 'productID=' + productID + '&selectedUser=' + $('#assignedTo').val()); - $('#assignedToBox').load(link, function(){$('#assignedTo').chosen();}); + selectedUser = selectedUser ? selectedUser : $('#assignedTo').val(); + var link = createLink('bug', 'ajaxLoadProjectTeamMembers', 'productID=' + productID + '&selectedUser=' + selectedUser); + $.get(link, function(data) + { + $('#assignedTo_chosen').remove(); + $('#assignedTo').replaceWith(data); + $('#assignedTo').chosen(); + }); } /** @@ -56,9 +62,19 @@ function setAssignedTo(moduleID, productID) { if(typeof(productID) == 'undefined') productID = $('#product').val(); if(typeof(moduleID) == 'undefined') moduleID = $('#module').val(); + var link = createLink('bug', 'ajaxGetModuleOwner', 'moduleID=' + moduleID + '&productID=' + productID); $.get(link, function(owner) { + var projectID = $('#project').val(); + if(!projectID) + { + loadProjectTeamMembers(productID, owner); + } + else + { + loadAssignedTo(projectID, owner); + } $('#assignedTo').val(owner); $("#assignedTo").trigger("chosen:updated"); }); diff --git a/module/project/model.php b/module/project/model.php index eefde15016..648efe81da 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -1722,10 +1722,11 @@ class projectModel extends model * * @param int $projectID * @param string $params + * @param string $usersToAppended * @access public * @return array */ - public function getTeamMemberPairs($projectID, $params = '') + public function getTeamMemberPairs($projectID, $params = '', $usersToAppended = '') { if(defined('TUTORIAL')) return $this->loadModel('tutorial')->getTeamMembersPairs(); $this->app->loadConfig('user'); @@ -1737,7 +1738,11 @@ class projectModel extends model ->andWhere('t2.deleted')->eq(0) ->fi() ->fetchPairs(); + + if($usersToAppended) $users += $this->dao->select('account, realname')->from(TABLE_USER)->where('account')->in($usersToAppended)->fetchPairs(); + if(!$users) return array('' => ''); + foreach($users as $account => $realName) { $firstLetter = ucfirst(substr($account, 0, 1)) . ':'; diff --git a/module/story/css/view.css b/module/story/css/view.css index 09f389c1f7..e49d9ab210 100644 --- a/module/story/css/view.css +++ b/module/story/css/view.css @@ -1,3 +1,4 @@ .side-col .cell{padding:0px;} .side-col #legendProjectAndTask .list-unstyled{padding:10px; border-top:0px; margin:0px;} .col-4 .cell .tab-content .text-top{padding-top: 1px} +.main-actions .btn-toolbar .btn{padding-right: 6px; padding-left: 6px;}