diff --git a/module/action/lang/en.php b/module/action/lang/en.php
index 697ce47740..ae158bc1f2 100755
--- a/module/action/lang/en.php
+++ b/module/action/lang/en.php
@@ -266,6 +266,7 @@ $lang->action->label->tostory = 'converted to Story ';
$lang->action->label->frombug = 'converted from Bug ';
$lang->action->label->fromlib = 'imported from Library ';
$lang->action->label->totask = 'converted to Task ';
+$lang->action->label->converttotask = 'converted to Task ';
$lang->action->label->svncommited = 'committed SVN ';
$lang->action->label->gitcommited = 'committed Git ';
$lang->action->label->linked2plan = 'linked to Plan ';
diff --git a/module/action/lang/zh-cn.php b/module/action/lang/zh-cn.php
index 25c14d73ec..be06e0aedc 100755
--- a/module/action/lang/zh-cn.php
+++ b/module/action/lang/zh-cn.php
@@ -266,6 +266,7 @@ $lang->action->label->tostory = "转{$lang->SRCommon}";
$lang->action->label->frombug = "转{$lang->SRCommon}";
$lang->action->label->fromlib = '从用例库导入';
$lang->action->label->totask = '转任务';
+$lang->action->label->converttotask = '转任务';
$lang->action->label->svncommited = '提交代码';
$lang->action->label->gitcommited = '提交代码';
$lang->action->label->linked2plan = "关联计划";
diff --git a/module/bug/control.php b/module/bug/control.php
index 3251ad07f6..3c23616300 100755
--- a/module/bug/control.php
+++ b/module/bug/control.php
@@ -880,6 +880,8 @@ class bug extends control
$product = $this->loadModel('product')->getByID($productID);
$branches = $product->type == 'normal' ? array() : $this->loadModel('branch')->getPairs($bug->product);
+ $projects = $this->loadModel('product')->getProjectPairsByProduct($productID, $bug->branch);
+
$this->executeHooks($bugID);
/* Header and positon. */
@@ -902,6 +904,8 @@ class bug extends control
$this->view->preAndNext = $this->loadModel('common')->getPreAndNextObject('bug', $bugID);
$this->view->product = $product;
+ $this->view->projects = array('' => '') + $projects;
+
$this->display();
}
diff --git a/module/bug/js/view.js b/module/bug/js/view.js
index a5038e130c..5226a3e3e4 100644
--- a/module/bug/js/view.js
+++ b/module/bug/js/view.js
@@ -7,3 +7,49 @@ $('#tostory').click(function()
{
if(!confirm(confrimToStory)) return false;
});
+
+/**
+ * Load Product executions in html.
+ *
+ * @param int productID
+ * @param int projectID
+ * @access public
+ * @return void
+ */
+function loadProductExecutions(productID, projectID)
+{
+ link = createLink('product', 'ajaxGetExecutions', 'productID=' + productID + '&projectID=' + projectID +'&branch=' + branchID + '&number=&executionID=0&from=bugToTask');
+
+ $('#executionBox').load(link, function()
+ {
+ $(this).find('select').chosen();
+ });
+}
+
+$('#toTaskButton').on('click', function()
+{
+ var projectID = $('#taskProjects').val();
+ var executionID = $('#execution').val();
+ var executionID = executionID ? executionID : 0;
+
+ if(systemMode == 'new' && projectID && executionID != 0)
+ {
+ $('#cancelButton').click();
+ link = createLink('task', 'create', 'executionID=' + executionID + '&storyID=0&moduleID=0&taskID=0&todoID=0&extra=projectID=' + projectID + '&bugID=' + bugID);
+ window.parent.$.apps.open(link, 'execution');
+ }
+ else if(systemMode == 'classic' && executionID)
+ {
+ $('#cancelButton').click();
+ link = createLink('task', 'create', 'executionID=' + executionID + '&storyID=0&moduleID=0&taskID=0&todoID=0&extra=projectID=0&bugID=' + bugID);
+ window.parent.$.apps.open(link, 'execution');
+ }
+ else if(executionID == 0)
+ {
+ alert(errorNoExecution);
+ }
+ else
+ {
+ alert(errorNoProject);
+ }
+});
diff --git a/module/bug/lang/en.php b/module/bug/lang/en.php
index 8c1957c244..9bb908524a 100644
--- a/module/bug/lang/en.php
+++ b/module/bug/lang/en.php
@@ -95,6 +95,10 @@ $lang->bug->toCase = 'To Case';
$lang->bug->colorTag = 'Color';
$lang->bug->fixedRate = 'Fixed Rate';
$lang->bug->noticefeedbackBy = 'NoticeFeedbackBy';
+$lang->bug->selectProjects = 'Select Projects';
+$lang->bug->nextStep = 'Next Step';
+$lang->bug->noProject = 'Haven’t chosen a project yet';
+$lang->bug->noExecution = 'Haven’t chosen a execution yet';
/* Method list. */
$lang->bug->index = 'Bug Home';
@@ -405,6 +409,7 @@ $lang->bug->action = new stdclass();
$lang->bug->action->resolved = array('main' => '$date, resolved by $actor and the resolution is $extra $appendLink.', 'extra' => 'resolutionList');
$lang->bug->action->tostory = array('main' => '$date, converted by $actor to Story with ID $extra.');
$lang->bug->action->totask = array('main' => '$date, imported by $actor as Task with ID $extra.');
+$lang->bug->action->converttotask = array('main' => '$date, imported by $actor as Task,with ID $extra。');
$lang->bug->action->linked2plan = array('main' => '$date, linked by $actor to Plan $extra.');
$lang->bug->action->unlinkedfromplan = array('main' => '$date, deleted by $actor from Plan $extra.');
$lang->bug->action->linked2build = array('main' => '$date, linked by $actor to Build $extra.');
diff --git a/module/bug/lang/zh-cn.php b/module/bug/lang/zh-cn.php
index 52d5277a7c..1887709510 100644
--- a/module/bug/lang/zh-cn.php
+++ b/module/bug/lang/zh-cn.php
@@ -95,6 +95,10 @@ $lang->bug->toCase = '生成用例';
$lang->bug->colorTag = '颜色标签';
$lang->bug->fixedRate = '修复率';
$lang->bug->noticefeedbackBy = '通知反馈者';
+$lang->bug->selectProjects = '选择项目';
+$lang->bug->nextStep = '下一步';
+$lang->bug->noProject = '还没有选择项目!';
+$lang->bug->noExecution = '还没有选择执行!';
/* 方法列表。*/
$lang->bug->index = '首页';
@@ -405,6 +409,7 @@ $lang->bug->action = new stdclass();
$lang->bug->action->resolved = array('main' => '$date, 由 $actor 解决,方案为 $extra $appendLink。', 'extra' => 'resolutionList');
$lang->bug->action->tostory = array('main' => '$date, 由 $actor 转为 ' . $lang->SRCommon . ',编号为 $extra。');
$lang->bug->action->totask = array('main' => '$date, 由 $actor 导入为任务,编号为 $extra。');
+$lang->bug->action->converttotask = array('main' => '$date, 由 $actor 转为任务,编号为 $extra。');
$lang->bug->action->linked2plan = array('main' => '$date, 由 $actor 关联到计划 $extra。');
$lang->bug->action->unlinkedfromplan = array('main' => '$date, 由 $actor 从计划 $extra 移除。');
$lang->bug->action->linked2build = array('main' => '$date, 由 $actor 关联到版本 $extra。');
diff --git a/module/bug/model.php b/module/bug/model.php
index 5e4d93c7cc..3a4f64f6ee 100644
--- a/module/bug/model.php
+++ b/module/bug/model.php
@@ -3385,6 +3385,7 @@ class bugModel extends model
if($type == 'view' && $this->app->tab != 'product')
{
$menu .= $this->buildMenu('bug', 'toStory', $toStoryParams, $bug, $type, $this->lang->icons['story'], '', '', '', "data-app='product' id='tostory'", $this->lang->bug->toStory);
+ if(common::hasPriv('task', 'create')) $menu .= html::a('#toTask', "{$this->lang->bug->toTask}", '', "data-app='qa' data-toggle='modal' class='btn btn-link'");
$menu .= $this->buildMenu('bug', 'createCase', $convertParams, $bug, $type, 'sitemap');
}
if($type == 'view')
diff --git a/module/bug/view/view.html.php b/module/bug/view/view.html.php
index d76011e701..5e954c876d 100644
--- a/module/bug/view/view.html.php
+++ b/module/bug/view/view.html.php
@@ -14,6 +14,12 @@
bug->confirmToStory);?>
+systemMode);?>
+tab);?>
+id);?>
+branch);?>
+bug->noExecution);?>
+bug->noProject);?>
session->bugList ? $app->session->bugList : inlink('browse', "productID=$bug->product");?>