diff --git a/module/product/control.php b/module/product/control.php index 2bc9c36732..099549b3a9 100644 --- a/module/product/control.php +++ b/module/product/control.php @@ -548,12 +548,13 @@ class product extends control * @param int $productID * @param int $planID * @param bool $needCreate + * @param string $expired * @access public * @return void */ - public function ajaxGetPlans($productID, $branch = 0, $planID = 0, $fieldID = '', $needCreate = false) + public function ajaxGetPlans($productID, $branch = 0, $planID = 0, $fieldID = '', $needCreate = false, $expired = '') { - $plans = $this->loadModel('productplan')->getPairs($productID, $branch); + $plans = $this->loadModel('productplan')->getPairs($productID, $branch, $expired); $field = $fieldID ? "plans[$fieldID]" : 'plan'; $output = html::select($field, $plans, $planID, "class='form-control chosen'"); if(count($plans) == 1 and $needCreate) diff --git a/module/project/control.php b/module/project/control.php index 49b9820e30..2b7ea57c3e 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -604,14 +604,11 @@ class project extends control $storyBugs = $this->loadModel('bug')->getStoryBugCounts($storyIdList, $projectID); $storyCases = $this->loadModel('testcase')->getStoryCaseCounts($storyIdList); - $plans = $this->project->getPlans($productID); + $plans = $this->project->getPlans($products); $allPlans = array('' => ''); if(!empty($plans)) { - foreach($plans as $productID => $plan) - { - $allPlans = $allPlans + $plan; - } + foreach($plans as $productID => $plan) $allPlans += $plan; } /* Assign. */ @@ -1030,7 +1027,7 @@ class project extends control $this->view->qdUsers = $this->user->getPairs('noclosed|nodeleted|qdfirst', $project->QD); $this->view->rdUsers = $this->user->getPairs('noclosed|nodeleted|devfirst', $project->RD); $this->view->groups = $this->loadModel('group')->getPairs(); - $this->view->plans = $this->project->getPlans(array_keys($linkedProducts)); + $this->view->plans = $this->project->getPlans($linkedProducts); $this->view->allProducts = $allProducts; $this->view->linkedProducts = $linkedProducts; $this->view->branchGroups = $this->loadModel('branch')->getByProducts(array_keys($linkedProducts)); @@ -1294,6 +1291,7 @@ class project extends control $this->view->project = $project; $this->view->products = $products; $this->view->branchGroups = $this->loadModel('branch')->getByProducts(array_keys($products)); + $this->view->planGroups = $this->project->getPlans($products); $this->view->groups = $this->loadModel('group')->getPairs(); $this->view->actions = $this->loadModel('action')->getList('project', $projectID); $this->view->users = $this->loadModel('user')->getPairs('noletter'); diff --git a/module/project/js/common.js b/module/project/js/common.js index b27ac9b066..19e2e708a4 100644 --- a/module/project/js/common.js +++ b/module/project/js/common.js @@ -154,23 +154,30 @@ function loadBranches(product) if(data) { $inputgroup.append(data); - $inputgroup.find('select:last').attr('name', 'branch[' + index + ']').attr('id', 'branch' + index).css('width', '80px'); + $inputgroup.find('select:last').attr('name', 'branch[' + index + ']').attr('id', 'branch' + index).css('width', '80px').attr('onchange', "loadPlans('#products" + index + "', this.value)"); } }); + loadPlans(product); +} + +function loadPlans(product, branchID) +{ var productID = $(product).val(); + var branchID = typeof(branchID) == 'undefined' ? 0 : branchID; - if(productID == 0 || productID != $(product).data('last')) $("#plan" + $(product).data('last')).remove(); - - if(productID != 0 && $("#plan" + productID).length == 0) + if(productID != 0) { + if(typeof(planID) == 'undefined') planID = 0; + planID = $("select#plans" + productID).val() != '' ? $("select#plans" + productID).val() : planID; + $("div#plan" + productID).remove(); $(product).data("last", productID); - $.get(createLink('product', 'ajaxGetPlans', "productID=" + productID), function(data) + $.get(createLink('product', 'ajaxGetPlans', "productID=" + productID + '&branch=' + branchID + '&planID=' + planID + '&fieldID&needCreate=&expired=' + (config.currentMethod == 'create' ? 'unexpired' : '')), function(data) { if(data) { - $("#plansBox .row").append('