diff --git a/module/bug/js/create.js b/module/bug/js/create.js
index 621cc197f5..3cba627bb1 100644
--- a/module/bug/js/create.js
+++ b/module/bug/js/create.js
@@ -75,7 +75,7 @@ function setTemplate(templateID)
function deleteTemplate(templateID)
{
if(!templateID) return;
- if (confirm(TemplateDelete)){
+ if (confirm(templateDelete)){
hiddenwin.location.href = createLink('bug', 'deleteTemplate', 'templateID=' + templateID);
$('#tplBox' + templateID).addClass('hidden');
}
diff --git a/module/bug/lang/zh-cn.php b/module/bug/lang/zh-cn.php
index a86d3a4c91..995dc3b884 100644
--- a/module/bug/lang/zh-cn.php
+++ b/module/bug/lang/zh-cn.php
@@ -145,7 +145,7 @@ $lang->bug->setTemplateTitle = '请输入bug模板标题';
$lang->bug->remindTask = '该Bug已经转化为任务,是否更新任务(编号:%s)状态 ?';
$lang->bug->skipClose = 'Bug %s 不是已解决状态,不能关闭。';
$lang->bug->applyTemplate = '应用模板';
-$lang->bug->TemplateDelete = '您确认要删除该模板吗?';
+$lang->bug->templateDelete = '您确认要删除该模板吗?';
/* 模板。*/
$lang->bug->tplStep = "
[步骤]
\n";
diff --git a/module/bug/view/create.html.php b/module/bug/view/create.html.php
index 793e49bbef..5b4e5bb0e4 100644
--- a/module/bug/view/create.html.php
+++ b/module/bug/view/create.html.php
@@ -19,7 +19,7 @@ js::set('page', 'create');
js::set('createRelease', $lang->release->create);
js::set('createBuild', $lang->build->create);
js::set('refresh', $lang->refresh);
-js::set('TemplateDelete',$lang->bug->TemplateDelete);
+js::set('templateDelete',$lang->bug->templateDelete);
?>
diff --git a/module/testcase/view/importlib.html.php b/module/testcase/view/importlib.html.php
index 1aa64836d1..e07cad654b 100644
--- a/module/testcase/view/importlib.html.php
+++ b/module/testcase/view/importlib.html.php
@@ -17,7 +17,7 @@
icons['import']);?> testcase->importFromLib;?>
testcase->selectLib;?>
-
+
diff --git a/module/testtask/control.php b/module/testtask/control.php
index 5ab46a4e8e..c9cab909b3 100644
--- a/module/testtask/control.php
+++ b/module/testtask/control.php
@@ -655,75 +655,15 @@ class testtask extends control
$this->view->position[] = $this->lang->testtask->common;
$this->view->position[] = $this->lang->testtask->linkCase;
+ $testTask = $this->testtask->getTestTask($productID,$taskID);
+
/* Get cases. */
- if($this->session->testcaseQuery == false) $this->session->set('testcaseQuery', ' 1 = 1');
- $query = $this->session->testcaseQuery;
- $allProduct = "`product` = 'all'";
- if(strpos($query, '`product` =') === false) $query .= " AND `product` = $productID";
- if(strpos($query, $allProduct) !== false) $query = str_replace($allProduct, '1', $query);
+ $cases = $this->testtask->getCases($productID, $task, $taskID, $type, $param, $pager);
- $linkedCases = $this->dao->select('`case`')->from(TABLE_TESTRUN)->where('task')->eq($taskID)->fetchPairs('case');
- if($type == 'all')
- {
- $cases = $this->dao->select('*')->from(TABLE_CASE)->where($query)
- ->andWhere('id')->notIN($linkedCases)
- ->beginIF($task->branch)->andWhere('branch')->in("0,$task->branch")->fi()
- ->andWhere('deleted')->eq(0)
- ->orderBy('id desc')
- ->page($pager)
- ->fetchAll();
- }
- elseif($type == 'bystory')
- {
- $stories = $this->dao->select('stories')->from(TABLE_BUILD)->where('id')->eq($task->build)->fetch('stories');
- $cases = array();
- if($stories)
- {
- $cases = $this->dao->select('*')->from(TABLE_CASE)->where($query)
- ->andWhere('product')->eq($productID)
- ->beginIF($linkedCases)->andWhere('id')->notIN($linkedCases)->fi()
- ->beginIF($task->branch)->andWhere('branch')->in("0,$task->branch")->fi()
- ->andWhere('story')->in(trim($stories, ','))
- ->andWhere('deleted')->eq(0)
- ->orderBy('id desc')
- ->page($pager)
- ->fetchAll();
- }
- }
- elseif($type == 'bybug')
- {
- $bugs = $this->dao->select('bugs')->from(TABLE_BUILD)->where('id')->eq($task->build)->fetch('bugs');
- $cases = array();
- if($bugs)
- {
- $cases = $this->dao->select('*')->from(TABLE_CASE)->where($query)
- ->andWhere('product')->eq($productID)
- ->beginIF($linkedCases)->andWhere('id')->notIN($linkedCases)->fi()
- ->beginIF($task->branch)->andWhere('branch')->in("0,$task->branch")->fi()
- ->andWhere('fromBug')->in(trim($bugs, ','))
- ->andWhere('deleted')->eq(0)
- ->orderBy('id desc')
- ->page($pager)
- ->fetchAll();
- }
- }
- if($type == 'bysuite')
- {
- $cases = $this->dao->select('t1.*,t2.version as version')->from(TABLE_CASE)->alias('t1')
- ->leftJoin(TABLE_SUITECASE)->alias('t2')->on('t1.id=t2.case')
- ->where($query)
- ->andWhere('t2.suite')->eq((int)$param)
- ->andWhere('t1.product')->eq($productID)
- ->beginIF($linkedCases)->andWhere('t1.id')->notIN($linkedCases)->fi()
- ->beginIF($task->branch)->andWhere('t1.branch')->in("0,$task->branch")->fi()
- ->andWhere('deleted')->eq(0)
- ->orderBy('id_desc')
- ->page($pager)
- ->fetchAll();
- }
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->cases = $cases;
$this->view->taskID = $taskID;
+ $this->view->testTask = $testTask;
$this->view->pager = $pager;
$this->view->task = $task;
$this->view->type = $type;
diff --git a/module/testtask/lang/zh-cn.php b/module/testtask/lang/zh-cn.php
index e31031c13f..251bd02764 100644
--- a/module/testtask/lang/zh-cn.php
+++ b/module/testtask/lang/zh-cn.php
@@ -16,6 +16,7 @@ $lang->testtask->view = "概况";
$lang->testtask->edit = "编辑版本";
$lang->testtask->browse = "版本列表";
$lang->testtask->linkCase = "关联用例";
+$lang->testtask->selectVersion = "选择版本";
$lang->testtask->unlinkCase = "移除";
$lang->testtask->batchUnlinkCases = "批量移除用例";
$lang->testtask->batchAssign = "批量指派";
@@ -73,6 +74,7 @@ $lang->testtask->priList[2] = '2';
$lang->testtask->priList[4] = '4';
$lang->testtask->unlinkedCases = '未关联';
+$lang->testtask->linkByVersion = '按版本关联';
$lang->testtask->linkByStory = '按需求关联';
$lang->testtask->linkByBug = '按Bug关联';
$lang->testtask->linkBySuite = '按套件关联';
diff --git a/module/testtask/model.php b/module/testtask/model.php
index e899ab4f55..05aa248ab6 100644
--- a/module/testtask/model.php
+++ b/module/testtask/model.php
@@ -331,6 +331,174 @@ class testtaskModel extends model
}
}
+ /**
+ * Get all cases.
+ *
+ * @param string $query
+ * @param array $linkedCases
+ * @param object $pager
+ * @access public
+ * @return void
+ */
+ public function getAllCases($query,$linkedCases,$pager)
+ {
+ return $this->dao->select('*')->from(TABLE_CASE)->where($query)
+ ->andWhere('id')->notIN($linkedCases)
+ ->beginIF($task->branch)->andWhere('branch')->in("0,$task->branch")->fi()
+ ->andWhere('deleted')->eq(0)
+ ->orderBy('id desc')
+ ->page($pager)
+ ->fetchAll();
+ }
+
+ /**
+ * Get cases by story.
+ *
+ * @param array $task
+ * @param int $productID
+ * @param string $query
+ * @param array $linkedCases
+ * @param object $pager
+ * @access public
+ * @return array
+ */
+ public function getCasesByStory($task,$productID,$query,$linkedCases,$pager)
+ {
+ $stories = $this->dao->select('stories')->from(TABLE_BUILD)->where('id')->eq($task->build)->fetch('stories');
+ $cases = array();
+ if($stories)
+ {
+ $cases = $this->dao->select('*')->from(TABLE_CASE)->where($query)
+ ->andWhere('product')->eq($productID)
+ ->beginIF($linkedCases)->andWhere('id')->notIN($linkedCases)->fi()
+ ->beginIF($task->branch)->andWhere('branch')->in("0,$task->branch")->fi()
+ ->andWhere('story')->in(trim($stories, ','))
+ ->andWhere('deleted')->eq(0)
+ ->orderBy('id desc')
+ ->page($pager)
+ ->fetchAll();
+ }
+
+ return $cases;
+ }
+
+ /**
+ * Get cases by bug.
+ *
+ * @param array $task
+ * @param int $productID
+ * @param string $query
+ * @param array $linkedCases
+ * @param object $pager
+ * @access public
+ * @return array
+ */
+ public function getCasesByBug($task,$productID,$query,$linkedCases,$pager)
+ {
+ $bugs = $this->dao->select('bugs')->from(TABLE_BUILD)->where('id')->eq($task->build)->fetch('bugs');
+ $cases = array();
+ if($bugs)
+ {
+ $cases = $this->dao->select('*')->from(TABLE_CASE)->where($query)
+ ->andWhere('product')->eq($productID)
+ ->beginIF($linkedCases)->andWhere('id')->notIN($linkedCases)->fi()
+ ->beginIF($task->branch)->andWhere('branch')->in("0,$task->branch")->fi()
+ ->andWhere('fromBug')->in(trim($bugs, ','))
+ ->andWhere('deleted')->eq(0)
+ ->orderBy('id desc')
+ ->page($pager)
+ ->fetchAll();
+ }
+
+ return $cases;
+ }
+
+ /**
+ * Get cases by suite.
+ *
+ * @param int $productID
+ * @param string $query
+ * @param array $linkedCases
+ * @param string $param
+ * @param object $pager
+ * @access public
+ * @return array
+ */
+ public function getCasesBySuite($productID,$query,$linkedCases,$pager,$param)
+ {
+ return $this->dao->select('t1.*,t2.version as version')->from(TABLE_CASE)->alias('t1')
+ ->leftJoin(TABLE_SUITECASE)->alias('t2')->on('t1.id=t2.case')
+ ->where($query)
+ ->andWhere('t2.suite')->eq((int)$param)
+ ->andWhere('t1.product')->eq($productID)
+ ->beginIF($linkedCases)->andWhere('t1.id')->notIN($linkedCases)->fi()
+ ->beginIF($task->branch)->andWhere('t1.branch')->in("0,$task->branch")->fi()
+ ->andWhere('deleted')->eq(0)
+ ->orderBy('id desc')
+ ->page($pager)
+ ->fetchAll();
+ }
+
+ /**
+ * Get cases by version.
+ *
+ * @param string $param
+ * @param object $pager
+ * @access public
+ * @return array
+ */
+ public function getCasesByVersion($pager, $param)
+ {
+ $runListValue = array();
+ $runList = $this->dao->select("`case`")->from(TABLE_TESTRUN)->where("task = '$param'")->fetchPairs('case');
+
+ $caseList = $this->dao->select("*")->from(TABLE_CASE)->where('id')->in($runList)->page($pager)->fetchAll();
+ return $caseList;
+ }
+
+ /**
+ * Get cases.
+ *
+ * @param int $productID
+ * @param array $task
+ * @param int $taskID
+ * @param string $type
+ * @param string $param
+ * @param object $pager
+ * @access public
+ * @return array
+ */
+ public function getCases($productID, $task, $taskID, $type, $param, $pager)
+ {
+ if($this->session->testcaseQuery == false) $this->session->set('testcaseQuery', ' 1 = 1');
+ $query = $this->session->testcaseQuery;
+ $allProduct = "`product` = 'all'";
+ if(strpos($query, '`product` =') === false && $type != 'bysuite') $query .= " AND `product` = $productID";
+ if(strpos($query, $allProduct) !== false) $query = str_replace($allProduct, '1', $query);
+
+ $linkedCases = $this->dao->select('`case`')->from(TABLE_TESTRUN)->where('task')->eq($taskID)->fetchPairs('case');
+ if($type == 'all') $cases = $this->getAllCases($query,$linkedCases,$pager);
+ else if($type == 'bystory') $cases = $this->getCasesByStory($task,$productID,$query,$linkedCases,$pager);
+ else if($type == 'bybug') $cases = $this->getCasesByBug($task,$productID,$query,$linkedCases,$pager);
+ else if($type == 'bysuite') $cases = $this->getCasesBySuite($productID,$query,$linkedCases,$pager,$param);
+ else if($type == 'byversion') $cases = $this->getCasesByVersion($pager,$param);
+
+ return $cases;
+ }
+
+ /**
+ * Get test tasks.
+ *
+ * @param int $productID
+ * @param int $taskID
+ * @access public
+ * @return array
+ */
+ public function getTestTask($productID,$taskID)
+ {
+ return $this->dao->select('id,name')->from(TABLE_TESTTASK)->where("product = '$productID'")->orderBy('id desc')->fetchPairs('id', 'name');
+ }
+
/**
* Get test runs of a test task.
*
diff --git a/module/testtask/view/blocked.html.php b/module/testtask/view/blocked.html.php
new file mode 100644
index 0000000000..3aabb0eefb
--- /dev/null
+++ b/module/testtask/view/blocked.html.php
@@ -0,0 +1,42 @@
+
+ * @package testtask
+ * @version $Id: start.html.php 935 2013-01-16 07:49:24Z wwccss@gmail.com $
+ * @link http://www.zentao.net
+ */
+?>
+
+
+
+
+
+
+ icons['testtask']);?> id;?>
+ createLink('testtask', 'view', 'taskID=' . $testtask->id), $testtask->name, '_blank');?>
+ testtask->blocked;?> icons['pause']);?>
+
+
+
+
+
+
+
+
+
diff --git a/module/testtask/view/doing.html.php b/module/testtask/view/doing.html.php
new file mode 100644
index 0000000000..a85479b10d
--- /dev/null
+++ b/module/testtask/view/doing.html.php
@@ -0,0 +1,42 @@
+
+ * @package testtask
+ * @version $Id: start.html.php 935 2013-01-16 07:49:24Z wwccss@gmail.com $
+ * @link http://www.zentao.net
+ */
+?>
+
+
+
+
+
+
+ icons['testtask']);?> id;?>
+ createLink('testtask', 'view', 'taskID=' . $testtask->id), $testtask->name, '_blank');?>
+ testtask->doing;?> icons['start']);?>
+
+
+
+
+
+
+
+
+
diff --git a/module/testtask/view/linkcase.html.php b/module/testtask/view/linkcase.html.php
index bba5e65937..9fc6008b58 100644
--- a/module/testtask/view/linkcase.html.php
+++ b/module/testtask/view/linkcase.html.php
@@ -21,6 +21,17 @@
";
+
+ echo "";
+ echo "";
+ echo "";
+
echo "";
echo "";
echo "";
+
$lang->testtask->linkCase = $lang->testtask->linkByStory;
common::printIcon('testtask', 'linkCase', "taskID=$taskID&type=bystory", '', 'button', 'link');
$lang->testtask->linkCase = $lang->testtask->linkByBug;
common::printIcon('testtask', 'linkCase', "taskID=$taskID&type=bybug", '', 'button', 'link');
+
echo '
';
echo "";
common::printRPN($this->session->testtaskList);
@@ -57,6 +70,9 @@
testcase->title;?> |
testcase->type;?> |
openedByAB;?> |
+
testtask->lastRunAccount;?> |
+
testtask->lastRunTime;?> |
+
testtask->lastRunResult;?> |
statusAB;?> |
@@ -81,13 +97,16 @@
testcase->typeList[$case->type];?> |
openedBy];?> |
+
lastRunner;?> |
+
lastRunDate)) echo date(DT_MONTHTIME1, strtotime($case->lastRunDate));?> |
+
lastRunResult) echo $lang->testcase->resultList[$case->lastRunResult];?> |
testcase->statusList[$case->status];?> |
- |
+ |
|