From 69bb36131979992e5c18be6f866a04c02afa097e Mon Sep 17 00:00:00 2001 From: sunjun Date: Wed, 23 Mar 2022 09:59:36 +0800 Subject: [PATCH] *Fixbug #17627 --- module/stakeholder/control.php | 10 +++++++++- module/stakeholder/js/create.js | 25 +++++++++++++------------ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/module/stakeholder/control.php b/module/stakeholder/control.php index b49ddb2e6d..694e3d870f 100644 --- a/module/stakeholder/control.php +++ b/module/stakeholder/control.php @@ -212,6 +212,9 @@ class stakeholder extends control { $members = $this->loadModel('user')->getTeamMemberPairs($projectID, 'project'); } + $stakeholders = $this->loadModel('stakeholder')->getStakeHolderPairs($programID ? $programID : $projectID); + foreach($members as $account => $realname) if(in_array($account, array_keys($stakeholders))) unset($members[$account]); + echo html::select('user', $members, $user, "class='form-control chosen'"); } @@ -237,6 +240,8 @@ class stakeholder extends control $users = $this->loadModel('user')->getPairs('noclosed'); $companyUsers = array('' => '') + array_diff($users, $members); + $stakeholders = $this->loadModel('stakeholder')->getStakeHolderPairs($programID ? $programID : $projectID); + foreach($companyUsers as $account => $realname) if(in_array($account, array_keys($stakeholders))) unset($companyUsers[$account]); echo html::select('user', $companyUsers, $user, "class='form-control chosen'"); } @@ -247,9 +252,12 @@ class stakeholder extends control * @access public * @return void */ - public function ajaxGetOutsideUser() + public function ajaxGetOutsideUser($objectID = 0) { $users = $this->loadModel('user')->getPairs('noclosed|outside|noletter'); + $stakeholders = $this->loadModel('stakeholder')->getStakeHolderPairs($objectID); + foreach($users as $account => $realname) if(in_array($account, array_keys($stakeholders))) unset($users[$account]); + echo html::select('user', $users, '', "class='form-control chosen' onchange=changeUser(this.value);"); } diff --git a/module/stakeholder/js/create.js b/module/stakeholder/js/create.js index d99a081f7e..45da8f2407 100644 --- a/module/stakeholder/js/create.js +++ b/module/stakeholder/js/create.js @@ -9,9 +9,9 @@ $(function() var link = createLink('stakeholder', 'ajaxGetMembers', 'user=&program=' + programID + '&projectID=' + projectID); $.post(link, function(data) { - $('#user').replaceWith(data); + $('#user').replaceWith(data); $('#user_chosen').remove(); - $('#user').chosen(); + $('#user').chosen(); }) } @@ -22,9 +22,9 @@ $(function() var link = createLink('stakeholder', 'ajaxGetCompanyUser', 'user=&programID=' + programID + '&projectID=' + projectID); $.post(link, function(data) { - $('#user').replaceWith(data); + $('#user').replaceWith(data); $('#user_chosen').remove(); - $('#user').chosen(); + $('#user').chosen(); }) } @@ -32,19 +32,20 @@ $(function() { $('#user').closest('tr').find('.input-group-addon').removeClass('hidden'); if($('input[name*=newUser]').prop('checked')) $('.user-info').removeClass('hidden'); - var link = createLink('stakeholder', 'ajaxGetOutsideUser'); + var objectID = programID ? programID : projectID; + var link = createLink('stakeholder', 'ajaxGetOutsideUser','objectID=' + objectID); $.post(link, function(data) { - $('#user').replaceWith(data); + $('#user').replaceWith(data); $('#user_chosen').remove(); - $('#user').chosen(); + $('#user').chosen(); }) } - }) + }) $("input[name='new[]']").change(function() { - if($(this).prop('checked')) + if($(this).prop('checked')) { $('#company').replaceWith(""); $('#company_chosen').remove(); @@ -54,15 +55,15 @@ $(function() var link = createLink('company', 'ajaxGetOutsideCompany'); $.post(link, function(data) { - $('#company').replaceWith(data); - $('#company').chosen(); + $('#company').replaceWith(data); + $('#company').chosen(); }) } }) $('input[name*=newUser]').change(function() { - if($(this).prop('checked')) + if($(this).prop('checked')) { $('#user').attr('disabled', true).trigger("chosen:updated"); $('.user-info').removeClass('hidden');