diff --git a/module/bug/js/common.js b/module/bug/js/common.js index c171e4dbe5..eb7308b09c 100644 --- a/module/bug/js/common.js +++ b/module/bug/js/common.js @@ -42,7 +42,7 @@ function loadAll(productID) { $('#taskIdBox').innerHTML = ''; // Reset the task. $('#task').chosen({no_results_text: noResultsMatch}); - loadModuleMenu(productID); + loadProductModules(productID); loadProductStories(productID); loadProductProjects(productID); loadProductBuilds(productID); @@ -51,15 +51,15 @@ function loadAll(productID) } /** - * Load module menu. + * Load product's modules. * * @param int $productID * @access public * @return void */ -function loadModuleMenu(productID) +function loadProductModules(productID) { - link = createLink('tree', 'ajaxGetOptionMenu', 'productID=' + productID + '&viewtype=bug'); + link = createLink('tree', 'ajaxGetOptionMenu', 'productID=' + productID + '&viewtype=bug&rootModuleID=0&returnType=html&needManage=true'); $('#moduleIdBox').load(link); } @@ -186,16 +186,17 @@ function loadProjectBuilds(projectID) productID = $('#product').val(); if(page == 'create') oldOpenedBuild = $('#openedBuild').val() ? $('#openedBuild').val() : 0; - link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild); if(page == 'create') { - $('#buildBox').load(link); + link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + "&index=0&needCreate=true"); + $('#buildBox').load(link); } else { - $('#openedBuildBox').load(link); + link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild); + $('#openedBuildBox').load(link); - link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild); - $('#resolvedBuildBox').load(link); + link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild); + $('#resolvedBuildBox').load(link); } } diff --git a/module/bug/view/create.html.php b/module/bug/view/create.html.php index 33895507c3..29231a14a9 100644 --- a/module/bug/view/create.html.php +++ b/module/bug/view/create.html.php @@ -28,18 +28,35 @@ js::set('mailto', $lang->bug->chosen->mailto); bug->lblProductAndModule;?> - + + createLink('tree', 'browse', "rootID=$productID&view=bug"), $lang->tree->manage, '_blank'); + echo html::a("javascript:loadProductModules($productID)", $lang->refresh); + } + ?> + - - + + bug->project;?> - - + + bug->openedBuild;?> - - build->notice;?> + + createLink('build', 'create', "projectID=$projectID"), $lang->build->create, '_blank'); + echo html::a("javascript:loadProjectsBuilds($projectID)", $lang->refresh); + } + ?> + diff --git a/module/build/control.php b/module/build/control.php index c6dc5970d0..ee24cbf1ad 100644 --- a/module/build/control.php +++ b/module/build/control.php @@ -191,12 +191,23 @@ class build extends control * @param string $varName the name of the select object to create * @param string $build build to selected * @param int $index the index of batch create bug. + * @param bool $needCreate if need to append the link of create build * @access public * @return string */ - public function ajaxGetProjectBuilds($projectID, $productID, $varName, $build = '', $index = 0) + public function ajaxGetProjectBuilds($projectID, $productID, $varName, $build = '', $index = 0, $needCreate = false) { - if($varName == 'openedBuild') die(html::select($varName . '[]', $this->build->getProjectBuildPairs($projectID, $productID, 'noempty'), $build, 'size=4 class=select-3 multiple')); + if($varName == 'openedBuild') + { + $builds = $this->build->getProjectBuildPairs($projectID, $productID, 'noempty'); + $output = html::select($varName . '[]', $builds , $build, 'size=4 class=select-3 multiple'); + if(count($builds) == 1 and $needCreate) + { + $output .= html::a($this->createLink('build', 'create', "projectID=$projectID"), $this->lang->build->create, '_blank'); + $output .= html::a("javascript:loadProjectBuilds($projectID)", $this->lang->refresh); + } + die($output); + } if($varName == 'openedBuilds') die(html::select($varName . "[$index][]", $this->build->getProjectBuildPairs($projectID, $productID, 'noempty'), $build, 'size=4 class=select-3 multiple')); if($varName == 'resolvedBuild') die(html::select($varName, $this->build->getProjectBuildPairs($projectID, $productID, 'noempty'), $build, 'class=select-3')); if($varName == 'testTaskBuild') die(html::select('build', $this->build->getProjectBuildPairs($projectID, $productID, 'noempty'), $build, 'class=select-3')); diff --git a/module/build/lang/en.php b/module/build/lang/en.php index 9232284e8e..8fad3304fe 100644 --- a/module/build/lang/en.php +++ b/module/build/lang/en.php @@ -38,5 +38,3 @@ $lang->build->bugs = 'Linked bugs'; $lang->build->finishStories = 'The total demand for a complete %s'; $lang->build->resolvedBugs = 'The total solution of bug%s'; - -$lang->build->notice = "Please create a build in project view's build page."; diff --git a/module/build/lang/zh-cn.php b/module/build/lang/zh-cn.php index 3f156381bc..0b94694466 100644 --- a/module/build/lang/zh-cn.php +++ b/module/build/lang/zh-cn.php @@ -38,5 +38,3 @@ $lang->build->bugs = '已关联Bug'; $lang->build->finishStories = '本次共完成需求%s个'; $lang->build->resolvedBugs = '本次共解决Bug%s个'; - -$lang->build->notice = '版本请到[项目视图]-[版本]创建。'; diff --git a/module/common/lang/en.php b/module/common/lang/en.php index 3f3ea77b72..fbf9cb49d2 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -28,6 +28,7 @@ $lang->todayIs = '%s, '; $lang->runInfo = "
Time: %s ms, Memory: %s KB, Queries: %s.
"; $lang->reset = 'Reset'; +$lang->refresh = 'Refresh'; $lang->edit = 'Edit'; $lang->copy = 'Copy'; $lang->delete = 'Delete'; diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index b30c7ddb8c..214a45361e 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -28,6 +28,7 @@ $lang->todayIs = '今天是%s,'; $lang->runInfo = "
时间: %s 毫秒, 内存: %s KB, 查询: %s.
"; $lang->reset = '重填'; +$lang->refresh = '刷新'; $lang->edit = '编辑'; $lang->copy = '复制'; $lang->delete = '删除'; diff --git a/module/product/control.php b/module/product/control.php index 15e425b522..16dbdf6415 100644 --- a/module/product/control.php +++ b/module/product/control.php @@ -463,13 +463,20 @@ class product extends control * * @param int $productID * @param int $planID + * @param bool $needCreate * @access public * @return void */ - public function ajaxGetPlans($productID, $planID = 0) + public function ajaxGetPlans($productID, $planID = 0, $needCreate = false) { $plans = $this->loadModel('productplan')->getPairs($productID); - die(html::select('plan', $plans, $planID)); + $output = html::select('plan', $plans, $planID, "class='select-1'"); + if(count($plans) == 1 and $needCreate) + { + $output .= html::a($this->createLink('productplan', 'create', "productID=$productID"), $this->lang->productplan->create, '_blank'); + $output .= html::a("javascript:loadProductPlans($productID)", $this->lang->refresh); + } + die($output); } /** diff --git a/module/project/control.php b/module/project/control.php index 5973c5bb3f..5b40c04d0f 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -1545,7 +1545,7 @@ class project extends control public function ajaxGetMembers($projectID) { $users = $this->project->getTeamMemberPairs($projectID); - die(html::select('assignedTo', $users, '')); + die(html::select('assignedTo', $users, '', "class='select-1'")); } /** diff --git a/module/story/css/create.css b/module/story/css/create.css index dce00e9044..6a73fbb034 100644 --- a/module/story/css/create.css +++ b/module/story/css/create.css @@ -1 +1,2 @@ #plan {width:245px} +select {border:1px solid #ccc} diff --git a/module/story/view/create.html.php b/module/story/view/create.html.php index 282833f892..a1c1bfddd7 100644 --- a/module/story/view/create.html.php +++ b/module/story/view/create.html.php @@ -21,12 +21,32 @@ story->product;?> - + + createLink('tree', 'browse', "rootID=$productID&view=story"), $lang->tree->manage, '_blank'); + echo html::a("javascript:loadProductModules($productID)", $lang->refresh); + } + ?> + story->plan;?> - + + + createLink('productplan', 'create', "productID=$productID"), $lang->productplan->create, '_blank'); + echo html::a("javascript:loadProductPlans($productID)", $lang->refresh); + } + ?> + + story->source;?> diff --git a/module/story/view/edit.html.php b/module/story/view/edit.html.php index db22fc6e69..5ae0d36437 100644 --- a/module/story/view/edit.html.php +++ b/module/story/view/edit.html.php @@ -52,11 +52,32 @@ story->module;?> - module, 'class="select-1"');?> + + + module, 'class="select-1"'); + if(count($moduleOptionMenu) == 1) + { + echo html::a($this->createLink('tree', 'browse', "rootID=$story->product&view=story"), $lang->tree->manage, '_blank'); + echo html::a("javascript:loadProductModules($story->product)", $lang->refresh); + } + ?> + + story->plan;?> - plan, 'class=select-1');?> + + + plan, 'class=select-1'); + if(count($plans) == 1) + { + echo html::a($this->createLink('productplan', 'create', "productID=$story->product"), $lang->productplan->create, '_blank'); + echo html::a("javascript:loadProductPlans($story->product)", $lang->refresh); + } + ?> + + story->source;?> diff --git a/module/story/view/header.html.php b/module/story/view/header.html.php index 57a8322bb7..10a628ccae 100644 --- a/module/story/view/header.html.php +++ b/module/story/view/header.html.php @@ -6,9 +6,19 @@