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']);?> +
+
+ +
+ + + + + + + + + + +
comment;?>
goback, $this->session->taskList); ?>
+
+
+ +
+
+ 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']);?> +
+
+ +
+ + + + + + + + + + +
comment;?>
goback, $this->session->taskList); ?>
+
+
+ +
+
+ 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];?> - +