diff --git a/module/bug/js/common.js b/module/bug/js/common.js index 3837d45dbe..5880aff0d4 100644 --- a/module/bug/js/common.js +++ b/module/bug/js/common.js @@ -341,7 +341,6 @@ function loadProjectBuilds(projectID) branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; productID = $('#product').val(); - if(page == 'create') oldOpenedBuild = $('#openedBuild').val() ? $('#openedBuild').val() : 0; if(page == 'create') { @@ -352,6 +351,9 @@ function loadProjectBuilds(projectID) { link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch); $('#openedBuildBox').load(link, function(){$(this).find('select').chosen()}); + + link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild + '&branch=' + branch); + $('#resolvedBuildBox').load(link, function(){$(this).find('select').chosen()}); } } diff --git a/module/build/control.php b/module/build/control.php index 0f8b3730ff..188ec4f549 100644 --- a/module/build/control.php +++ b/module/build/control.php @@ -333,7 +333,7 @@ class build extends control if($varName == 'openedBuild') { $params = ($type == 'all') ? 'noempty' : 'noempty, noterminate, nodone'; - $builds = $this->build->getProjectBuildPairs($projectID, $productID, $branch, $params); + $builds = $this->build->getProjectBuildPairs($projectID, $productID, $branch, $params, $build); if($isJsonView) die(json_encode($builds)); else die(html::select($varName . '[]', $builds , $build, 'size=4 class=form-control multiple')); } @@ -346,7 +346,7 @@ class build extends control if($varName == 'resolvedBuild') { $params = ($type == 'all') ? '' : 'noterminate, nodone'; - $builds = $this->build->getProjectBuildPairs($projectID, $productID, $branch, $params); + $builds = $this->build->getProjectBuildPairs($projectID, $productID, $branch, $params, $build); if($isJsonView) die(json_encode($builds)); else die(html::select($varName, $builds, $build, "class='form-control'")); } diff --git a/module/build/model.php b/module/build/model.php index cfcbd7796b..8842f20906 100644 --- a/module/build/model.php +++ b/module/build/model.php @@ -78,11 +78,13 @@ class buildModel extends model * @access public * @return array */ - public function getProjectBuildPairs($projectID, $productID, $branch = 0, $params = '') + public function getProjectBuildPairs($projectID, $productID, $branch = 0, $params = '', $buildID = 0) { - $sysBuilds = array(); + $sysBuilds = array(); + $selectedBuilds = array(); if(strpos($params, 'noempty') === false) $sysBuilds = array('' => ''); if(strpos($params, 'notrunk') === false) $sysBuilds = $sysBuilds + array('trunk' => $this->lang->trunk); + if($buildID != 0) $selectedBuilds = $this->dao->select('id, name')->from(TABLE_BUILD)->where('id')->eq($buildID)->fetchPairs(); $projectBuilds = $this->dao->select('t1.id, t1.name, t1.project, t2.status as projectStatus, t3.id as releaseID, t3.status as releaseStatus, t4.name as branchName')->from(TABLE_BUILD)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id') @@ -102,7 +104,7 @@ class buildModel extends model if((strpos($params, 'noterminate') !== false) and ($build->releaseStatus === 'terminate')) continue; $builds[$buildID] = $build->name; } - if(!$builds) return $sysBuilds; + if(!$builds) return $sysBuilds + $selectedBuilds; /* if the build has been released, replace build name with release name. */ $releases = $this->dao->select('build, name')->from(TABLE_RELEASE) @@ -112,7 +114,7 @@ class buildModel extends model ->fetchPairs(); foreach($releases as $buildID => $releaseName) $builds[$buildID] = $releaseName; - return $sysBuilds + $builds; + return $sysBuilds + $builds + $selectedBuilds; } /**