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 @@