diff --git a/module/bug/control.php b/module/bug/control.php index 7dd41dbfd5..b59f29bf50 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -319,12 +319,12 @@ class bug extends control /* If projectID is setted, get builds and stories of this project. */ if($projectID) { - $builds = $this->loadModel('build')->getProjectBuildPairs($projectID, $productID, 'noempty,noterminate,nodone'); + $builds = $this->loadModel('build')->getProjectBuildPairs($projectID, $productID, $branch, 'noempty,noterminate,nodone'); $stories = $this->story->getProjectStoryPairs($projectID); } else { - $builds = $this->loadModel('build')->getProductBuildPairs($productID, 'noempty,release,noterminate,nodone'); + $builds = $this->loadModel('build')->getProductBuildPairs($productID, $branch, 'noempty,noterminate,nodone'); $stories = $this->story->getProductStoryPairs($productID, $branch); } @@ -553,21 +553,29 @@ class bug extends control if($projectID) { $openedBuilds = $this->loadModel('build')->getProjectBuildPairs($projectID, $productID, $bug->branch, 'noempty,noterminate,nodone'); - $allBuilds = $this->loadModel('build')->getProjectBuildPairs($projectID, $productID, $bug->branch, 'noempty'); + $allBuilds = $this->loadModel('build')->getProjectBuildPairs($projectID, $productID, 0, 'noempty'); } else { $openedBuilds = $this->loadModel('build')->getProductBuildPairs($productID, $bug->branch, 'noempty,noterminate,nodone'); - $allBuilds = $this->loadModel('build')->getProductBuildPairs($productID, $bug->branch, 'noempty'); + $allBuilds = $this->loadModel('build')->getProductBuildPairs($productID, 0, 'noempty'); } - /* Set the openedBuilds list*/ - $bugOpenedBuilds = array(); - foreach($allBuilds as $buildID => $build) + /* Set the openedBuilds list. */ + $oldOpenedBuilds = array(); + $bugOpenedBuilds = explode(',', $bug->openedBuild); + foreach($bugOpenedBuilds as $buildID) { - if(strpos($bug->openedBuild, "$buildID") !== false) $bugOpenedBuilds[$buildID] = $build; + if(isset($allBuilds[$buildID])) $oldOpenedBuilds[$buildID] = $allBuilds[$buildID]; + } + $openedBuilds = $openedBuilds + $oldOpenedBuilds; + + /* Set the resolvedBuilds list. */ + $oldResolvedBuild = array(); + if($bug->resolvedBuild) + { + if(isset($allBuilds[$bug->resolvedBuild])) $oldResolvedBuild[$bug->resolvedBuild] = $allBuilds[$bug->resolvedBuild]; } - $openedBuilds = $openedBuilds + $bugOpenedBuilds; $this->view->bug = $bug; $this->view->productID = $productID; @@ -581,7 +589,7 @@ class bug extends control $this->view->tasks = $this->task->getProjectTaskPairs($bug->project); $this->view->users = $this->user->getPairs('nodeleted', "$bug->assignedTo,$bug->resolvedBy,$bug->closedBy,$bug->openedBy"); $this->view->openedBuilds = $openedBuilds; - $this->view->resolvedBuilds = array('' => '') + $openedBuilds; + $this->view->resolvedBuilds = array('' => '') + $openedBuilds + $oldResolvedBuild ; $this->view->actions = $this->action->getList('bug', $bugID); $this->view->templates = $this->bug->getUserBugTemplates($this->app->user->account); @@ -831,7 +839,7 @@ class bug extends control $this->view->bug = $bug; $this->view->users = $users; $this->view->assignedTo = $assignedTo; - $this->view->builds = $this->loadModel('build')->getProductBuildPairs($productID); + $this->view->builds = $this->loadModel('build')->getProductBuildPairs($productID, 0, 'noterminate, nodone'); $this->view->actions = $this->action->getList('bug', $bugID); $this->display(); } diff --git a/module/bug/css/edit.css b/module/bug/css/edit.css index aa15983631..e1b4438cce 100644 --- a/module/bug/css/edit.css +++ b/module/bug/css/edit.css @@ -1,3 +1,4 @@ .col-side .chosen-container .chosen-drop {width: 216px!important} .col-side .chosen-container {width: 218px!important} .col-side .chosen-container[id^="openedBuild"] {width: 172px!important} +.col-side .chosen-container[id^="resolvedBuild"] {width: 172px!important} diff --git a/module/bug/js/common.js b/module/bug/js/common.js index b734cd7f38..ce43d80a99 100644 --- a/module/bug/js/common.js +++ b/module/bug/js/common.js @@ -70,17 +70,27 @@ function loadBranch() * @access public * @return void */ -function loadAllBuilds() +function loadAllBuilds(that) { - productID = $('#product').val(); - projectID = $('#project').val(); - if(projectID) + if(page == 'resolve') { - loadAllProjectBuilds(projectID, productID); + link = createLink('build', 'ajaxGetAllProductBuilds', 'productID=' + productID + '&varName=resolvedBuild&build'); + $('#resolvedBuildBox').load(link, function(){$(this).find('select').chosen(defaultChosenOptions)}); } else { - loadAllProductBuilds(productID); + productID = $('#product').val(); + projectID = $('#project').val(); + if(page == 'edit') buildBox = $(that).parent().prev().filter('span').attr('id'); + + if(projectID) + { + loadAllProjectBuilds(projectID, productID); + } + else + { + loadAllProductBuilds(productID); + } } } @@ -88,6 +98,7 @@ function loadAllBuilds() * Load all builds of the project. * * @param int $projectID + * @param int $productID * @access public * @return void */ @@ -95,19 +106,24 @@ function loadAllProjectBuilds(projectID, productID) { branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; - if(page == 'create') oldOpenedBuild = $('#openedBuild').val() ? $('#openedBuild').val() : 0; - - link = createLink('build', 'ajaxGetAllProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch); if(page == 'create') { + oldOpenedBuild = $('#openedBuild').val() ? $('#openedBuild').val() : 0; + link = createLink('build', 'ajaxGetAllProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch); $('#buildBox').load(link, function(){ notice(); $('#openedBuild').chosen(defaultChosenOptions);}); } - else + if(page == 'edit') { - $('#openedBuildBox').load(link, function(){$(this).find('select').chosen(defaultChosenOptions)}); - - buildLink = createLink('build', 'ajaxGetAllProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild + '&branch=' + branch); - $('#resolvedBuildBox').load(buildLink, function(){$(this).find('select').chosen(defaultChosenOptions)}); + if(buildBox == 'openedBuildBox') + { + link = createLink('build', 'ajaxGetAllProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch); + $('#openedBuildBox').load(link, function(){$(this).find('select').chosen(defaultChosenOptions)}); + } + if(buildBox == 'resolvedBuildBox') + { + buildLink = createLink('build', 'ajaxGetAllProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild); + $('#resolvedBuildBox').load(buildLink, function(){$(this).find('select').chosen(defaultChosenOptions)}); + } } } @@ -122,17 +138,23 @@ function loadAllProductBuilds(productID) { branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; - link = createLink('build', 'ajaxGetAllProductBuilds', 'productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch); if(page == 'create') { + link = createLink('build', 'ajaxGetAllProductBuilds', 'productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch); $('#buildBox').load(link, function(){ notice(); $('#openedBuild').chosen(defaultChosenOptions);}); } - else + if(page == 'edit') { - $('#openedBuildBox').load(link, function(){$(this).find('select').chosen(defaultChosenOptions)}); - - buildLink = createLink('build', 'ajaxGetAllProductBuilds', 'productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild + '&branch=' + branch); - $('#resolvedBuildBox').load(buildLink, function(){$(this).find('select').chosen(defaultChosenOptions)}); + if(buildBox == 'openedBuildBox') + { + link = createLink('build', 'ajaxGetAllProductBuilds', 'productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch); + $('#openedBuildBox').load(link, function(){$(this).find('select').chosen(defaultChosenOptions)}); + } + if(buildBox == 'resolvedBuildBox') + { + buildLink = createLink('build', 'ajaxGetAllProductBuilds', 'productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild); + $('#resolvedBuildBox').load(buildLink, function(){$(this).find('select').chosen(defaultChosenOptions)}); + } } } diff --git a/module/bug/view/edit.html.php b/module/bug/view/edit.html.php index 5c614bea78..2b5c82ec42 100644 --- a/module/bug/view/edit.html.php +++ b/module/bug/view/edit.html.php @@ -175,7 +175,7 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);